mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +00:00
refactored instances of various types of counters
This commit is contained in:
parent
44d0022d14
commit
9a66f1713b
12 changed files with 69 additions and 53 deletions
|
@ -38,7 +38,7 @@ import mage.abilities.keyword.FlyingAbility;
|
|||
import mage.abilities.keyword.InspiredAbility;
|
||||
import mage.cards.*;
|
||||
import mage.constants.*;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
|
@ -116,7 +116,7 @@ class ArbiterOfTheIdealEffect extends OneShotEffect {
|
|||
controller.moveCards(card, Zone.BATTLEFIELD, source, game);
|
||||
Permanent permanent = game.getPermanent(card.getId());
|
||||
if (permanent != null) {
|
||||
permanent.addCounters(new Counter("Manifestation"), source, game);
|
||||
permanent.addCounters(CounterType.MANIFESTATION.createInstance(), source, game);
|
||||
ContinuousEffect effect = new AddCardTypeTargetEffect(Duration.Custom, CardType.ENCHANTMENT);
|
||||
effect.setTargetPointer(new FixedTarget(permanent, game));
|
||||
game.addEffect(effect, source);
|
||||
|
|
|
@ -37,14 +37,13 @@ import mage.abilities.effects.common.counter.RemoveCounterSourceEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
|
@ -52,11 +51,10 @@ import mage.players.Player;
|
|||
public class AzorsElocutors extends CardImpl {
|
||||
|
||||
public AzorsElocutors(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W/U}{W/U}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W/U}{W/U}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.ADVISOR);
|
||||
|
||||
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
|
@ -65,7 +63,6 @@ public class AzorsElocutors extends CardImpl {
|
|||
|
||||
// Whenever a source deals damage to you, remove a filibuster counter from Azor's Elocutors.
|
||||
this.addAbility(new AzorsElocutorsTriggeredAbility());
|
||||
|
||||
}
|
||||
|
||||
public AzorsElocutors(final AzorsElocutors card) {
|
||||
|
@ -77,10 +74,11 @@ public class AzorsElocutors extends CardImpl {
|
|||
return new AzorsElocutors(this);
|
||||
}
|
||||
}
|
||||
|
||||
class AzorsElocutorsTriggeredAbility extends TriggeredAbilityImpl {
|
||||
|
||||
public AzorsElocutorsTriggeredAbility() {
|
||||
super(Zone.BATTLEFIELD, new RemoveCounterSourceEffect(new Counter("filibuster")), false);
|
||||
super(Zone.BATTLEFIELD, new RemoveCounterSourceEffect(CounterType.FILIBUSTER.createInstance()), false);
|
||||
}
|
||||
|
||||
public AzorsElocutorsTriggeredAbility(final AzorsElocutorsTriggeredAbility ability) {
|
||||
|
@ -124,8 +122,8 @@ class AzorsElocutorsEffect extends OneShotEffect {
|
|||
public boolean apply(Game game, Ability source) {
|
||||
Permanent permanent = game.getPermanent(source.getSourceId());
|
||||
if (permanent != null) {
|
||||
permanent.addCounters(new Counter("filibuster"), source, game);
|
||||
if (permanent.getCounters(game).getCount("filibuster") > 4) {
|
||||
permanent.addCounters(CounterType.FILIBUSTER.createInstance(), source, game);
|
||||
if (permanent.getCounters(game).getCount(CounterType.FILIBUSTER) > 4) {
|
||||
Player player = game.getPlayer(permanent.getControllerId());
|
||||
if (player != null) {
|
||||
player.won(game);
|
||||
|
|
|
@ -42,7 +42,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -53,17 +53,16 @@ public class BloodletterQuill extends CardImpl {
|
|||
public BloodletterQuill(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
|
||||
|
||||
Counter bloodCounter = new Counter("blood");
|
||||
// {2}, {T}, Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new GenericManaCost(2));
|
||||
ability.addEffect(new LoseLifeSourceControllerEffect(new CountersSourceCount(bloodCounter.getName()))
|
||||
ability.addEffect(new LoseLifeSourceControllerEffect(new CountersSourceCount(CounterType.BLOOD))
|
||||
.setText(", then lose 1 life for each blood counter on {this}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new PutCountersSourceCost(bloodCounter));
|
||||
ability.addCost(new PutCountersSourceCost(CounterType.BLOOD.createInstance()));
|
||||
this.addAbility(ability);
|
||||
// {U}{B}: Remove a blood counter from Bloodletter Quill.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new RemoveCounterSourceEffect(bloodCounter), new ManaCostsImpl("{U}{B}")));
|
||||
new RemoveCounterSourceEffect(CounterType.BLOOD.createInstance()), new ManaCostsImpl("{U}{B}")));
|
||||
}
|
||||
|
||||
public BloodletterQuill(final BloodletterQuill card) {
|
||||
|
|
|
@ -41,7 +41,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
@ -51,15 +51,15 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
public class BribersPurse extends CardImpl {
|
||||
|
||||
public BribersPurse(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{X}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{X}");
|
||||
|
||||
// Briber's Purse enters the battlefield with X gem counters on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(new EntersBattlefieldWithXCountersEffect(new Counter("gem"))));
|
||||
this.addAbility(new EntersBattlefieldAbility(new EntersBattlefieldWithXCountersEffect(CounterType.GEM.createInstance())));
|
||||
|
||||
// {1}, {T}, Remove a gem counter from Briber's Purse: Target creature can't attack or block this turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantAttackBlockTargetEffect(Duration.EndOfTurn), new GenericManaCost(1));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new RemoveCountersSourceCost(new Counter("gem")));
|
||||
ability.addCost(new RemoveCountersSourceCost(CounterType.GEM.createInstance()));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Outcome;
|
||||
import mage.constants.TargetController;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
import mage.game.Game;
|
||||
import mage.players.Player;
|
||||
|
||||
|
@ -58,12 +58,12 @@ public class CelestialConvergence extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}{W}");
|
||||
|
||||
// Celestial Convergence enters the battlefield with seven omen counters on it.
|
||||
Effect effect = new AddCountersSourceEffect(new Counter("omen", 7));
|
||||
Effect effect = new AddCountersSourceEffect(CounterType.OMEN.createInstance(7));
|
||||
this.addAbility(new EntersBattlefieldAbility(effect, "with seven omen counters"));
|
||||
|
||||
// At the beginning of your upkeep, remove an omen counter from Celestial Convergence. If there are no omen counters on Celestial Convergence, the player with the highest life total wins the game. If two or more players are tied for highest life total, the game is a draw.
|
||||
Ability ability = new BeginningOfUpkeepTriggeredAbility(
|
||||
Zone.BATTLEFIELD, new RemoveCounterSourceEffect(new Counter("omen")), TargetController.YOU, false);
|
||||
Zone.BATTLEFIELD, new RemoveCounterSourceEffect(CounterType.OMEN.createInstance(1)), TargetController.YOU, false);
|
||||
ability.addEffect(new CelestialConvergenceEffect());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
@ -100,18 +100,17 @@ class CelestialConvergenceEffect extends OneShotEffect {
|
|||
Player controller = game.getPlayer(source.getControllerId());
|
||||
if (sourceObject != null
|
||||
&& controller != null
|
||||
&& sourceObject.getCounters(game).getCount("omen") == 0) {
|
||||
&& sourceObject.getCounters(game).getCount(CounterType.OMEN) == 0) {
|
||||
|
||||
/**
|
||||
* 801.14. If an effect states that a player wins the game, all of
|
||||
* that player’s opponents within their range of influence lose
|
||||
* the game instead. #
|
||||
* that player’s opponents within their range of influence lose the
|
||||
* game instead. #
|
||||
*
|
||||
* 801.15. If the effect of a spell or ability states that the game
|
||||
* is a draw, the game is a draw for that spell or ability’s
|
||||
* controller and all players within their range of influence.
|
||||
* They leave the game. All remaining players continue to play the
|
||||
* game.
|
||||
* controller and all players within their range of influence. They
|
||||
* leave the game. All remaining players continue to play the game.
|
||||
*
|
||||
*/
|
||||
List<UUID> highestLifePlayers = new ArrayList<>();
|
||||
|
|
|
@ -67,7 +67,7 @@ public class JumboImp extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// As Jumbo Imp enters the battlefield, roll a six-sided die. Jumbo Imp enters the battlefield with a number of +1/+1 counters on it equal to the result.
|
||||
this.addAbility(new EntersBattlefieldAbility(new JumboImpEffect(new Counter("P1P1"))));
|
||||
this.addAbility(new EntersBattlefieldAbility(new JumboImpEffect(CounterType.P1P1.createInstance())));
|
||||
|
||||
// At the beginning of your upkeep, roll a six-sided die and put a number of +1/+1 counters on Jumbo Imp equal to the result.
|
||||
Ability ability2 = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new JumboImpAddCountersEffect(), TargetController.YOU, false);
|
||||
|
|
|
@ -41,7 +41,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -57,7 +57,7 @@ import mage.target.common.TargetControlledPermanent;
|
|||
public class PhylacteryLich extends CardImpl {
|
||||
|
||||
public PhylacteryLich(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{B}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}{B}{B}");
|
||||
this.subtype.add(SubType.ZOMBIE);
|
||||
|
||||
this.power = new MageInt(5);
|
||||
|
@ -142,7 +142,7 @@ class PhylacteryLichEffect extends OneShotEffect {
|
|||
if (player.choose(Outcome.Neutral, target, source.getSourceId(), game)) {
|
||||
Permanent permanent = game.getPermanent(target.getFirstTarget());
|
||||
if (permanent != null) {
|
||||
permanent.addCounters(new Counter("phylactery"), source, game);
|
||||
permanent.addCounters(CounterType.PHYLACTERY.createInstance(), source, game);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.TargetController;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterNonlandPermanent;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
import mage.game.Game;
|
||||
|
@ -56,10 +56,10 @@ import mage.util.CardUtil;
|
|||
public class QuarantineField extends CardImpl {
|
||||
|
||||
public QuarantineField(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{X}{X}{W}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{X}{X}{W}{W}");
|
||||
|
||||
// Quarantine Field enters the battlefield with X isolation counters on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(new EntersBattlefieldWithXCountersEffect(new Counter("isolation"))));
|
||||
this.addAbility(new EntersBattlefieldAbility(new EntersBattlefieldWithXCountersEffect(CounterType.ISOLATION.createInstance())));
|
||||
|
||||
// When Quarantine Field enters the battlefield, for each isolation counter on it, exile up to one target nonland permanent an opponenet controls until Quarantine Field leaves the battlefield.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new QuarantineFieldEffect(), false);
|
||||
|
@ -77,7 +77,7 @@ public class QuarantineField extends CardImpl {
|
|||
if (ability instanceof EntersBattlefieldTriggeredAbility) {
|
||||
Permanent sourceObject = game.getPermanent(ability.getSourceId());
|
||||
if (sourceObject != null) {
|
||||
int isolationCounters = sourceObject.getCounters(game).getCount("isolation");
|
||||
int isolationCounters = sourceObject.getCounters(game).getCount(CounterType.ISOLATION);
|
||||
FilterNonlandPermanent filter = new FilterNonlandPermanent("up to " + isolationCounters + " nonland permanents controlled by any opponents");
|
||||
filter.add(new ControllerPredicate(TargetController.OPPONENT));
|
||||
ability.addTarget(new TargetPermanent(0, isolationCounters, filter, false));
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -41,7 +40,7 @@ import mage.abilities.keyword.BushidoAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
@ -50,8 +49,8 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public class SenseiGoldenTail extends CardImpl {
|
||||
|
||||
public SenseiGoldenTail (UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}");
|
||||
public SenseiGoldenTail(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}");
|
||||
addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.FOX);
|
||||
this.subtype.add(SubType.SAMURAI);
|
||||
|
@ -61,17 +60,29 @@ public class SenseiGoldenTail extends CardImpl {
|
|||
|
||||
// Bushido 1 (When this blocks or becomes blocked, it gets +1/+1 until end of turn.)
|
||||
this.addAbility(new BushidoAbility(1));
|
||||
|
||||
// {1}{W}, {T}: Put a training counter on target creature.
|
||||
Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(new Counter("Training")), new ManaCostsImpl("{1}{W}"));
|
||||
// That creature gains bushido 1 and becomes a Samurai in addition to its other creature types.
|
||||
// Activate this ability only any time you could cast a sorcery.
|
||||
Ability ability = new ActivateAsSorceryActivatedAbility(
|
||||
Zone.BATTLEFIELD,
|
||||
new AddCountersTargetEffect(CounterType.TRAINING.createInstance()),
|
||||
new ManaCostsImpl("{1}{W}")
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
// That creature gains bushido 1 and becomes a Samurai in addition to its other creature types. Activate this ability only any time you could cast a sorcery.
|
||||
ability.addEffect(new GainAbilityTargetEffect(new BushidoAbility(1),Duration.Custom));
|
||||
ability.addEffect(new AddCardSubTypeTargetEffect(SubType.SAMURAI,Duration.Custom));
|
||||
ability.addEffect(new GainAbilityTargetEffect(
|
||||
new BushidoAbility(1), Duration.Custom)
|
||||
.setText("That creature gains bushido 1")
|
||||
);
|
||||
ability.addEffect(
|
||||
new AddCardSubTypeTargetEffect(SubType.SAMURAI, Duration.Custom)
|
||||
.setText("and becomes a Samurai in addition to its other creature types.")
|
||||
);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public SenseiGoldenTail (final SenseiGoldenTail card) {
|
||||
public SenseiGoldenTail(final SenseiGoldenTail card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.TargetController;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
@ -52,10 +52,10 @@ import mage.target.common.TargetControlledPermanent;
|
|||
public class Smokestack extends CardImpl {
|
||||
|
||||
public Smokestack(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||
|
||||
// At the beginning of your upkeep, you may put a soot counter on Smokestack.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(new Counter("Soot")), TargetController.YOU, true));
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.SOOT.createInstance()), TargetController.YOU, true));
|
||||
|
||||
// At the beginning of each player's upkeep, that player sacrifices a permanent for each soot counter on Smokestack.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SmokestackEffect(), TargetController.ANY, false));
|
||||
|
@ -92,7 +92,7 @@ class SmokestackEffect extends OneShotEffect {
|
|||
Player activePlayer = game.getPlayer(getTargetPointer().getFirst(game, source));
|
||||
Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId());
|
||||
if (activePlayer != null && sourcePermanent != null) {
|
||||
int count = sourcePermanent.getCounters(game).getCount("Soot");
|
||||
int count = sourcePermanent.getCounters(game).getCount(CounterType.SOOT);
|
||||
if (count > 0) {
|
||||
int amount = Math.min(count, game.getBattlefield().countAll(new FilterControlledPermanent(), activePlayer.getId(), game));
|
||||
Target target = new TargetControlledPermanent(amount, amount, new FilterControlledPermanent(), true);
|
||||
|
|
|
@ -44,7 +44,7 @@ import mage.constants.ComparisonType;
|
|||
import mage.constants.Outcome;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.Counter;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.predicate.mageobject.CardTypePredicate;
|
||||
import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
|
||||
|
@ -60,7 +60,7 @@ import mage.target.common.TargetCardInLibrary;
|
|||
public class YisanTheWandererBard extends CardImpl {
|
||||
|
||||
public YisanTheWandererBard(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
|
||||
addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.ROGUE);
|
||||
|
@ -71,7 +71,7 @@ public class YisanTheWandererBard extends CardImpl {
|
|||
// {2}{G}, {T}, Put a verse counter on Yisan, the Wanderer Bard: Search your library for a creature card with converted mana cost equal to the number of verse counters on Yisan, put it onto the battlefield, then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new YisanTheWandererBardEffect(), new ManaCostsImpl("{2}{G}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new PutCountersSourceCost(new Counter("verse")));
|
||||
ability.addCost(new PutCountersSourceCost(CounterType.VERSE.createInstance()));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
@ -106,7 +106,7 @@ class YisanTheWandererBardEffect extends OneShotEffect {
|
|||
Player controller = game.getPlayer(source.getControllerId());
|
||||
Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId());
|
||||
if (sourcePermanent != null && controller != null) {
|
||||
int newConvertedCost = sourcePermanent.getCounters(game).getCount("verse");
|
||||
int newConvertedCost = sourcePermanent.getCounters(game).getCount(CounterType.VERSE);
|
||||
FilterCard filter = new FilterCard("creature card with converted mana cost " + newConvertedCost);
|
||||
filter.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, newConvertedCost));
|
||||
filter.add(new CardTypePredicate(CardType.CREATURE));
|
||||
|
|
|
@ -39,6 +39,7 @@ public enum CounterType {
|
|||
ARROWHEAD("arrowhead"),
|
||||
AWAKENING("awakening"),
|
||||
BLAZE("blaze"),
|
||||
BLOOD("blood"),
|
||||
BOUNTY("bounty"),
|
||||
BRIBERY("bribery"),
|
||||
BRICK("brick"),
|
||||
|
@ -67,10 +68,12 @@ public enum CounterType {
|
|||
FADE("fade"),
|
||||
FATE("fate"),
|
||||
FEATHER("feather"),
|
||||
FILIBUSTER("filibuster"),
|
||||
FLOOD("flood"),
|
||||
FURY("fury"),
|
||||
FUNGUS("fungus"),
|
||||
FUSE("fuse"),
|
||||
GEM("gem"),
|
||||
GLOBE("globe"),
|
||||
GOLD("gold"),
|
||||
GROWTH("growth"),
|
||||
|
@ -83,6 +86,7 @@ public enum CounterType {
|
|||
ICE("ice"),
|
||||
INFECTION("infection"),
|
||||
INTERVENTION("intervention"),
|
||||
ISOLATION("isolation"),
|
||||
JAVELIN("javelin"),
|
||||
KI("ki"),
|
||||
LANDMARK("landmark"),
|
||||
|
@ -90,6 +94,7 @@ public enum CounterType {
|
|||
LORE("lore"),
|
||||
LUCK("luck"),
|
||||
LOYALTY("loyalty"),
|
||||
MANIFESTATION("manifestation"),
|
||||
MANNEQUIN("mannequin"),
|
||||
M1M1(new BoostCounter(-1, -1).name),
|
||||
M2M1(new BoostCounter(-2, -1).name),
|
||||
|
@ -99,6 +104,7 @@ public enum CounterType {
|
|||
MIRE("mire"),
|
||||
MUSTER("muster"),
|
||||
NET("net"),
|
||||
OMEN("omen"),
|
||||
P0P1(new BoostCounter(0, 1).name),
|
||||
P1P0(new BoostCounter(1, 0).name),
|
||||
P1P1(new BoostCounter(1, 1).name),
|
||||
|
@ -108,6 +114,7 @@ public enum CounterType {
|
|||
PAIN("pain"),
|
||||
PETAL("petal"),
|
||||
PETRIFICATION("petrification"),
|
||||
PHYLACTERY("phylactery"),
|
||||
PLAGUE("plague"),
|
||||
PLOT("plot"),
|
||||
POLYP("polyp"),
|
||||
|
@ -123,6 +130,7 @@ public enum CounterType {
|
|||
SHIELD("shield"),
|
||||
SHRED("shred"),
|
||||
SLIME("slime"),
|
||||
SOOT("soot"),
|
||||
SPITE("spite"),
|
||||
SPORE("spore"),
|
||||
STORAGE("storage"),
|
||||
|
@ -132,6 +140,7 @@ public enum CounterType {
|
|||
TIDE("tide"),
|
||||
TIME("time"),
|
||||
TOWER("tower"),
|
||||
TRAINING("training"),
|
||||
TRAP("trap"),
|
||||
TREASURE("treasure"),
|
||||
UNITY("unity"),
|
||||
|
|
Loading…
Reference in a new issue