moved some target choices to CardImpl, they should be properly copiable now

This commit is contained in:
Evan Kranzler 2017-09-19 12:43:52 -04:00
parent 96a3f40891
commit e2a1fa50ea
15 changed files with 163 additions and 120 deletions

View file

@ -72,14 +72,14 @@ public class AlexiZephyrMage extends CardImpl {
this.addAbility(ability);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability.getTargetAdjustment() == TargetAdjustment.X_TARGETS) {
FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter();
ability.getTargets().clear();
ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter2));
}
}
// @Override
// public void adjustTargets(Ability ability, Game game) {
// if (ability.getTargetAdjustment() == TargetAdjustment.X_TARGETS) {
// FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter();
// ability.getTargets().clear();
// ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter2));
// }
// }
public AlexiZephyrMage(final AlexiZephyrMage card) {
super(card);

View file

@ -65,14 +65,14 @@ public class CandelabraOfTawnos extends CardImpl {
this.addAbility(ability);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability.getTargetAdjustment() == TargetAdjustment.X_TARGETS) {
FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter();
ability.getTargets().clear();
ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter2));
}
}
// @Override
// public void adjustTargets(Ability ability, Game game) {
// if (ability.getTargetAdjustment() == TargetAdjustment.X_TARGETS) {
// FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter();
// ability.getTargets().clear();
// ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter2));
// }
// }
public CandelabraOfTawnos(final CandelabraOfTawnos card) {
super(card);

View file

@ -37,6 +37,7 @@ import mage.abilities.effects.common.NameACardEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.TargetAdjustment;
import mage.constants.Zone;
import mage.filter.FilterSpell;
import mage.filter.predicate.mageobject.NamePredicate;
@ -49,11 +50,10 @@ import mage.target.TargetSpell;
*/
public class DeclarationOfNaught extends CardImpl {
private final UUID originalId;
static final private FilterSpell filter = new FilterSpell("spell with the chosen name");
public DeclarationOfNaught(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{U}{U}");
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{U}{U}");
// As Declaration of Naught enters the battlefield, name a card.
this.addAbility(new AsEntersBattlefieldAbility(new NameACardEffect(NameACardEffect.TypeOfName.ALL)));
@ -61,15 +61,15 @@ public class DeclarationOfNaught extends CardImpl {
//TODO: Make ability properly copiable
// {U}: Counter target spell with the chosen name.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new ManaCostsImpl("{U}"));
ability.setTargetAdjustment(TargetAdjustment.CHOSEN_NAME);
ability.addTarget(new TargetSpell(filter));
originalId = ability.getOriginalId();
this.addAbility(ability);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability.getOriginalId().equals(originalId)) {
if (ability.getTargetAdjustment() == TargetAdjustment.CHOSEN_NAME) {
ability.getTargets().clear();
FilterSpell filter2 = new FilterSpell("spell with the chosen name");
filter2.add(new NamePredicate((String) game.getState().getValue(ability.getSourceId().toString() + NameACardEffect.INFO_KEY)));
@ -80,7 +80,6 @@ public class DeclarationOfNaught extends CardImpl {
public DeclarationOfNaught(final DeclarationOfNaught card) {
super(card);
this.originalId = card.originalId;
}
@Override

View file

@ -74,16 +74,16 @@ public class DeepfireElemental extends CardImpl {
this.addAbility(ability);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability.getTargetAdjustment() == TargetAdjustment.X_CMC_EQUAL_PERM) {
int xValue = ability.getManaCostsToPay().getX();
FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter().copy();
filter2.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue));
ability.getTargets().clear();
ability.getTargets().add(new TargetPermanent(filter2));
}
}
// @Override
// public void adjustTargets(Ability ability, Game game) {
// if (ability.getTargetAdjustment() == TargetAdjustment.X_CMC_EQUAL_PERM) {
// int xValue = ability.getManaCostsToPay().getX();
// FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter().copy();
// filter2.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue));
// ability.getTargets().clear();
// ability.getTargets().add(new TargetPermanent(filter2));
// }
// }
public DeepfireElemental(final DeepfireElemental card) {
super(card);

View file

@ -63,14 +63,14 @@ public class FloodwaterDam extends CardImpl {
this.addAbility(ability);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability.getTargetAdjustment() == TargetAdjustment.X_TARGETS) {
FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter();
ability.getTargets().clear();
ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter2));
}
}
// @Override
// public void adjustTargets(Ability ability, Game game) {
// if (ability.getTargetAdjustment() == TargetAdjustment.X_TARGETS) {
// FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter();
// ability.getTargets().clear();
// ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter2));
// }
// }
public FloodwaterDam(final FloodwaterDam card) {
super(card);

View file

@ -75,19 +75,19 @@ public class GorillaShaman extends CardImpl {
this.addAbility(ability);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability.getTargetAdjustment() == TargetAdjustment.X_CMC_EQUAL_PERM) {
int xValue = ability.getManaCostsToPay().getX();
TargetPermanent oldTarget = (TargetPermanent) ability.getTargets().get(0);
int minTargets = oldTarget.getMinNumberOfTargets();
int maxTargets = oldTarget.getMaxNumberOfTargets();
FilterPermanent filter2 = oldTarget.getFilter().copy();
filter2.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue));
ability.getTargets().clear();
ability.getTargets().add(new TargetPermanent(minTargets, maxTargets, filter2, false));
}
}
// @Override
// public void adjustTargets(Ability ability, Game game) {
// if (ability.getTargetAdjustment() == TargetAdjustment.X_CMC_EQUAL_PERM) {
// int xValue = ability.getManaCostsToPay().getX();
// TargetPermanent oldTarget = (TargetPermanent) ability.getTargets().get(0);
// int minTargets = oldTarget.getMinNumberOfTargets();
// int maxTargets = oldTarget.getMaxNumberOfTargets();
// FilterPermanent filter2 = oldTarget.getFilter().copy();
// filter2.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue));
// ability.getTargets().clear();
// ability.getTargets().add(new TargetPermanent(minTargets, maxTargets, filter2, false));
// }
// }
public GorillaShaman(final GorillaShaman card) {
super(card);

View file

@ -74,16 +74,16 @@ public class HearthKami extends CardImpl {
this.addAbility(ability);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability.getTargetAdjustment() == TargetAdjustment.X_CMC_EQUAL_PERM) {
int xValue = ability.getManaCostsToPay().getX();
FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter().copy();
filter2.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue));
ability.getTargets().clear();
ability.getTargets().add(new TargetPermanent(filter2));
}
}
// @Override
// public void adjustTargets(Ability ability, Game game) {
// if (ability.getTargetAdjustment() == TargetAdjustment.X_CMC_EQUAL_PERM) {
// int xValue = ability.getManaCostsToPay().getX();
// FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter().copy();
// filter2.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue));
// ability.getTargets().clear();
// ability.getTargets().add(new TargetPermanent(filter2));
// }
// }
public HearthKami(final HearthKami card) {
super(card);

View file

@ -97,16 +97,16 @@ public class LinessaZephyrMage extends CardImpl {
super(card);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability.getTargetAdjustment() == TargetAdjustment.X_CMC_EQUAL_PERM) {
int xValue = ability.getManaCostsToPay().getX();
FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter().copy();
filter2.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue));
ability.getTargets().clear();
ability.getTargets().add(new TargetPermanent(filter2));
}
}
// @Override
// public void adjustTargets(Ability ability, Game game) {
// if (ability.getTargetAdjustment() == TargetAdjustment.X_CMC_EQUAL_PERM) {
// int xValue = ability.getManaCostsToPay().getX();
// FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter().copy();
// filter2.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue));
// ability.getTargets().clear();
// ability.getTargets().add(new TargetPermanent(filter2));
// }
// }
@Override
public LinessaZephyrMage copy() {

View file

@ -71,14 +71,14 @@ public class MagusOfTheCandelabra extends CardImpl {
this.addAbility(ability);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability.getTargetAdjustment() == TargetAdjustment.X_TARGETS) {
FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter();
ability.getTargets().clear();
ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter2));
}
}
// @Override
// public void adjustTargets(Ability ability, Game game) {
// if (ability.getTargetAdjustment() == TargetAdjustment.X_TARGETS) {
// FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter();
// ability.getTargets().clear();
// ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter2));
// }
// }
public MagusOfTheCandelabra(final MagusOfTheCandelabra card) {
super(card);

View file

@ -79,19 +79,19 @@ public class MinamoSightbender extends CardImpl {
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability.getTargetAdjustment() == TargetAdjustment.X_POWER_LEQ) {
int xValue = ability.getManaCostsToPay().getX();
TargetPermanent oldTarget = (TargetPermanent) ability.getTargets().get(0);
int minTargets = oldTarget.getMinNumberOfTargets();
int maxTargets = oldTarget.getMaxNumberOfTargets();
FilterPermanent filter2 = oldTarget.getFilter().copy();
filter2.add(new PowerPredicate(ComparisonType.FEWER_THAN, xValue + 1));
ability.getTargets().clear();
ability.getTargets().add(new TargetPermanent(minTargets, maxTargets, filter2, false));
}
}
// @Override
// public void adjustTargets(Ability ability, Game game) {
// if (ability.getTargetAdjustment() == TargetAdjustment.X_POWER_LEQ) {
// int xValue = ability.getManaCostsToPay().getX();
// TargetPermanent oldTarget = (TargetPermanent) ability.getTargets().get(0);
// int minTargets = oldTarget.getMinNumberOfTargets();
// int maxTargets = oldTarget.getMaxNumberOfTargets();
// FilterPermanent filter2 = oldTarget.getFilter().copy();
// filter2.add(new PowerPredicate(ComparisonType.FEWER_THAN, xValue + 1));
// ability.getTargets().clear();
// ability.getTargets().add(new TargetPermanent(minTargets, maxTargets, filter2, false));
// }
// }
public MinamoSightbender(final MinamoSightbender card) {
super(card);

View file

@ -63,14 +63,14 @@ public class MishrasHelix extends CardImpl {
this.addAbility(ability);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability.getTargetAdjustment() == TargetAdjustment.X_TARGETS) {
FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter();
ability.getTargets().clear();
ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter2));
}
}
// @Override
// public void adjustTargets(Ability ability, Game game) {
// if (ability.getTargetAdjustment() == TargetAdjustment.X_TARGETS) {
// FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter();
// ability.getTargets().clear();
// ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter2));
// }
// }
public MishrasHelix(final MishrasHelix card) {
super(card);

View file

@ -76,16 +76,16 @@ public class Plaguebearer extends CardImpl {
this.addAbility(ability);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability.getTargetAdjustment() == TargetAdjustment.X_CMC_EQUAL_PERM) {
int xValue = ability.getManaCostsToPay().getX();
FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter().copy();
filter2.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue));
ability.getTargets().clear();
ability.getTargets().add(new TargetPermanent(filter2));
}
}
// @Override
// public void adjustTargets(Ability ability, Game game) {
// if (ability.getTargetAdjustment() == TargetAdjustment.X_CMC_EQUAL_PERM) {
// int xValue = ability.getManaCostsToPay().getX();
// FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter().copy();
// filter2.add(new ConvertedManaCostPredicate(ComparisonType.EQUAL_TO, xValue));
// ability.getTargets().clear();
// ability.getTargets().add(new TargetPermanent(filter2));
// }
// }
public Plaguebearer(final Plaguebearer card) {
super(card);

View file

@ -88,14 +88,14 @@ public class SynodArtificer extends CardImpl {
this.addAbility(untapAbility);
}
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability.getTargetAdjustment() == TargetAdjustment.X_TARGETS) {
FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter();
ability.getTargets().clear();
ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter2));
}
}
// @Override
// public void adjustTargets(Ability ability, Game game) {
// if (ability.getTargetAdjustment() == TargetAdjustment.X_TARGETS) {
// FilterPermanent filter2 = ((TargetPermanent) ability.getTargets().get(0)).getFilter();
// ability.getTargets().clear();
// ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter2));
// }
// }
public SynodArtificer(final SynodArtificer card) {
super(card);