mirror of
https://github.com/correl/mage.git
synced 2025-04-08 09:11:04 -09:00
* Started to fix color setting for cards (e.g. Painter's Serverant) #408 (not completely finished yet).
This commit is contained in:
parent
119422750c
commit
c27ef5ee97
169 changed files with 515 additions and 395 deletions
Mage.Common/src/mage/view
Mage.Sets/src/mage/sets
alarareborn
apocalypse
avacynrestored
betrayersofkamigawa
championsofkamigawa
commander2013
commander2014
conflux
darksteel
dissension
dragonsmaze
AliveWell.javaArmedDangerous.javaBeckCall.javaDownDirty.javaFarAway.javaFleshBlood.javaGiveTake.javaProfitLoss.javaProtectServe.javaReadyWilling.javaToilTrouble.javaTurnBurn.javaWearTear.java
dragonsoftarkir
eventide
fifthedition
futuresight
gatecrash
iceage
innistrad
invasion
journeyintonyx
khansoftarkir
legends
limitedalpha
limitedbeta
magic2010
magic2011
magic2012
magic2014
magic2015
mirrodin
modernmasters2015
newphyrexia
ninthedition
odyssey
planarchaos
planeshift
ravnica
returntoravnica
riseoftheeldrazi
scarsofmirrodin
seventhedition
shadowmoor
|
@ -237,7 +237,7 @@ public class CardView extends SimpleCardView {
|
|||
this.cardTypes = card.getCardType();
|
||||
this.subTypes = card.getSubtype();
|
||||
this.superTypes = card.getSupertype();
|
||||
this.color = card.getColor();
|
||||
this.color = card.getColor(game);
|
||||
this.canTransform = card.canTransform();
|
||||
this.flipCard = card.isFlipCard();
|
||||
this.faceDown = game != null ? card.isFaceDown(game) : false;
|
||||
|
@ -313,7 +313,7 @@ public class CardView extends SimpleCardView {
|
|||
this.cardTypes = object.getCardType();
|
||||
this.subTypes = object.getSubtype();
|
||||
this.superTypes = object.getSupertype();
|
||||
this.color = object.getColor();
|
||||
this.color = object.getColor(null);
|
||||
this.manaCost = object.getManaCost().getSymbols();
|
||||
this.convertedManaCost = object.getManaCost().convertedManaCost();
|
||||
if (object instanceof PermanentToken) {
|
||||
|
@ -421,7 +421,7 @@ public class CardView extends SimpleCardView {
|
|||
this.cardTypes = token.getCardType();
|
||||
this.subTypes = token.getSubtype();
|
||||
this.superTypes = token.getSupertype();
|
||||
this.color = token.getColor();
|
||||
this.color = token.getColor(null);
|
||||
this.manaCost = token.getManaCost().getSymbols();
|
||||
this.rarity = Rarity.NA;
|
||||
this.type = token.getTokenType();
|
||||
|
|
|
@ -64,12 +64,12 @@ public class StackAbilityView extends CardView {
|
|||
this.cardTypes = ability.getCardType();
|
||||
this.subTypes = ability.getSubtype();
|
||||
this.superTypes = ability.getSupertype();
|
||||
this.color = ability.getColor();
|
||||
this.color = ability.getColor(game);
|
||||
this.manaCost = ability.getManaCost().getSymbols();
|
||||
this.cardTypes = ability.getCardType();
|
||||
this.subTypes = ability.getSubtype();
|
||||
this.superTypes = ability.getSupertype();
|
||||
this.color = ability.getColor();
|
||||
this.color = ability.getColor(game);
|
||||
this.manaCost = ability.getManaCost().getSymbols();
|
||||
this.power = ability.getPower().toString();
|
||||
this.toughness = ability.getToughness().toString();
|
||||
|
|
|
@ -89,7 +89,7 @@ class GloryscaleViashinoAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getType() == GameEvent.EventType.SPELL_CAST) {
|
||||
Spell spell = game.getStack().getSpell(event.getTargetId());
|
||||
if (spell != null && spell.getColor().isMulticolored() && event.getPlayerId().equals(getControllerId())) {
|
||||
if (spell != null && spell.getColor(game).isMulticolored() && event.getPlayerId().equals(getControllerId())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -102,7 +102,7 @@ class KnightOfNewAlaraEffect extends ContinuousEffectImpl {
|
|||
public boolean apply(Game game, Ability source) {
|
||||
for (Permanent creature : game.getBattlefield().getAllActivePermanents(filter, source.getControllerId(), game)) {
|
||||
if (creature != null && !creature.getId().equals(source.getSourceId())) {
|
||||
int colors = creature.getColor().getColorCount();
|
||||
int colors = creature.getColor(game).getColorCount();
|
||||
creature.addPower(colors);
|
||||
creature.addToughness(colors);
|
||||
}
|
||||
|
|
|
@ -51,12 +51,8 @@ public class FireIce extends SplitCard {
|
|||
super(ownerId, 128, "Fire", "Ice", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{R}", "{1}{U}", false);
|
||||
this.expansionSetCode = "APC";
|
||||
|
||||
this.color.setBlue(true);
|
||||
this.color.setRed(true);
|
||||
|
||||
// Fire
|
||||
// Fire deals 2 damage divided as you choose among one or two target creatures and/or players.
|
||||
getLeftHalfCard().getColor().setRed(true);
|
||||
Effect effect = new DamageMultiEffect(2);
|
||||
effect.setText("Fire deals 2 damage divided as you choose among one or two target creatures and/or players");
|
||||
getLeftHalfCard().getSpellAbility().addEffect(effect);
|
||||
|
@ -65,7 +61,6 @@ public class FireIce extends SplitCard {
|
|||
// Ice
|
||||
// Tap target permanent.
|
||||
// Draw a card.
|
||||
getRightHalfCard().getColor().setBlue(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new TapTargetEffect());
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetPermanent());
|
||||
getRightHalfCard().getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
|
||||
|
|
|
@ -49,19 +49,14 @@ public class IllusionReality extends SplitCard {
|
|||
super(ownerId, 129, "Illusion", "Reality", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{U}", "{2}{G}", false);
|
||||
this.expansionSetCode = "APC";
|
||||
|
||||
this.color.setBlue(true);
|
||||
this.color.setGreen(true);
|
||||
|
||||
// Illusion
|
||||
// Target spell or permanent becomes the color of your choice until end of turn.
|
||||
getLeftHalfCard().getColor().setBlue(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new BecomesColorTargetEffect(Duration.EndOfTurn));
|
||||
Target target = new TargetSpellOrPermanent();
|
||||
getLeftHalfCard().getSpellAbility().addTarget(target);
|
||||
|
||||
// Reality
|
||||
// Destroy target artifact.
|
||||
getRightHalfCard().getColor().setGreen(true);
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetArtifactPermanent());
|
||||
getRightHalfCard().getSpellAbility().addEffect(new DestroyTargetEffect());
|
||||
}
|
||||
|
|
|
@ -59,18 +59,13 @@ public class LifeDeath extends SplitCard {
|
|||
super(ownerId, 130, "Life", "Death", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{G}", "{1}{B}", false);
|
||||
this.expansionSetCode = "APC";
|
||||
|
||||
this.color.setGreen(true);
|
||||
this.color.setBlack(true);
|
||||
|
||||
// Life
|
||||
// All lands you control become 1/1 creatures until end of turn. They're still lands.
|
||||
getLeftHalfCard().getColor().setGreen(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new BecomesCreatureAllEffect(new LifeLandToken(), "lands",
|
||||
new FilterControlledLandPermanent("lands you control"), Duration.EndOfTurn));
|
||||
|
||||
// Death
|
||||
// Return target creature card from your graveyard to the battlefield. You lose life equal to its converted mana cost.
|
||||
getRightHalfCard().getColor().setBlack(true);
|
||||
Target target = new TargetCardInYourGraveyard(1, new FilterCreatureCard("creature card from your graveyard"));
|
||||
getRightHalfCard().getSpellAbility().addTarget(target);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new DeathEffect());
|
||||
|
|
|
@ -59,18 +59,13 @@ public class NightDay extends SplitCard {
|
|||
super(ownerId, 131, "Night", "Day", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{B}", "{2}{W}", false);
|
||||
this.expansionSetCode = "APC";
|
||||
|
||||
this.color.setBlack(true);
|
||||
this.color.setWhite(true);
|
||||
|
||||
// Night
|
||||
// Target creature gets -1/-1 until end of turn.
|
||||
getLeftHalfCard().getColor().setBlack(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(-1,-1,Duration.EndOfTurn));
|
||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
// Day
|
||||
// Creatures target player controls get +1/+1 until end of turn.
|
||||
getRightHalfCard().getColor().setWhite(true);
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetPlayer());
|
||||
getRightHalfCard().getSpellAbility().addEffect(new DayEffect());
|
||||
|
||||
|
|
|
@ -51,19 +51,14 @@ public class OrderChaos extends SplitCard {
|
|||
super(ownerId, 132, "Order", "Chaos", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{3}{W}", "{2}{R}", false);
|
||||
this.expansionSetCode = "APC";
|
||||
|
||||
this.color.setWhite(true);
|
||||
this.color.setRed(true);
|
||||
|
||||
// Order
|
||||
// Exile target attacking creature.
|
||||
getLeftHalfCard().getColor().setWhite(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new ExileTargetEffect());
|
||||
Target target = new TargetAttackingCreature();
|
||||
getLeftHalfCard().getSpellAbility().addTarget(target);
|
||||
|
||||
// Chaos
|
||||
// Creatures can't block this turn.
|
||||
getRightHalfCard().getColor().setRed(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new CantBlockAllEffect(new FilterCreaturePermanent("Creatures"), Duration.EndOfTurn));
|
||||
|
||||
}
|
||||
|
|
|
@ -138,7 +138,7 @@ class DreadSlaverContiniousEffect extends ContinuousEffectImpl {
|
|||
break;
|
||||
case ColorChangingEffects_5:
|
||||
if (sublayer == SubLayer.NA) {
|
||||
creature.getColor().setBlack(true);
|
||||
creature.getColor(game).setBlack(true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -93,7 +93,7 @@ class EmptyShrineKannushiProtectionAbility extends ProtectionAbility {
|
|||
public boolean canTarget(MageObject source, Game game) {
|
||||
ObjectColor color = new ObjectColor();
|
||||
for (Permanent permanent: game.getBattlefield().getAllActivePermanents(controllerId)) {
|
||||
ObjectColor permanentColor = permanent.getColor();
|
||||
ObjectColor permanentColor = permanent.getColor(game);
|
||||
if (permanentColor.isColorless()) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -126,7 +126,7 @@ class TokTokVolcanoBornEffect extends ReplacementEffectImpl {
|
|||
@Override
|
||||
public boolean applies(GameEvent event, Ability source, Game game) {
|
||||
Card card = game.getCard(event.getSourceId());
|
||||
if (card != null && card.getColor().isRed()) {
|
||||
if (card != null && card.getColor(game).isRed()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -155,7 +155,7 @@ class KondasBannerColorBoostEffect extends BoostAllEffect {
|
|||
if (equipment != null && equipment.getAttachedTo() != null) {
|
||||
Permanent equipedCreature = game.getPermanent(equipment.getAttachedTo());
|
||||
for (Permanent perm : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) {
|
||||
if (equipedCreature.getColor().shares(perm.getColor())) {
|
||||
if (equipedCreature.getColor(game).shares(perm.getColor(game))) {
|
||||
perm.addPower(power.calculate(game, source, this));
|
||||
perm.addToughness(toughness.calculate(game, source, this));
|
||||
|
||||
|
|
|
@ -55,20 +55,16 @@ public class RoughTumble extends SplitCard {
|
|||
super(ownerId, 118, "Rough", "Tumble", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{1}{R}", "{5}{R}", false);
|
||||
this.expansionSetCode = "C13";
|
||||
|
||||
this.color.setRed(true);
|
||||
|
||||
// Rough
|
||||
// Rough deals 2 damage to each creature without flying.
|
||||
Effect effect = new DamageAllEffect(2, filterWithoutFlying);
|
||||
effect.setText("Rough deals 2 damage to each creature without flying");
|
||||
getLeftHalfCard().getColor().setRed(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(effect);
|
||||
|
||||
// Tumble
|
||||
// Tumble deals 6 damage to each creature with flying.
|
||||
effect = new DamageAllEffect(6, filterFlying);
|
||||
effect.setText("Tumble deals 6 damage to each creature with flying");
|
||||
getRightHalfCard().getColor().setRed(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(effect);
|
||||
|
||||
}
|
||||
|
|
|
@ -168,7 +168,7 @@ class NecromanticSelectionContinuousEffect extends ContinuousEffectImpl {
|
|||
break;
|
||||
case ColorChangingEffects_5:
|
||||
if (sublayer == SubLayer.NA) {
|
||||
creature.getColor().setBlack(true);
|
||||
creature.getColor(game).setBlack(true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -89,7 +89,7 @@ class FiligreeFractureEffect extends OneShotEffect {
|
|||
Player player = game.getPlayer(source.getControllerId());
|
||||
Permanent permanent = (Permanent) game.getLastKnownInformation(source.getFirstTarget(), Zone.BATTLEFIELD);
|
||||
if (player != null && permanent != null
|
||||
&& (permanent.getColor().isBlack() || permanent.getColor().isBlue())) {
|
||||
&& (permanent.getColor(game).isBlack() || permanent.getColor(game).isBlue())) {
|
||||
player.drawCards(1, game);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -89,7 +89,7 @@ class KederektParasiteTriggeredAbility extends TriggeredAbilityImpl {
|
|||
if (event.getType() == GameEvent.EventType.DREW_CARD && game.getOpponents(this.getControllerId()).contains(event.getPlayerId())) {
|
||||
boolean youControlRedPermanent = false;
|
||||
for (Permanent permanent : game.getBattlefield().getAllActivePermanents(this.getControllerId())) {
|
||||
if (permanent.getColor().isRed()) {
|
||||
if (permanent.getColor(game).isRed()) {
|
||||
youControlRedPermanent = true;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -121,36 +121,36 @@ class EverythingIsColorlessEffect extends ContinuousEffectImpl {
|
|||
ObjectColor colorless = new ObjectColor();
|
||||
// permaments
|
||||
for (Permanent perm : game.getBattlefield().getActivePermanents(source.getControllerId(), game)) {
|
||||
perm.getColor().setColor(colorless);
|
||||
perm.getColor(game).setColor(colorless);
|
||||
}
|
||||
// spells
|
||||
for (MageObject object : game.getStack()) {
|
||||
if (object instanceof Spell) {
|
||||
object.getColor().setColor(colorless);
|
||||
object.getColor(game).setColor(colorless);
|
||||
}
|
||||
}
|
||||
// exile
|
||||
for (Card card : game.getExile().getAllCards(game)) {
|
||||
card.getColor().setColor(colorless);
|
||||
game.getState().getCreateCardAttribute(card).getColor().setColor(colorless);
|
||||
}
|
||||
// command
|
||||
for (CommandObject commandObject : game.getState().getCommand()) {
|
||||
commandObject.getColor().setColor(colorless);
|
||||
commandObject.getColor(game).setColor(colorless);
|
||||
}
|
||||
for (UUID playerId : controller.getInRange()) {
|
||||
Player player = game.getPlayer(playerId);
|
||||
if (player != null) {
|
||||
// hand
|
||||
for (Card card: player.getHand().getCards(game)) {
|
||||
card.getColor().setColor(colorless);
|
||||
game.getState().getCreateCardAttribute(card).getColor().setColor(colorless);
|
||||
}
|
||||
// library
|
||||
for (Card card : player.getLibrary().getCards(game)) {
|
||||
card.getColor().setColor(colorless);
|
||||
game.getState().getCreateCardAttribute(card).getColor().setColor(colorless);
|
||||
}
|
||||
// graveyard
|
||||
for (Card card : player.getGraveyard().getCards(game)) {
|
||||
card.getColor().setColor(colorless);
|
||||
game.getState().getCreateCardAttribute(card).getColor().setColor(colorless);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,21 +65,13 @@ public class HideSeek extends SplitCard {
|
|||
super(ownerId, 151, "Hide", "Seek", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{R}{W}", "{W}{B}", false);
|
||||
this.expansionSetCode = "DIS";
|
||||
|
||||
this.color.setRed(true);
|
||||
this.color.setWhite(true);
|
||||
this.color.setBlack(true);
|
||||
|
||||
// Hide
|
||||
// Put target artifact or enchantment on the bottom of its owner's library.
|
||||
getLeftHalfCard().getColor().setRed(true);
|
||||
getLeftHalfCard().getColor().setWhite(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new PutOnLibraryTargetEffect(false));
|
||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetPermanent(filter));
|
||||
|
||||
// Seek
|
||||
// Search target opponent's library for a card and exile it. You gain life equal to its converted mana cost. Then that player shuffles his or her library..
|
||||
getRightHalfCard().getColor().setWhite(true);
|
||||
getRightHalfCard().getColor().setBlack(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new SeekEffect());
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetOpponent());
|
||||
|
||||
|
|
|
@ -65,21 +65,13 @@ public class OddsEnds extends SplitCard {
|
|||
super(ownerId, 153, "Odds", "Ends", Rarity.RARE, new CardType[]{CardType.INSTANT}, "{U}{R}", "{3}{R}{W}", false);
|
||||
this.expansionSetCode = "DIS";
|
||||
|
||||
this.color.setBlue(true);
|
||||
this.color.setRed(true);
|
||||
this.color.setWhite(true);
|
||||
|
||||
// Odds
|
||||
// Flip a coin. If it comes up heads, counter target instant or sorcery spell. If it comes up tails, copy that spell and you may choose new targets for the copy.
|
||||
getLeftHalfCard().getColor().setBlue(true);
|
||||
getLeftHalfCard().getColor().setRed(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new OddsEffect());
|
||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetSpell(filter));
|
||||
|
||||
// Ends
|
||||
// Target player sacrifices two attacking creatures.
|
||||
getRightHalfCard().getColor().setRed(true);
|
||||
getRightHalfCard().getColor().setWhite(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new SacrificeEffect(new FilterAttackingCreature(), 2, "Target player"));
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetPlayer());
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ class MultiColoredSpellCastManaCondition extends ManaCondition implements Condit
|
|||
public boolean apply(Game game, Ability source) {
|
||||
if (source instanceof SpellAbility) {
|
||||
MageObject object = game.getObject(source.getSourceId());
|
||||
if (object != null && object.getColor().getColorCount() > 1) {
|
||||
if (object != null && object.getColor(game).getColorCount() > 1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,18 +57,10 @@ public class ResearchDevelopment extends SplitCard {
|
|||
super(ownerId, 155, "Research", "Development", Rarity.RARE, new CardType[]{CardType.INSTANT}, "{G}{U}", "{3}{U}{R}", false);
|
||||
this.expansionSetCode = "DIS";
|
||||
|
||||
this.color.setGreen(true);
|
||||
this.color.setBlue(true);
|
||||
this.color.setRed(true);
|
||||
|
||||
// Choose up to four cards you own from outside the game and shuffle them into your library.
|
||||
getLeftHalfCard().getColor().setGreen(true);
|
||||
getLeftHalfCard().getColor().setBlue(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new ResearchEffect());
|
||||
|
||||
// Put a 3/1 red Elemental creature token onto the battlefield unless any opponent has you draw a card. Repeat this process two more times.
|
||||
getRightHalfCard().getColor().setBlue(true);
|
||||
getRightHalfCard().getColor().setRed(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new DevelopmentEffect());
|
||||
}
|
||||
|
||||
|
|
|
@ -56,20 +56,12 @@ public class SupplyDemand extends SplitCard {
|
|||
super(ownerId, 157, "Supply", "Demand", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{1}{W}{U}", "{X}{G}{W}", false);
|
||||
this.expansionSetCode = "DIS";
|
||||
|
||||
this.color.setGreen(true);
|
||||
this.color.setWhite(true);
|
||||
this.color.setBlue(true);
|
||||
|
||||
// Demand
|
||||
// Search your library for a multicolored card, reveal it, and put it into your hand. Then shuffle your library.
|
||||
getLeftHalfCard().getColor().setBlue(true);
|
||||
getLeftHalfCard().getColor().setWhite(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(1, filter), true));
|
||||
|
||||
// Supply
|
||||
// Put X 1/1 green Saproling creature tokens onto the battlefield.
|
||||
getRightHalfCard().getColor().setWhite(true);
|
||||
getRightHalfCard().getColor().setGreen(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new CreateTokenEffect(new SaprolingToken(), new ManacostVariableValue()));
|
||||
|
||||
}
|
||||
|
|
|
@ -50,18 +50,13 @@ public class AliveWell extends SplitCard {
|
|||
super(ownerId, 121, "Alive", "Well", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{3}{G}","{W}", true);
|
||||
this.expansionSetCode = "DGM";
|
||||
|
||||
this.color.setGreen(true);
|
||||
this.color.setWhite(true);
|
||||
|
||||
// Alive
|
||||
// Put a 3/3 green Centaur creature token onto the battlefield.
|
||||
getLeftHalfCard().getColor().setGreen(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new CreateTokenEffect(new CentaurToken()));
|
||||
|
||||
|
||||
// Well
|
||||
// You gain 2 life for each creature you control.
|
||||
getRightHalfCard().getColor().setWhite(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new WellEffect());
|
||||
|
||||
}
|
||||
|
|
|
@ -51,19 +51,14 @@ public class ArmedDangerous extends SplitCard {
|
|||
super(ownerId, 122, "Armed", "Dangerous", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{1}{R}", "{3}{G}", true);
|
||||
this.expansionSetCode = "DGM";
|
||||
|
||||
this.color.setRed(true);
|
||||
this.color.setGreen(true);
|
||||
|
||||
// Armed
|
||||
// Target creature gets +1/+1 and gains double strike until end of turn.
|
||||
getLeftHalfCard().getColor().setRed(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(1,1, Duration.EndOfTurn));
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn));
|
||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
// Dangerous
|
||||
// All creatures able to block target creature this turn do so.
|
||||
getRightHalfCard().getColor().setGreen(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new MustBeBlockedByAllTargetEffect(Duration.EndOfTurn));
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
|
|
|
@ -55,20 +55,12 @@ public class BeckCall extends SplitCard {
|
|||
super(ownerId, 123, "Beck", "Call", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{G}{U}", "{4}{W}{U}", true);
|
||||
this.expansionSetCode = "DGM";
|
||||
|
||||
this.color.setWhite(true);
|
||||
this.color.setBlue(true);
|
||||
this.color.setGreen(true);
|
||||
|
||||
// Beck
|
||||
// Whenever a creature enters the battlefield this turn, you may draw a card.
|
||||
getLeftHalfCard().getColor().setGreen(true);
|
||||
getLeftHalfCard().getColor().setBlue(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new BeckTriggeredAbility()));
|
||||
|
||||
// Call
|
||||
// Put four 1/1 white Bird creature tokens with flying onto the battlefield.
|
||||
getRightHalfCard().getColor().setWhite(true);
|
||||
getRightHalfCard().getColor().setBlue(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new CreateTokenEffect(new BirdToken(),4));
|
||||
|
||||
}
|
||||
|
|
|
@ -49,18 +49,13 @@ public class DownDirty extends SplitCard {
|
|||
super(ownerId, 126, "Down", "Dirty", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{3}{B}", "{2}{G}", true);
|
||||
this.expansionSetCode = "DGM";
|
||||
|
||||
this.color.setBlack(true);
|
||||
this.color.setGreen(true);
|
||||
|
||||
// Down
|
||||
// Target player discards two cards.
|
||||
getLeftHalfCard().getColor().setBlack(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new DiscardTargetEffect(2));
|
||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetPlayer());
|
||||
|
||||
// Dirty
|
||||
// Return target card from your graveyard to your hand.
|
||||
getRightHalfCard().getColor().setGreen(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect());
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetCardInYourGraveyard());
|
||||
|
||||
|
|
|
@ -50,18 +50,13 @@ public class FarAway extends SplitCard {
|
|||
super(ownerId, 127, "Far", "Away", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{U}", "{2}{B}", true);
|
||||
this.expansionSetCode = "DGM";
|
||||
|
||||
this.color.setBlue(true);
|
||||
this.color.setBlack(true);
|
||||
|
||||
// Far
|
||||
// Return target creature to its owner's hand.
|
||||
getLeftHalfCard().getColor().setBlue(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
// Away
|
||||
// Target player sacrifices a creature.
|
||||
getRightHalfCard().getColor().setBlack(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new SacrificeEffect(new FilterCreaturePermanent(), 1, "Target player"));
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetPlayer());
|
||||
|
||||
|
|
|
@ -60,14 +60,8 @@ public class FleshBlood extends SplitCard {
|
|||
super(ownerId, 128, "Flesh", "Blood", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{3}{B}{G}", "{R}{G}",true);
|
||||
this.expansionSetCode = "DGM";
|
||||
|
||||
this.color.setBlack(true);
|
||||
this.color.setGreen(true);
|
||||
this.color.setRed(true);
|
||||
|
||||
// Flesh
|
||||
// Exile target creature card from a graveyard. Put X +1/+1 counters on target creature, where X is the power of the card you exiled.
|
||||
getLeftHalfCard().getColor().setBlack(true);
|
||||
getLeftHalfCard().getColor().setGreen(true);
|
||||
Target target = new TargetCardInGraveyard(new FilterCreatureCard());
|
||||
getLeftHalfCard().getSpellAbility().addTarget(target);
|
||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
@ -75,8 +69,6 @@ public class FleshBlood extends SplitCard {
|
|||
|
||||
// Blood
|
||||
// Target creature you control deals damage equal to its power to target creature or player.
|
||||
getRightHalfCard().getColor().setRed(true);
|
||||
getRightHalfCard().getColor().setGreen(true);
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetCreatureOrPlayer());
|
||||
getRightHalfCard().getSpellAbility().addEffect(new BloodEffect());
|
||||
|
|
|
@ -52,20 +52,15 @@ public class GiveTake extends SplitCard {
|
|||
super(ownerId, 129, "Give", "Take", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{2}{G}","{2}{U}", true);
|
||||
this.expansionSetCode = "DGM";
|
||||
|
||||
this.color.setGreen(true);
|
||||
this.color.setBlue(true);
|
||||
|
||||
// Give
|
||||
// Put three +1/+1 counters on target creature.
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance(3)));
|
||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
getLeftHalfCard().getColor().setGreen(true);
|
||||
|
||||
// Take
|
||||
// Remove all +1/+1 counters from target creature you control. Draw that many cards.
|
||||
getRightHalfCard().getSpellAbility().addEffect(new TakeEffect());
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
|
||||
getLeftHalfCard().getColor().setBlue(true);
|
||||
}
|
||||
|
||||
public GiveTake(final GiveTake card) {
|
||||
|
|
|
@ -57,17 +57,12 @@ public class ProfitLoss extends SplitCard {
|
|||
super(ownerId, 130, "Profit", "Loss", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{W}", "{2}{B}", true);
|
||||
this.expansionSetCode = "DGM";
|
||||
|
||||
this.color.setWhite(true);
|
||||
this.color.setBlack(true);
|
||||
|
||||
// Profit
|
||||
// Creatures you control get +1/+1 until end of turn.
|
||||
getLeftHalfCard().getColor().setBlue(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new BoostControlledEffect(1,1, Duration.EndOfTurn, new FilterCreaturePermanent()));
|
||||
|
||||
// Loss
|
||||
// Creatures your opponents control get -1/-1 until end of turn.
|
||||
getRightHalfCard().getColor().setBlack(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new BoostAllEffect(-1, -1, Duration.EndOfTurn, filter, false));
|
||||
|
||||
}
|
||||
|
|
|
@ -48,18 +48,13 @@ public class ProtectServe extends SplitCard {
|
|||
super(ownerId, 131, "Protect", "Serve", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{2}{W}", "{1}{U}", true);
|
||||
this.expansionSetCode = "DGM";
|
||||
|
||||
this.color.setWhite(true);
|
||||
this.color.setBlue(true);
|
||||
|
||||
// Protect
|
||||
// Target creature gets +2/+4 until end of turn.
|
||||
getLeftHalfCard().getColor().setWhite(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(2,4, Duration.EndOfTurn));
|
||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
// Serve
|
||||
// Target creature gets -6/-0 until end of turn.
|
||||
getRightHalfCard().getColor().setBlue(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(-6,0, Duration.EndOfTurn));
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
|
|
|
@ -53,14 +53,8 @@ public class ReadyWilling extends SplitCard {
|
|||
super(ownerId, 132, "Ready", "Willing", Rarity.RARE, new CardType[]{CardType.INSTANT}, "{1}{G}{W}", "{1}{W}{B}", true);
|
||||
this.expansionSetCode = "DGM";
|
||||
|
||||
this.color.setGreen(true);
|
||||
this.color.setWhite(true);
|
||||
this.color.setBlack(true);
|
||||
|
||||
// Ready
|
||||
// Creatures you control are indestructible this turn. Untap each creature you control.
|
||||
getLeftHalfCard().getColor().setGreen(true);
|
||||
getLeftHalfCard().getColor().setWhite(true);
|
||||
Effect effect = new GainAbilityAllEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures you controll"), false);
|
||||
effect.setText("Creatures you control are indestructible this turn");
|
||||
getLeftHalfCard().getSpellAbility().addEffect(effect);
|
||||
|
@ -68,8 +62,6 @@ public class ReadyWilling extends SplitCard {
|
|||
|
||||
// Willing
|
||||
// Creatures you control gain deathtouch and lifelink until end of turn.
|
||||
getRightHalfCard().getColor().setWhite(true);
|
||||
getRightHalfCard().getColor().setBlack(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new GainAbilityControlledEffect(DeathtouchAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent("Creatures")) );
|
||||
effect = new GainAbilityControlledEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent("Creatures"));
|
||||
effect.setText("Creatures you control gain lifelink until end of turn");
|
||||
|
|
|
@ -54,19 +54,14 @@ public class ToilTrouble extends SplitCard {
|
|||
super(ownerId, 133, "Toil", "Trouble", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{2}{B}", "{2}{R}",true);
|
||||
this.expansionSetCode = "DGM";
|
||||
|
||||
this.color.setBlack(true);
|
||||
this.color.setRed(true);
|
||||
|
||||
// Toil
|
||||
// Target player draws two cards and loses 2 life.
|
||||
getLeftHalfCard().getColor().setBlack(true);
|
||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetPlayer());
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new DrawCardTargetEffect(2));
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new LoseLifeTargetEffect(2));
|
||||
|
||||
// Trouble
|
||||
// Trouble deals damage to target player equal to the number of cards in that player's hand.
|
||||
getRightHalfCard().getColor().setRed(true);
|
||||
Effect effect = new DamageTargetEffect(new TargetPlayerCardsInHandCount());
|
||||
effect.setText("Trouble deals damage to target player equal to the number of cards in that player's hand");
|
||||
getRightHalfCard().getSpellAbility().addEffect(effect);
|
||||
|
|
|
@ -29,11 +29,9 @@ package mage.sets.dragonsmaze;
|
|||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.LoseAllAbilitiesTargetEffect;
|
||||
import mage.cards.SplitCard;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
|
@ -52,12 +50,8 @@ public class TurnBurn extends SplitCard {
|
|||
super(ownerId, 134, "Turn", "Burn", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{2}{U}", "{1}{R}", true);
|
||||
this.expansionSetCode = "DGM";
|
||||
|
||||
this.color.setBlue(true);
|
||||
this.color.setRed(true);
|
||||
|
||||
// Turn
|
||||
// Until end of turn, target creature loses all abilities and becomes a red Weird with base power and toughness 0/1.
|
||||
getLeftHalfCard().getColor().setBlue(true);
|
||||
Effect effect = new BecomesCreatureTargetEffect(new WeirdToken(), true, false, Duration.EndOfTurn);
|
||||
effect.setText("Until end of turn, target creature loses all abilities and becomes a red Weird with base power and toughness 0/1");
|
||||
getLeftHalfCard().getSpellAbility().addEffect(effect);
|
||||
|
@ -65,7 +59,6 @@ public class TurnBurn extends SplitCard {
|
|||
|
||||
// Burn
|
||||
// Burn deals 2 damage to target creature or player.
|
||||
getRightHalfCard().getColor().setRed(true);
|
||||
effect = new DamageTargetEffect(2);
|
||||
effect.setText("Burn deals 2 damage to target creature or player");
|
||||
getRightHalfCard().getSpellAbility().addEffect(effect);
|
||||
|
|
|
@ -47,19 +47,14 @@ public class WearTear extends SplitCard {
|
|||
super(ownerId, 135, "Wear", "Tear", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{R}", "{W}", true);
|
||||
this.expansionSetCode = "DGM";
|
||||
|
||||
this.color.setRed(true);
|
||||
this.color.setWhite(true);
|
||||
|
||||
// Wear
|
||||
// Destroy target artifact.
|
||||
getLeftHalfCard().getColor().setRed(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new DestroyTargetEffect());
|
||||
Target target = new TargetArtifactPermanent();
|
||||
getLeftHalfCard().getSpellAbility().addTarget(target);
|
||||
|
||||
// Tear
|
||||
// Destroy target enchantment.
|
||||
getRightHalfCard().getColor().setWhite(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new DestroyTargetEffect());
|
||||
target = new TargetPermanent(new FilterEnchantment());
|
||||
getRightHalfCard().getSpellAbility().addTarget(target);
|
||||
|
|
|
@ -124,7 +124,7 @@ class DisplayOfDominanceEffect extends ContinuousRuleModifyingEffectImpl {
|
|||
MageObject mageObject = game.getObject(event.getSourceId());
|
||||
if (game.getPlayer(ability.getControllerId()).hasOpponent(event.getPlayerId(), game) &&
|
||||
mageObject instanceof Spell &&
|
||||
(mageObject.getColor().isBlack() || mageObject.getColor().isBlue())) {
|
||||
(mageObject.getColor(game).isBlack() || mageObject.getColor(game).isBlue())) {
|
||||
Permanent permanent = game.getPermanent(event.getTargetId());
|
||||
return permanent != null && permanent.getControllerId().equals(ability.getControllerId());
|
||||
}
|
||||
|
|
|
@ -106,19 +106,19 @@ class BloomTenderEffect extends ManaEffect {
|
|||
if (controller != null) {
|
||||
Mana mana = new Mana();
|
||||
for (Permanent permanent : game.getBattlefield().getAllActivePermanents(controller.getId())) {
|
||||
if (mana.getBlack() == 0 && permanent.getColor().isBlack()) {
|
||||
if (mana.getBlack() == 0 && permanent.getColor(game).isBlack()) {
|
||||
mana.addBlack();
|
||||
}
|
||||
if (mana.getBlue() == 0 && permanent.getColor().isBlue()) {
|
||||
if (mana.getBlue() == 0 && permanent.getColor(game).isBlue()) {
|
||||
mana.addBlue();
|
||||
}
|
||||
if (mana.getRed() == 0 && permanent.getColor().isRed()) {
|
||||
if (mana.getRed() == 0 && permanent.getColor(game).isRed()) {
|
||||
mana.addRed();
|
||||
}
|
||||
if (mana.getGreen() == 0 && permanent.getColor().isGreen()) {
|
||||
if (mana.getGreen() == 0 && permanent.getColor(game).isGreen()) {
|
||||
mana.addGreen();
|
||||
}
|
||||
if (mana.getWhite() == 0 && permanent.getColor().isWhite()) {
|
||||
if (mana.getWhite() == 0 && permanent.getColor(game).isWhite()) {
|
||||
mana.addWhite();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -101,7 +101,7 @@ class BecomesBlueTargetEffect extends ContinuousEffectImpl {
|
|||
public boolean apply(Game game, Ability source) {
|
||||
Permanent permanent = game.getPermanent(source.getFirstTarget());
|
||||
if (permanent != null) {
|
||||
permanent.getColor().setBlue(true);
|
||||
permanent.getColor(game).setBlue(true);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -89,7 +89,7 @@ class HydroblastCounterEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
if (game.getStack().getSpell(source.getFirstTarget()).getColor().isRed()) {
|
||||
if (game.getStack().getSpell(source.getFirstTarget()).getColor(game).isRed()) {
|
||||
game.getStack().counter(source.getFirstTarget(), source.getSourceId(), game);
|
||||
}
|
||||
return true;
|
||||
|
@ -119,7 +119,7 @@ class HydroblastDestroyEffect extends OneShotEffect {
|
|||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Permanent permanent = game.getPermanent(source.getTargets().getFirstTarget());
|
||||
if (permanent != null && permanent.getColor().isRed()) {
|
||||
if (permanent != null && permanent.getColor(game).isRed()) {
|
||||
permanent.destroy(source.getSourceId(), game, false);
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -95,7 +95,7 @@ class JusticeTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|| event.getType() == GameEvent.EventType.DAMAGED_PLAYER
|
||||
|| event.getType() == GameEvent.EventType.DAMAGED_PLANESWALKER) {
|
||||
MageObject sourceObject = game.getObject(event.getSourceId());
|
||||
if (sourceObject.getColor().isRed()) {
|
||||
if (sourceObject.getColor(game).isRed()) {
|
||||
if (sourceObject instanceof Permanent && sourceObject.getCardType().contains(CardType.CREATURE)
|
||||
|| sourceObject instanceof Spell) {
|
||||
this.getEffects().get(0).setValue("damageAmount", event.getAmount());
|
||||
|
|
|
@ -49,7 +49,7 @@ public class DryadArbor extends CardImpl {
|
|||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
this.getColor().setGreen(true);
|
||||
this.color.setGreen(true);
|
||||
|
||||
// <i>(Dryad Arbor isn't a spell, it's affected by summoning sickness, and it has "{tap}: Add {G} to your mana pool.")</i>
|
||||
this.addAbility(new GreenManaAbility());
|
||||
|
|
|
@ -82,7 +82,7 @@ class GlitteringWishEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public boolean apply(MageObject input, Game game) {
|
||||
return input.getColor().isMulticolored();
|
||||
return input.getColor(game).isMulticolored();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -120,7 +120,7 @@ class LazavDimirEffect extends ContinuousEffectImpl {
|
|||
}
|
||||
permanent.getPower().setValue(cardToCopy.getPower().getValue());
|
||||
permanent.getToughness().setValue(cardToCopy.getToughness().getValue());
|
||||
permanent.getColor().setColor(cardToCopy.getColor());
|
||||
permanent.getColor(game).setColor(cardToCopy.getColor(game));
|
||||
permanent.getManaCost().clear();
|
||||
permanent.getManaCost().add(cardToCopy.getManaCost());
|
||||
permanent.getCardType().clear();
|
||||
|
|
|
@ -89,7 +89,7 @@ class PyroblastCounterTargetEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
if(game.getStack().getSpell(source.getFirstTarget()).getColor().isBlue()){
|
||||
if(game.getStack().getSpell(source.getFirstTarget()).getColor(game).isBlue()){
|
||||
game.getStack().counter(source.getFirstTarget(), source.getSourceId(), game);
|
||||
}
|
||||
return true;
|
||||
|
@ -122,7 +122,7 @@ class DestroyTargetEffect extends OneShotEffect {
|
|||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
Permanent permanent = game.getPermanent(source.getTargets().getFirstTarget());
|
||||
if (permanent != null && permanent.getColor().isBlue()) {
|
||||
if (permanent != null && permanent.getColor(game).isBlue()) {
|
||||
permanent.destroy(source.getSourceId(), game, false);
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -137,7 +137,7 @@ class EssenceOfTheWildCopyEffect extends ContinuousEffectImpl {
|
|||
Permanent permanent = game.getPermanent(targetId);
|
||||
if (permanent != null) {
|
||||
permanent.setName(essence.getName());
|
||||
permanent.getColor().setColor(essence.getColor());
|
||||
permanent.getColor(game).setColor(essence.getColor(game));
|
||||
permanent.getManaCost().clear();
|
||||
permanent.getManaCost().add(essence.getManaCost());
|
||||
permanent.getCardType().clear();
|
||||
|
|
|
@ -146,7 +146,7 @@ class GrimoireOfTheDeadEffect2 extends ContinuousEffectImpl {
|
|||
switch (layer) {
|
||||
case ColorChangingEffects_5:
|
||||
if (sublayer == SubLayer.NA) {
|
||||
permanent.getColor().setBlack(true);
|
||||
permanent.getColor(game).setBlack(true);
|
||||
}
|
||||
break;
|
||||
case TypeChangingEffects_4:
|
||||
|
|
|
@ -50,12 +50,8 @@ public class AssaultBattery extends SplitCard {
|
|||
super(ownerId, 295, "Assault", "Battery", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{R}", "{3}{G}", false);
|
||||
this.expansionSetCode = "INV";
|
||||
|
||||
this.color.setRed(true);
|
||||
this.color.setGreen(true);
|
||||
|
||||
// Assault
|
||||
// Assault deals 2 damage to target creature or player.
|
||||
getLeftHalfCard().getColor().setRed(true);
|
||||
Effect effect = new DamageTargetEffect(2);
|
||||
effect.setText("Assault deals 2 damage to target creature or player");
|
||||
getLeftHalfCard().getSpellAbility().addEffect(effect);
|
||||
|
@ -63,7 +59,6 @@ public class AssaultBattery extends SplitCard {
|
|||
|
||||
// Battery
|
||||
// Put a 3/3 green Elephant creature token onto the battlefield.
|
||||
getRightHalfCard().getColor().setGreen(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new CreateTokenEffect(new ElephantToken()));
|
||||
|
||||
}
|
||||
|
|
|
@ -138,7 +138,7 @@ class HallOfTriumphBoostControlledEffect extends ContinuousEffectImpl {
|
|||
ObjectColor color = (ObjectColor) game.getState().getValue(source.getSourceId() + "_color");
|
||||
if (color != null) {
|
||||
for (Permanent perm: game.getBattlefield().getAllActivePermanents(filter, source.getControllerId(), game)) {
|
||||
if (perm.getColor().shares(color)) {
|
||||
if (perm.getColor(game).shares(color)) {
|
||||
perm.addPower(1);
|
||||
perm.addToughness(1);
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ public class GhostfireBlade extends CardImpl {
|
|||
public void adjustCosts(Ability ability, Game game) {
|
||||
if (ability instanceof EquipAbility) {
|
||||
Permanent targetCreature = game.getPermanent(ability.getTargets().getFirstTarget());
|
||||
if (targetCreature != null && targetCreature.getColor().isColorless()) {
|
||||
if (targetCreature != null && targetCreature.getColor(game).isColorless()) {
|
||||
CardUtil.reduceCost(ability, 2);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -135,7 +135,7 @@ class SarkhanTheDragonspeakerEffect extends ContinuousEffectImpl {
|
|||
}
|
||||
break;
|
||||
case ColorChangingEffects_5:
|
||||
permanent.getColor().setColor(ObjectColor.RED);
|
||||
permanent.getColor(game).setColor(ObjectColor.RED);
|
||||
break;
|
||||
case AbilityAddingRemovingEffects_6:
|
||||
if (sublayer == SubLayer.NA) {
|
||||
|
|
|
@ -95,7 +95,7 @@ class AbominationTriggeredAbility extends TriggeredAbilityImpl {
|
|||
Permanent blocked = game.getPermanent(event.getTargetId());
|
||||
Permanent abomination = game.getPermanent(sourceId);
|
||||
if (blocker != null && blocker != abomination
|
||||
&& blocker.getColor().isWhite()
|
||||
&& blocker.getColor(game).isWhite()
|
||||
&& blocked == abomination) {
|
||||
for (Effect effect : this.getEffects()) {
|
||||
effect.setTargetPointer(new FixedTarget(event.getSourceId()));
|
||||
|
@ -103,14 +103,14 @@ class AbominationTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
}
|
||||
if (blocker != null && blocker == abomination
|
||||
&& game.getPermanent(event.getTargetId()).getColor().isWhite()) {
|
||||
&& game.getPermanent(event.getTargetId()).getColor(game).isWhite()) {
|
||||
for (Effect effect : this.getEffects()) {
|
||||
effect.setTargetPointer(new FixedTarget(event.getTargetId()));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (blocker != null && blocker != abomination
|
||||
&& blocker.getColor().isGreen()
|
||||
&& blocker.getColor(game).isGreen()
|
||||
&& blocked == abomination) {
|
||||
for (Effect effect : this.getEffects()) {
|
||||
effect.setTargetPointer(new FixedTarget(event.getSourceId()));
|
||||
|
@ -118,7 +118,7 @@ class AbominationTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
}
|
||||
if (blocker != null && blocker == abomination
|
||||
&& game.getPermanent(event.getTargetId()).getColor().isGreen()) {
|
||||
&& game.getPermanent(event.getTargetId()).getColor(game).isGreen()) {
|
||||
for (Effect effect : this.getEffects()) {
|
||||
effect.setTargetPointer(new FixedTarget(event.getTargetId()));
|
||||
return true;
|
||||
|
|
|
@ -86,7 +86,7 @@ class CrystalRodAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getType() == GameEvent.EventType.SPELL_CAST) {
|
||||
Spell spell = game.getStack().getSpell(event.getTargetId());
|
||||
if (spell != null && spell.getColor().contains(ObjectColor.BLUE)) {
|
||||
if (spell != null && spell.getColor(game).contains(ObjectColor.BLUE)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -86,7 +86,7 @@ class IronStarAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getType() == GameEvent.EventType.SPELL_CAST) {
|
||||
Spell spell = game.getStack().getSpell(event.getTargetId());
|
||||
if (spell != null && spell.getColor().contains(ObjectColor.RED)) {
|
||||
if (spell != null && spell.getColor(game).contains(ObjectColor.RED)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@ class IvoryCupAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getType() == GameEvent.EventType.SPELL_CAST) {
|
||||
Spell spell = game.getStack().getSpell(event.getTargetId());
|
||||
if (spell != null && spell.getColor().contains(ObjectColor.WHITE)) {
|
||||
if (spell != null && spell.getColor(game).contains(ObjectColor.WHITE)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -86,7 +86,7 @@ class ThroneOfBoneAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getType() == GameEvent.EventType.SPELL_CAST) {
|
||||
Spell spell = game.getStack().getSpell(event.getTargetId());
|
||||
if (spell != null && spell.getColor().contains(ObjectColor.BLACK)) {
|
||||
if (spell != null && spell.getColor(game).contains(ObjectColor.BLACK)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -86,7 +86,7 @@ class WoodenSphereAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getType() == GameEvent.EventType.SPELL_CAST) {
|
||||
Spell spell = game.getStack().getSpell(event.getTargetId());
|
||||
if (spell != null && spell.getColor().contains(ObjectColor.GREEN)) {
|
||||
if (spell != null && spell.getColor(game).contains(ObjectColor.GREEN)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -93,7 +93,7 @@ class ForkEffect extends OneShotEffect {
|
|||
Spell spell = game.getStack().getSpell(targetPointer.getFirst(game, source));
|
||||
if (spell != null) {
|
||||
Spell copy = spell.copySpell();
|
||||
copy.getColor().setRed(true);
|
||||
copy.getColor(game).setRed(true);
|
||||
copy.setControllerId(controller.getId());
|
||||
copy.setCopiedSpell(true);
|
||||
game.getStack().push(copy);
|
||||
|
|
|
@ -114,7 +114,7 @@ class DreadWarlockEffect extends RestrictionEffect {
|
|||
|
||||
@Override
|
||||
public boolean canBeBlocked(Permanent attacker, Permanent blocker, Ability source, Game game) {
|
||||
if (blocker.getColor().isBlack()) {
|
||||
if (blocker.getColor(game).isBlack()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -98,7 +98,7 @@ class RiseFromTheGraveEffect extends ContinuousEffectImpl {
|
|||
break;
|
||||
case ColorChangingEffects_5:
|
||||
if (sublayer == SubLayer.NA) {
|
||||
creature.getColor().setBlack(true);
|
||||
creature.getColor(game).setBlack(true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -126,7 +126,7 @@ class VampireNocturnusCondition implements Condition {
|
|||
if (player != null) {
|
||||
Card card = player.getLibrary().getFromTop(game);
|
||||
if (card != null) {
|
||||
return card.getColor().isBlack();
|
||||
return card.getColor(game).isBlack();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -100,7 +100,7 @@ class FireServantEffect extends ReplacementEffectImpl {
|
|||
StackObject spell = game.getStack().getStackObject(event.getSourceId());
|
||||
return spell != null &&
|
||||
spell.getControllerId().equals(source.getControllerId()) &&
|
||||
spell.getColor().isRed() &&
|
||||
spell.getColor(game).isRed() &&
|
||||
(spell.getCardType().contains(CardType.INSTANT) || spell.getCardType().contains(CardType.SORCERY));
|
||||
}
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ class ChandrasPhoenixTriggeredAbility extends TriggeredAbilityImpl {
|
|||
if (game.getOpponents(this.controllerId).contains(event.getPlayerId())) {
|
||||
Card c = game.getCard(event.getSourceId());
|
||||
if (c != null) {
|
||||
if (c.getColor().isRed() && (c.getCardType().contains(CardType.PLANESWALKER) || c.getCardType().contains(CardType.INSTANT) || c.getCardType().contains(CardType.SORCERY))) {
|
||||
if (c.getColor(game).isRed() && (c.getCardType().contains(CardType.PLANESWALKER) || c.getCardType().contains(CardType.INSTANT) || c.getCardType().contains(CardType.SORCERY))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -123,8 +123,8 @@ class FiendslayerPaladinEffect extends ContinuousRuleModifyingEffectImpl {
|
|||
Card targetCard = game.getCard(event.getTargetId());
|
||||
StackObject stackObject = (StackObject) game.getStack().getStackObject(event.getSourceId());
|
||||
if (targetCard != null && stackObject != null && targetCard.getId().equals(source.getSourceId())) {
|
||||
if (stackObject.getColor().contains(ObjectColor.BLACK)
|
||||
|| stackObject.getColor().contains(ObjectColor.RED)) {
|
||||
if (stackObject.getColor(game).contains(ObjectColor.BLACK)
|
||||
|| stackObject.getColor(game).contains(ObjectColor.RED)) {
|
||||
if (!stackObject.getControllerId().equals(source.getControllerId())
|
||||
&& stackObject.getCardType().contains(CardType.INSTANT)
|
||||
|| stackObject.getCardType().contains(CardType.SORCERY)) {
|
||||
|
|
|
@ -127,7 +127,7 @@ class AvacynGuardianAngelPreventToCreatureEffect extends PreventionEffectImpl {
|
|||
&& event.getTargetId().equals(getTargetPointer().getFirst(game, source))) {
|
||||
ChoiceColor choice = (ChoiceColor) source.getChoices().get(0);
|
||||
MageObject sourceObject = game.getObject(event.getSourceId());
|
||||
if (sourceObject != null && choice != null && sourceObject.getColor().shares(choice.getColor())) {
|
||||
if (sourceObject != null && choice != null && sourceObject.getColor(game).shares(choice.getColor())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -166,7 +166,7 @@ class AvacynGuardianAngelPreventToPlayerEffect extends PreventionEffectImpl {
|
|||
&& event.getTargetId().equals(getTargetPointer().getFirst(game, source))) {
|
||||
ChoiceColor choice = (ChoiceColor) source.getChoices().get(0);
|
||||
MageObject sourceObject = game.getObject(event.getSourceId());
|
||||
if (sourceObject != null && choice != null && sourceObject.getColor().shares(choice.getColor())) {
|
||||
if (sourceObject != null && choice != null && sourceObject.getColor(game).shares(choice.getColor())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -115,12 +115,12 @@ class PolymorphistsJestEffect extends ContinuousEffectImpl {
|
|||
break;
|
||||
case ColorChangingEffects_5:
|
||||
if (sublayer == SubLayer.NA) {
|
||||
permanent.getColor().setBlack(false);
|
||||
permanent.getColor().setGreen(false);
|
||||
permanent.getColor().setBlue(false);
|
||||
permanent.getColor().setWhite(false);
|
||||
permanent.getColor().setBlack(false);
|
||||
permanent.getColor().setColor(ObjectColor.BLUE);
|
||||
permanent.getColor(game).setBlack(false);
|
||||
permanent.getColor(game).setGreen(false);
|
||||
permanent.getColor(game).setBlue(false);
|
||||
permanent.getColor(game).setWhite(false);
|
||||
permanent.getColor(game).setBlack(false);
|
||||
permanent.getColor(game).setColor(ObjectColor.BLUE);
|
||||
}
|
||||
break;
|
||||
case AbilityAddingRemovingEffects_6:
|
||||
|
|
|
@ -103,19 +103,19 @@ class SoulOfRavnicaEffect extends OneShotEffect {
|
|||
if (controller != null) {
|
||||
HashSet<ObjectColor> colors = new HashSet<>();
|
||||
for (Permanent permanent : game.getBattlefield().getAllActivePermanents(controller.getId())) {
|
||||
if (permanent.getColor().isBlack()) {
|
||||
if (permanent.getColor(game).isBlack()) {
|
||||
colors.add(ObjectColor.BLACK);
|
||||
}
|
||||
if (permanent.getColor().isBlue()) {
|
||||
if (permanent.getColor(game).isBlue()) {
|
||||
colors.add(ObjectColor.BLUE);
|
||||
}
|
||||
if (permanent.getColor().isRed()) {
|
||||
if (permanent.getColor(game).isRed()) {
|
||||
colors.add(ObjectColor.RED);
|
||||
}
|
||||
if (permanent.getColor().isGreen()) {
|
||||
if (permanent.getColor(game).isGreen()) {
|
||||
colors.add(ObjectColor.GREEN);
|
||||
}
|
||||
if (permanent.getColor().isWhite()) {
|
||||
if (permanent.getColor(game).isWhite()) {
|
||||
colors.add(ObjectColor.WHITE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -151,7 +151,7 @@ class ChromeMoxManaEffect extends ManaEffect {
|
|||
if (imprintedCard != null) {
|
||||
Choice choice = new ChoiceImpl(true);
|
||||
choice.setMessage("Pick a mana color");
|
||||
ObjectColor color = imprintedCard.getColor();
|
||||
ObjectColor color = imprintedCard.getColor(game);
|
||||
if (color.isBlack()) {
|
||||
choice.getChoices().add("Black");
|
||||
}
|
||||
|
|
|
@ -111,7 +111,7 @@ class KarplusanStriderEffect extends ContinuousRuleModifyingEffectImpl {
|
|||
Permanent targettedPermanent = game.getPermanent(event.getTargetId());
|
||||
Spell sourceSpell = game.getStack().getSpell(event.getSourceId());
|
||||
if (targettedPermanent != null && sourceSpell != null) {
|
||||
return sourceSpell.getColor().isBlue() || sourceSpell.getColor().isBlack();
|
||||
return sourceSpell.getColor(game).isBlue() || sourceSpell.getColor(game).isBlack();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -111,7 +111,7 @@ class CagedSunEffect2 extends ContinuousEffectImpl {
|
|||
ObjectColor color = (ObjectColor) game.getState().getValue(permanent.getId() + "_color");
|
||||
if (color != null) {
|
||||
for (Permanent perm: game.getBattlefield().getAllActivePermanents(filter, source.getControllerId(), game)) {
|
||||
if (perm.getColor().contains(color)) {
|
||||
if (perm.getColor(game).contains(color)) {
|
||||
perm.addPower(1);
|
||||
perm.addToughness(1);
|
||||
}
|
||||
|
|
|
@ -87,7 +87,7 @@ class DeathgazerTriggeredAbility extends TriggeredAbilityImpl {
|
|||
if (event.getType() == GameEvent.EventType.BLOCKER_DECLARED) {
|
||||
if (event.getSourceId().equals(this.getSourceId())) {
|
||||
Permanent permanent = game.getPermanent(event.getTargetId());
|
||||
if(permanent != null && !permanent.getColor().isBlack())
|
||||
if(permanent != null && !permanent.getColor(game).isBlack())
|
||||
{
|
||||
for (Effect effect : this.getEffects()) {
|
||||
effect.setTargetPointer(new FixedTarget(event.getTargetId()));
|
||||
|
@ -97,7 +97,7 @@ class DeathgazerTriggeredAbility extends TriggeredAbilityImpl {
|
|||
}
|
||||
if (event.getTargetId().equals(this.getSourceId())) {
|
||||
Permanent permanent = game.getPermanent(event.getSourceId());
|
||||
if(permanent != null && !permanent.getColor().isBlack())
|
||||
if(permanent != null && !permanent.getColor(game).isBlack())
|
||||
{
|
||||
for (Effect effect : this.getEffects()) {
|
||||
effect.setTargetPointer(new FixedTarget(event.getSourceId()));
|
||||
|
|
|
@ -97,9 +97,9 @@ class EarnestFellowshipEffect extends ContinuousEffectImpl {
|
|||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
for (Permanent permanent : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), game)) {
|
||||
if (permanent.getColor().hasColor()) {
|
||||
if (permanent.getColor(game).hasColor()) {
|
||||
List<ColorPredicate> colorPredicates = new ArrayList<>();
|
||||
for (ObjectColor color : permanent.getColor().getColors()) {
|
||||
for (ObjectColor color : permanent.getColor(game).getColors()) {
|
||||
colorPredicates.add(new ColorPredicate(color));
|
||||
}
|
||||
FilterCard filterColors = new FilterCard("its colors");
|
||||
|
|
|
@ -127,8 +127,8 @@ class TestamentOfFaithBecomesCreatureSourceEffect extends ContinuousEffectImpl i
|
|||
break;
|
||||
case ColorChangingEffects_5:
|
||||
if (sublayer == SubLayer.NA) {
|
||||
if (token.getColor().hasColor()) {
|
||||
permanent.getColor().setColor(token.getColor());
|
||||
if (token.getColor(game).hasColor()) {
|
||||
permanent.getColor(game).setColor(token.getColor(game));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -60,11 +60,8 @@ public class BoomBust extends SplitCard {
|
|||
super(ownerId, 112, "Boom", "Bust", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{1}{R}", "{5}{R}", false);
|
||||
this.expansionSetCode = "PLC";
|
||||
|
||||
this.color.setRed(true);
|
||||
|
||||
// Boom
|
||||
// Destroy target land you control and target land you don't control.
|
||||
getLeftHalfCard().getColor().setRed(true);
|
||||
Effect effect = new DestroyTargetEffect();
|
||||
effect.setText("Destroy target land you control and target land you don't control");
|
||||
getLeftHalfCard().getSpellAbility().addEffect(effect);
|
||||
|
@ -73,7 +70,6 @@ public class BoomBust extends SplitCard {
|
|||
|
||||
// Bust
|
||||
// Destroy all lands.
|
||||
getRightHalfCard().getColor().setRed(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new DestroyAllEffect(new FilterLandPermanent()));
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package mage.sets.planarchaos;
|
||||
|
||||
import mage.abilities.Mode;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
import mage.cards.Card;
|
||||
|
@ -27,17 +26,14 @@ public class DeadGone extends SplitCard {
|
|||
public DeadGone(UUID ownerId) {
|
||||
super(ownerId, 113, "Dead", "Gone", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{R}", "{2}{R}", false);
|
||||
this.expansionSetCode = "PLC";
|
||||
this.color.setRed(true);
|
||||
|
||||
// Dead
|
||||
// Dead deals 2 damage to target creature.
|
||||
getLeftHalfCard().getColor().setRed(true);
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new DeadDamageEffect());
|
||||
getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
// Gone
|
||||
// Return target creature you don't control to its owner's hand.
|
||||
getRightHalfCard().getColor().setRed(true);
|
||||
getRightHalfCard().getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||
getRightHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
|
||||
}
|
||||
|
|
|
@ -116,7 +116,7 @@ class LifeAndLimbEffect extends ContinuousEffectImpl {
|
|||
}
|
||||
break;
|
||||
case ColorChangingEffects_5:
|
||||
permanent.getColor().setColor(ObjectColor.GREEN);
|
||||
permanent.getColor(game).setColor(ObjectColor.GREEN);
|
||||
break;
|
||||
case AbilityAddingRemovingEffects_6:
|
||||
boolean flag = false;
|
||||
|
|
|
@ -178,7 +178,7 @@ class MeteorCraterEffect extends ManaEffect {
|
|||
List<Permanent> controlledPermanents = game.getBattlefield().getActivePermanents(filter, source.getControllerId(), game);
|
||||
Mana types = new Mana();
|
||||
for (Permanent permanent : controlledPermanents) {
|
||||
ObjectColor color = permanent.getColor();
|
||||
ObjectColor color = permanent.getColor(game);
|
||||
if (color.isBlack()) {
|
||||
types.add(Mana.BlackMana);
|
||||
}
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
package mage.sets.planeshift;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageObject;
|
||||
import mage.ObjectColor;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
|
@ -113,7 +112,7 @@ class ShiftingSkyEffect extends OneShotEffect {
|
|||
Player p = game.getPlayer(playerId);
|
||||
if (p != null) {
|
||||
for (Permanent chosen : game.getBattlefield().getAllActivePermanents(filter, playerId, game)) {
|
||||
setObject(chosen, colorString);
|
||||
setObject(chosen, colorString, game);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -127,22 +126,22 @@ class ShiftingSkyEffect extends OneShotEffect {
|
|||
return new ShiftingSkyEffect(this);
|
||||
}
|
||||
|
||||
private void setObject(Permanent chosen, String colorString) {
|
||||
private void setObject(Permanent chosen, String colorString, Game game) {
|
||||
switch (colorString) {
|
||||
case "W":
|
||||
chosen.getColor().setWhite(true);
|
||||
chosen.getColor(game).setWhite(true);
|
||||
break;
|
||||
case "B":
|
||||
chosen.getColor().setBlack(true);
|
||||
chosen.getColor(game).setBlack(true);
|
||||
break;
|
||||
case "U":
|
||||
chosen.getColor().setBlue(true);
|
||||
chosen.getColor(game).setBlue(true);
|
||||
break;
|
||||
case "G":
|
||||
chosen.getColor().setGreen(true);
|
||||
chosen.getColor(game).setGreen(true);
|
||||
break;
|
||||
case "R":
|
||||
chosen.getColor().setRed(true);
|
||||
chosen.getColor(game).setRed(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -104,7 +104,7 @@ class CrownOfConvergenceColorBoostEffect extends BoostAllEffect {
|
|||
Card topCard = you.getLibrary().getFromTop(game);
|
||||
if (topCard != null) {
|
||||
for (Permanent permanent: game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game)) {
|
||||
if (permanent.getColor().shares(topCard.getColor()) && !permanent.getColor().isColorless()) {
|
||||
if (permanent.getColor(game).shares(topCard.getColor(game)) && !permanent.getColor(game).isColorless()) {
|
||||
permanent.addPower(power.calculate(game, source, this));
|
||||
permanent.addToughness(toughness.calculate(game, source, this));
|
||||
}
|
||||
|
|
|
@ -107,7 +107,7 @@ class DimirDoppelgangerEffect extends ContinuousEffectImpl {
|
|||
permanent.setName(cardToCopy.getName());
|
||||
permanent.getPower().setValue(cardToCopy.getPower().getValue());
|
||||
permanent.getToughness().setValue(cardToCopy.getToughness().getValue());
|
||||
permanent.getColor().setColor(cardToCopy.getColor());
|
||||
permanent.getColor(game).setColor(cardToCopy.getColor(game));
|
||||
permanent.getManaCost().clear();
|
||||
permanent.getManaCost().add(cardToCopy.getManaCost());
|
||||
permanent.getCardType().clear();
|
||||
|
|
|
@ -92,10 +92,10 @@ class LeaveNoTraceEffect extends OneShotEffect {
|
|||
public boolean apply(Game game, Ability source) {
|
||||
Permanent target = game.getPermanent(targetPointer.getFirst(game, source));
|
||||
if (target != null) {
|
||||
ObjectColor color = target.getColor();
|
||||
ObjectColor color = target.getColor(game);
|
||||
target.destroy(source.getSourceId(), game, false);
|
||||
for (Permanent p : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), game)) {
|
||||
if (p.getColor().shares(color)) {
|
||||
if (p.getColor(game).shares(color)) {
|
||||
p.destroy(source.getSourceId(), game, false);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -93,10 +93,10 @@ class RallyTheRighteousUntapEffect extends OneShotEffect {
|
|||
public boolean apply(Game game, Ability source) {
|
||||
Permanent target = game.getPermanent(getTargetPointer().getFirst(game, source));
|
||||
if (target != null) {
|
||||
ObjectColor color = target.getColor();
|
||||
ObjectColor color = target.getColor(game);
|
||||
target.untap(game);
|
||||
for (Permanent permanent : game.getBattlefield().getActivePermanents(new FilterCreaturePermanent(), source.getControllerId(), source.getSourceId(), game)) {
|
||||
if (permanent.getColor().shares(color) && !permanent.getId().equals(target.getId())) {
|
||||
if (permanent.getColor(game).shares(color) && !permanent.getId().equals(target.getId())) {
|
||||
permanent.untap(game);
|
||||
}
|
||||
}
|
||||
|
@ -124,10 +124,10 @@ class RallyTheRighteousBoostEffect extends ContinuousEffectImpl {
|
|||
Permanent target = game.getPermanent(getTargetPointer().getFirst(game, source));
|
||||
if (target != null) {
|
||||
affectedObjectList.add(new MageObjectReference(target, game));
|
||||
ObjectColor color = target.getColor();
|
||||
ObjectColor color = target.getColor(game);
|
||||
target.addPower(2);
|
||||
for (Permanent permanent : game.getBattlefield().getActivePermanents(new FilterCreaturePermanent(), source.getControllerId(), source.getSourceId(), game)) {
|
||||
if (!permanent.getId().equals(target.getId()) && permanent.getColor().shares(color)) {
|
||||
if (!permanent.getId().equals(target.getId()) && permanent.getColor(game).shares(color)) {
|
||||
affectedObjectList.add(new MageObjectReference(permanent, game));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -84,7 +84,7 @@ class CivicSaberColorCount implements DynamicValue {
|
|||
if (equipment != null) {
|
||||
Permanent permanent = game.getPermanent(equipment.getAttachedTo());
|
||||
if (permanent != null) {
|
||||
count = permanent.getColor().getColorCount();
|
||||
count = permanent.getColor(game).getColorCount();
|
||||
}
|
||||
}
|
||||
return count;
|
||||
|
|
|
@ -195,7 +195,7 @@ class GraveBetrayalContiniousEffect extends ContinuousEffectImpl {
|
|||
break;
|
||||
case ColorChangingEffects_5:
|
||||
if (sublayer == SubLayer.NA) {
|
||||
creature.getColor().setBlack(true);
|
||||
creature.getColor(game).setBlack(true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -97,7 +97,7 @@ class LobberCrewTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getType() == GameEvent.EventType.SPELL_CAST) {
|
||||
Spell spell = game.getStack().getSpell(event.getTargetId());
|
||||
if (spell != null && spell.getColor().isMulticolored() && event.getPlayerId().equals(getControllerId())) {
|
||||
if (spell != null && spell.getColor(game).isMulticolored() && event.getPlayerId().equals(getControllerId())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@ class PyroconvergenceTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
if (event.getType() == GameEvent.EventType.SPELL_CAST) {
|
||||
Spell spell = game.getStack().getSpell(event.getTargetId());
|
||||
if (spell != null && spell.getColor().isMulticolored() && event.getPlayerId().equals(getControllerId())) {
|
||||
if (spell != null && spell.getColor(game).isMulticolored() && event.getPlayerId().equals(getControllerId())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -138,10 +138,10 @@ class TabletOfTheGuildsGainLifeEffect extends OneShotEffect {
|
|||
ObjectColor color1 = new ObjectColor((String) game.getState().getValue(source.getSourceId() + "_color1"));
|
||||
ObjectColor color2 = new ObjectColor((String) game.getState().getValue(source.getSourceId() + "_color2"));
|
||||
int amount = 0;
|
||||
if (spell.getColor().contains(color1)) {
|
||||
if (spell.getColor(game).contains(color1)) {
|
||||
++amount;
|
||||
}
|
||||
if (spell.getColor().contains(color2)) {
|
||||
if (spell.getColor(game).contains(color2)) {
|
||||
++amount;
|
||||
}
|
||||
if (amount > 0) {
|
||||
|
|
|
@ -76,7 +76,7 @@ class AllIsDustEffect extends OneShotEffect {
|
|||
public boolean apply(Game game, Ability source) {
|
||||
List<Permanent> permanents = game.getBattlefield().getActivePermanents(source.getControllerId(), game);
|
||||
for (Permanent p : permanents) {
|
||||
if (!p.getColor().isColorless()) {
|
||||
if (!p.getColor(game).isColorless()) {
|
||||
p.sacrifice(source.getSourceId(), game);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -131,7 +131,7 @@ class CurseOfWizardryPlayerCastsSpellChosenColorTriggeredAbility extends Trigger
|
|||
if (chosenColor != null) {
|
||||
if (event.getType() == GameEvent.EventType.SPELL_CAST) {
|
||||
Spell spell = game.getStack().getSpell(event.getTargetId());
|
||||
if (spell != null && spell.getColor().shares(chosenColor)) {
|
||||
if (spell != null && spell.getColor(game).shares(chosenColor)) {
|
||||
this.getEffects().get(0).setTargetPointer(new FixedTarget(event.getPlayerId()));
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -96,6 +96,6 @@ class EldraziTempleCondition implements Condition {
|
|||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
MageObject object = game.getObject(source.getSourceId());
|
||||
return object != null && object.hasSubtype("Eldrazi") && object.getColor().isColorless();
|
||||
return object != null && object.hasSubtype("Eldrazi") && object.getColor(game).isColorless();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -133,7 +133,7 @@ class ZulaportEnforcerEffect extends RestrictionEffect {
|
|||
|
||||
@Override
|
||||
public boolean canBeBlocked(Permanent attacker, Permanent blocker, Ability source, Game game) {
|
||||
if (blocker.getColor().isBlack()) {
|
||||
if (blocker.getColor(game).isBlack()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -125,11 +125,11 @@ class GrandArchitectEffect extends ContinuousEffectImpl {
|
|||
public boolean apply(Game game, Ability source) {
|
||||
Permanent permanent = game.getPermanent(source.getFirstTarget());
|
||||
if (permanent != null) {
|
||||
permanent.getColor().setRed(false);
|
||||
permanent.getColor().setWhite(false);
|
||||
permanent.getColor().setGreen(false);
|
||||
permanent.getColor().setBlue(true);
|
||||
permanent.getColor().setBlack(false);
|
||||
permanent.getColor(game).setRed(false);
|
||||
permanent.getColor(game).setWhite(false);
|
||||
permanent.getColor(game).setGreen(false);
|
||||
permanent.getColor(game).setBlue(true);
|
||||
permanent.getColor(game).setBlack(false);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -145,7 +145,7 @@ class LiegeOfTheTangleEffect extends ContinuousEffectImpl {
|
|||
break;
|
||||
case ColorChangingEffects_5:
|
||||
if (sublayer == SubLayer.NA) {
|
||||
perm.getColor().setColor(token.getColor());
|
||||
perm.getColor(game).setColor(token.getColor(game));
|
||||
}
|
||||
break;
|
||||
case PTChangingEffects_7:
|
||||
|
|
|
@ -93,7 +93,7 @@ public class QuicksilverGargantuan extends CardImpl {
|
|||
Card card = game.getCard(source.getFirstTarget());
|
||||
Permanent permanent = game.getPermanent(source.getSourceId());
|
||||
permanent.setName(card.getName());
|
||||
permanent.getColor().setColor(card.getColor());
|
||||
permanent.getColor(game).setColor(card.getColor(game));
|
||||
permanent.getManaCost().clear();
|
||||
permanent.getManaCost().add(card.getManaCost());
|
||||
permanent.getCardType().clear();
|
||||
|
|
|
@ -83,7 +83,7 @@ class DarkestHourEffect extends ContinuousEffectImpl {
|
|||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
for (Permanent permanent : game.getBattlefield().getActivePermanents(new FilterCreaturePermanent(), source.getControllerId(), source.getSourceId(), game)) {
|
||||
permanent.getColor().setColor(ObjectColor.BLACK);
|
||||
permanent.getColor(game).setColor(ObjectColor.BLACK);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -90,8 +90,8 @@ class ConsignToDreamEffect extends OneShotEffect {
|
|||
public boolean apply(Game game, Ability source) {
|
||||
Permanent target = game.getPermanent(source.getFirstTarget());
|
||||
if (target != null) {
|
||||
if (target.getColor().contains(ObjectColor.RED)
|
||||
|| target.getColor().contains(ObjectColor.GREEN)) {
|
||||
if (target.getColor(game).contains(ObjectColor.RED)
|
||||
|| target.getColor(game).contains(ObjectColor.GREEN)) {
|
||||
applied = target.moveToZone(Zone.LIBRARY, source.getSourceId(), game, true);
|
||||
} else {
|
||||
applied = target.moveToZone(Zone.HAND, source.getSourceId(), game, false);
|
||||
|
|
|
@ -90,8 +90,8 @@ class GloomlanceEffect extends OneShotEffect {
|
|||
Player targetController = game.getPlayer(targetCreature.getControllerId());
|
||||
targetCreature.destroy(source.getSourceId(), game, false);
|
||||
Permanent destroyedCreature = game.getPermanentOrLKIBattlefield(source.getFirstTarget());
|
||||
if (destroyedCreature.getColor().isGreen()
|
||||
|| destroyedCreature.getColor().isWhite()) {
|
||||
if (destroyedCreature.getColor(game).isGreen()
|
||||
|| destroyedCreature.getColor(game).isWhite()) {
|
||||
targetController.discard(1, false, source, game);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -101,8 +101,8 @@ class GloomwidowsFeastEffect extends OneShotEffect {
|
|||
if (targetCreature != null) {
|
||||
targetCreature.destroy(source.getSourceId(), game, false);
|
||||
Permanent destroyedCreature = game.getPermanentOrLKIBattlefield(source.getFirstTarget());
|
||||
if (destroyedCreature.getColor().isBlue()
|
||||
|| destroyedCreature.getColor().isBlack()) {
|
||||
if (destroyedCreature.getColor(game).isBlue()
|
||||
|| destroyedCreature.getColor(game).isBlack()) {
|
||||
SpiderToken token = new SpiderToken();
|
||||
token.putOntoBattlefield(1, game, source.getSourceId(), source.getControllerId());
|
||||
return true;
|
||||
|
|
|
@ -122,7 +122,7 @@ class TargetTwoCardsWithTheSameColorInHand extends TargetCardInHand {
|
|||
Card chosenCard = cardsToCheck.get(entry.getKey(), game);
|
||||
if (chosenCard != null) {
|
||||
for (UUID cardToCheck : cardsToCheck) {
|
||||
if (!cardToCheck.equals(chosenCard.getId()) && chosenCard.getColor().equals(game.getCard(cardToCheck).getColor())) {
|
||||
if (!cardToCheck.equals(chosenCard.getId()) && chosenCard.getColor(game).equals(game.getCard(cardToCheck).getColor(game))) {
|
||||
newPossibleTargets.add(cardToCheck);
|
||||
}
|
||||
}
|
||||
|
@ -131,7 +131,7 @@ class TargetTwoCardsWithTheSameColorInHand extends TargetCardInHand {
|
|||
} else {
|
||||
for (UUID cardToCheck : cardsToCheck) {
|
||||
FilterCard colorFilter = new FilterCard();
|
||||
colorFilter.add(new ColorPredicate(game.getCard(cardToCheck).getColor()));
|
||||
colorFilter.add(new ColorPredicate(game.getCard(cardToCheck).getColor(game)));
|
||||
if (cardsToCheck.count(colorFilter, game) > 1) {
|
||||
newPossibleTargets.add(cardToCheck);
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ class TargetTwoCardsWithTheSameColorInHand extends TargetCardInHand {
|
|||
int possibleCards = 0;
|
||||
for (UUID cardToCheck : cardsToCheck) {
|
||||
FilterCard colorFilter = new FilterCard();
|
||||
colorFilter.add(new ColorPredicate(game.getCard(cardToCheck).getColor()));
|
||||
colorFilter.add(new ColorPredicate(game.getCard(cardToCheck).getColor(game)));
|
||||
if (cardsToCheck.count(colorFilter, game) > 1) {
|
||||
++possibleCards;
|
||||
}
|
||||
|
@ -165,12 +165,12 @@ class TargetTwoCardsWithTheSameColorInHand extends TargetCardInHand {
|
|||
if (card != null) {
|
||||
if (targets.size() == 1) {
|
||||
Card card2 = game.getCard(targets.entrySet().iterator().next().getKey());
|
||||
if (card2 != null && card2.getColor().equals(card.getColor())) {
|
||||
if (card2 != null && card2.getColor(game).equals(card.getColor(game))) {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
FilterCard colorFilter = new FilterCard();
|
||||
colorFilter.add(new ColorPredicate(card.getColor()));
|
||||
colorFilter.add(new ColorPredicate(card.getColor(game)));
|
||||
Player player = game.getPlayer(card.getOwnerId());
|
||||
if (player.getHand().getCards(colorFilter, game).size() > 1) {
|
||||
return true;
|
||||
|
|
|
@ -96,8 +96,8 @@ class InquisitorsSnareEffect extends OneShotEffect {
|
|||
FilterCreaturePermanent filter = new FilterCreaturePermanent();
|
||||
filter.add(new PermanentIdPredicate(targetCreature.getId()));
|
||||
game.addEffect(new PreventAllDamageByAllEffect(filter, Duration.EndOfTurn, false), source);
|
||||
if (targetCreature.getColor().contains(ObjectColor.BLACK)
|
||||
|| targetCreature.getColor().contains(ObjectColor.RED)) {
|
||||
if (targetCreature.getColor(game).contains(ObjectColor.BLACK)
|
||||
|| targetCreature.getColor(game).contains(ObjectColor.RED)) {
|
||||
return targetCreature.destroy(source.getSourceId(), game, false);
|
||||
}
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue