- Fixed targeting issue with copySpellontoStack (part 2).

This commit is contained in:
Sloth
2012-02-02 17:53:13 +00:00
parent fc9209b51f
commit f3ab0d6870
17 changed files with 91 additions and 90 deletions

View File

@@ -99,6 +99,8 @@ public class AbilityFactory {
* <p>
* setHostCard.
* </p>
* @param host
* a Card object.
*
*/
public final void setHostCard(Card host) {

View File

@@ -211,7 +211,7 @@ public class AbilityFactoryCounters {
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -682,7 +682,7 @@ public class AbilityFactoryCounters {
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -859,7 +859,7 @@ public class AbilityFactoryCounters {
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -1054,7 +1054,7 @@ public class AbilityFactoryCounters {
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -2133,7 +2133,7 @@ public class AbilityFactoryCounters {
}
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -2241,7 +2241,7 @@ public class AbilityFactoryCounters {
final boolean mandatory) {
final HashMap<String, String> params = af.getMapParams();
final Card host = af.getHostCard();
final Target abTgt = af.getAbTgt();
final Target abTgt = sa.getTarget();
final String type = params.get("CounterType");
final String amountStr = params.get("CounterNum");
final int amount = AbilityFactory.calculateAmount(af.getHostCard(), amountStr, sa);
@@ -2353,7 +2353,7 @@ public class AbilityFactoryCounters {
}
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {

View File

@@ -458,8 +458,8 @@ public class AbilityFactoryDealDamage {
*/
private Card dealDamageChooseTgtC(final SpellAbility saMe, final int d, final boolean noPrevention,
final Player pl, final boolean mandatory) {
final Target tgt = this.abilityFactory.getAbTgt();
final Card source = this.abilityFactory.getHostCard();
final Target tgt = saMe.getTarget();
final Card source = saMe.getSourceCard();
final HashMap<String, String> params = this.abilityFactory.getMapParams();
CardList hPlay = pl.getCardsIn(Zone.Battlefield);
hPlay = hPlay.getValidCards(tgt.getValidTgts(), AllZone.getComputerPlayer(), source);
@@ -522,7 +522,7 @@ public class AbilityFactoryDealDamage {
* @return a boolean.
*/
private boolean damageTargetAI(final SpellAbility saMe, final int dmg) {
final Target tgt = this.abilityFactory.getAbTgt();
final Target tgt = saMe.getTarget();
if (tgt == null) {
return this.damageChooseNontargeted(saMe, dmg);
@@ -791,7 +791,7 @@ public class AbilityFactoryDealDamage {
tgts = saMe.getTarget().getTargets();
}
final boolean targeted = (this.abilityFactory.getAbTgt() != null);
final boolean targeted = (saMe.getTarget() != null);
if (params.containsKey("Radiance") && targeted) {
Card origin = null;
@@ -1031,7 +1031,7 @@ public class AbilityFactoryDealDamage {
final CardList humanList = this.getKillableCreatures(af, sa, AllZone.getHumanPlayer(), dmg);
CardList computerList = this.getKillableCreatures(af, sa, AllZone.getComputerPlayer(), dmg);
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgt.resetTargets();
sa.getTarget().addTarget(AllZone.getHumanPlayer());
@@ -1218,7 +1218,7 @@ public class AbilityFactoryDealDamage {
final int dmg = this.getNumDamage(sa);
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
Player targetPlayer = null;
if (tgt != null) {
targetPlayer = tgt.getTargetPlayers().get(0);
@@ -1395,7 +1395,7 @@ public class AbilityFactoryDealDamage {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -1473,7 +1473,7 @@ public class AbilityFactoryDealDamage {
tgts = sa.getTarget().getTargets();
}
final boolean targeted = (this.abilityFactory.getAbTgt() != null);
final boolean targeted = (sa.getTarget() != null);
for (final Object o : tgts) {
for (final Card source : sources) {

View File

@@ -203,7 +203,7 @@ public final class AbilityFactoryDebuff {
final StringBuilder sb = new StringBuilder();
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -303,7 +303,7 @@ public final class AbilityFactoryDebuff {
return false;
}
if ((af.getAbTgt() == null) || !af.getAbTgt().doesTarget()) {
if ((sa.getTarget() == null) || !sa.getTarget().doesTarget()) {
final ArrayList<Card> cards = AbilityFactory.getDefinedCards(sa.getSourceCard(), params.get("Defined"), sa);
if (cards.size() == 0) {
return false;
@@ -328,7 +328,7 @@ public final class AbilityFactoryDebuff {
*/
private static boolean debuffDrawbackAI(final AbilityFactory af, final SpellAbility sa) {
final HashMap<String, String> params = af.getMapParams();
if ((af.getAbTgt() == null) || !af.getAbTgt().doesTarget()) {
if ((sa.getTarget() == null) || !sa.getTarget().doesTarget()) {
// TODO - copied from AF_Pump.pumpDrawbackAI() - what should be
// here?
} else {
@@ -360,7 +360,7 @@ public final class AbilityFactoryDebuff {
return false;
}
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
tgt.resetTargets();
CardList list = AbilityFactoryDebuff.getCurseCreatures(af, sa, kws);
list = list.getValidCards(tgt.getValidTgts(), sa.getActivatingPlayer(), sa.getSourceCard());
@@ -559,7 +559,7 @@ public final class AbilityFactoryDebuff {
final ArrayList<String> kws = AbilityFactoryDebuff.getKeywords(params);
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {

View File

@@ -438,7 +438,7 @@ public class AbilityFactoryDestroy {
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -525,7 +525,7 @@ public class AbilityFactoryDestroy {
ArrayList<Card> tgtCards;
final ArrayList<Card> untargetedCards = new ArrayList<Card>();
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -724,7 +724,7 @@ public class AbilityFactoryDestroy {
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -862,7 +862,7 @@ public class AbilityFactoryDestroy {
final Card card = sa.getSourceCard();
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
Player targetPlayer = null;
if (tgt != null) {
targetPlayer = tgt.getTargetPlayers().get(0);

View File

@@ -239,7 +239,7 @@ public class AbilityFactoryGainControl {
ArrayList<Card> tgtCards;
final Target tgt = this.af.getAbTgt();
final Target tgt = sa.getTarget();
if ((tgt != null) && !this.params.containsKey("Defined")) {
tgtCards = tgt.getTargetCards();
} else {
@@ -290,7 +290,7 @@ public class AbilityFactoryGainControl {
boolean hasEnchantment = false;
boolean hasLand = false;
final Target tgt = this.af.getAbTgt();
final Target tgt = sa.getTarget();
// if Defined, then don't worry about targeting
if (tgt == null) {
@@ -389,7 +389,7 @@ public class AbilityFactoryGainControl {
ArrayList<Card> tgtCards;
final boolean self = this.params.containsKey("Defined") && this.params.get("Defined").equals("Self");
final Target tgt = this.af.getAbTgt();
final Target tgt = sa.getTarget();
if ((tgt != null) && !this.params.containsKey("Defined")) {
tgtCards = tgt.getTargetCards();
} else {
@@ -514,7 +514,7 @@ public class AbilityFactoryGainControl {
* @return a boolean.
*/
private boolean gainControlDrawbackAI(final SpellAbility sa) {
if ((this.af.getAbTgt() == null) || !this.af.getAbTgt().doesTarget()) {
if ((sa.getTarget() == null) || !sa.getTarget().doesTarget()) {
// all is good
} else {
return this.gainControlTgtAI(sa);

View File

@@ -287,7 +287,7 @@ public class AbilityFactoryMana {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -578,7 +578,7 @@ public class AbilityFactoryMana {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = abMana.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -1022,7 +1022,7 @@ public class AbilityFactoryMana {
}
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -1062,7 +1062,7 @@ public class AbilityFactoryMana {
// AI cannot use this properly until he can use SAs during Humans turn
final HashMap<String, String> params = af.getMapParams();
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
final Card source = sa.getSourceCard();
final Random r = MyRandom.getRandom();
@@ -1146,7 +1146,7 @@ public class AbilityFactoryMana {
private static boolean drainManaPlayDrawbackAI(final AbilityFactory af, final SpellAbility sa) {
// AI cannot use this properly until he can use SAs during Humans turn
final HashMap<String, String> params = af.getMapParams();
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
final Card source = sa.getSourceCard();
boolean randomReturn = true;
@@ -1185,7 +1185,7 @@ public class AbilityFactoryMana {
final Card card = sa.getSourceCard();
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {

View File

@@ -2028,7 +2028,7 @@ public class AbilityFactoryPermanentState {
final Card card = sa.getSourceCard();
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {

View File

@@ -268,7 +268,7 @@ public class AbilityFactoryPreventDamage {
return false;
}
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt == null) {
// As far as I can tell these Defined Cards will only have one of
// them
@@ -498,7 +498,7 @@ public class AbilityFactoryPreventDamage {
}
}
final boolean targeted = (af.getAbTgt() != null);
final boolean targeted = (sa.getTarget() != null);
for (final Object o : tgts) {
if (o instanceof Card) {

View File

@@ -274,7 +274,7 @@ public final class AbilityFactoryProtection {
final HashMap<String, String> params = af.getMapParams();
final Card hostCard = af.getHostCard();
// if there is no target and host card isn't in play, don't activate
if ((af.getAbTgt() == null) && !AllZoneUtil.isCardInPlay(hostCard)) {
if ((sa.getTarget() == null) && !AllZoneUtil.isCardInPlay(hostCard)) {
return false;
}
@@ -310,7 +310,7 @@ public final class AbilityFactoryProtection {
return false;
}
if ((af.getAbTgt() == null) || !af.getAbTgt().doesTarget()) {
if ((sa.getTarget() == null) || !sa.getTarget().doesTarget()) {
final ArrayList<Card> cards = AbilityFactory.getDefinedCards(sa.getSourceCard(), params.get("Defined"), sa);
if (cards.size() == 0) {
@@ -351,7 +351,7 @@ public final class AbilityFactoryProtection {
final Card source = sa.getSourceCard();
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
tgt.resetTargets();
CardList list = AbilityFactoryProtection.getProtectCreatures(af, sa);
@@ -566,7 +566,7 @@ public final class AbilityFactoryProtection {
private static boolean protectDrawbackAI(final AbilityFactory af, final SpellAbility sa) {
final Card host = af.getHostCard();
if ((af.getAbTgt() == null) || !af.getAbTgt().doesTarget()) {
if ((sa.getTarget() == null) || !sa.getTarget().doesTarget()) {
if (host.isCreature()) {
// TODO
}
@@ -599,7 +599,7 @@ public final class AbilityFactoryProtection {
final StringBuilder sb = new StringBuilder();
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -713,7 +713,7 @@ public final class AbilityFactoryProtection {
ArrayList<Card> tgtCards;
final ArrayList<Card> untargetedCards = new ArrayList<Card>();
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -951,7 +951,7 @@ public final class AbilityFactoryProtection {
private static boolean protectAllCanPlayAI(final AbilityFactory af, final SpellAbility sa) {
final Card hostCard = af.getHostCard();
// if there is no target and host card isn't in play, don't activate
if ((af.getAbTgt() == null) && !AllZoneUtil.isCardInPlay(hostCard)) {
if ((sa.getTarget() == null) && !AllZoneUtil.isCardInPlay(hostCard)) {
return false;
}
@@ -1031,7 +1031,7 @@ public final class AbilityFactoryProtection {
final StringBuilder sb = new StringBuilder();
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {

View File

@@ -568,7 +568,7 @@ public class AbilityFactoryPump {
return false;
}
final Target tgt = this.abilityFactory.getAbTgt();
final Target tgt = sa.getTarget();
tgt.resetTargets();
CardList list;
if (this.abilityFactory.isCurse()) {
@@ -839,7 +839,7 @@ public class AbilityFactoryPump {
final String name = af.getHostCard().getName();
ArrayList<Card> tgtCards;
final Target tgt = this.abilityFactory.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -915,7 +915,7 @@ public class AbilityFactoryPump {
private void pumpResolve(final SpellAbility sa) {
ArrayList<Card> tgtCards;
final ArrayList<Card> untargetedCards = new ArrayList<Card>();
final Target tgt = this.abilityFactory.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -1203,12 +1203,11 @@ public class AbilityFactoryPump {
* a {@link forge.card.spellability.SpellAbility} object.
*/
private void pumpAllResolve(final SpellAbility sa) {
final AbilityFactory af = sa.getAbilityFactory();
CardList list;
ArrayList<Player> tgtPlayers = null;
final ArrayList<Zone> affectedZones = new ArrayList<Zone>();
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else if (this.params.containsKey("Defined")) {

View File

@@ -185,7 +185,7 @@ public class AbilityFactoryRegenerate {
final Card host = af.getHostCard();
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -460,7 +460,7 @@ public class AbilityFactoryRegenerate {
final HashMap<String, String> params = af.getMapParams();
ArrayList<Card> tgtCards;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {

View File

@@ -196,7 +196,7 @@ public final class AbilityFactoryReveal {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -361,7 +361,7 @@ public final class AbilityFactoryReveal {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -779,7 +779,7 @@ public final class AbilityFactoryReveal {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -938,7 +938,7 @@ public final class AbilityFactoryReveal {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -1146,7 +1146,7 @@ public final class AbilityFactoryReveal {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -1245,7 +1245,7 @@ public final class AbilityFactoryReveal {
*/
private static boolean revealHandTargetAI(final AbilityFactory af, final SpellAbility sa, final boolean primarySA,
final boolean mandatory) {
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
final int humanHandSize = AllZone.getHumanPlayer().getCardsIn(Zone.Hand).size();
@@ -1314,7 +1314,7 @@ public final class AbilityFactoryReveal {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -1478,7 +1478,7 @@ public final class AbilityFactoryReveal {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -1504,7 +1504,7 @@ public final class AbilityFactoryReveal {
* @return a boolean.
*/
private static boolean scryTargetAI(final AbilityFactory af, final SpellAbility sa) {
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) { // It doesn't appear that Scry ever targets
// ability is targeted
@@ -1558,7 +1558,7 @@ public final class AbilityFactoryReveal {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -1756,7 +1756,7 @@ public final class AbilityFactoryReveal {
ArrayList<Player> tgtPlayers;
boolean shuffle = false;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if ((tgt != null) && !params.containsKey("Defined")) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -1813,7 +1813,7 @@ public final class AbilityFactoryReveal {
private static boolean rearrangeTopOfLibraryTrigger(final AbilityFactory af, final SpellAbility sa,
final boolean mandatory) {
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
// ability is targeted
@@ -1855,7 +1855,7 @@ public final class AbilityFactoryReveal {
boolean shuffle = false;
if (sa.getActivatingPlayer().isHuman()) {
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if ((tgt != null) && !params.containsKey("Defined")) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -2066,7 +2066,7 @@ public final class AbilityFactoryReveal {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -2200,7 +2200,7 @@ public final class AbilityFactoryReveal {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {

View File

@@ -182,7 +182,7 @@ public class AbilityFactorySacrifice {
sb.append(conditionDesc).append(" ");
}
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
ArrayList<Player> tgts;
if (tgt != null) {
tgts = tgt.getTargetPlayers();
@@ -248,7 +248,7 @@ public class AbilityFactorySacrifice {
// Some additional checks based on what is being sacrificed, and who is
// sacrificing
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
final String valid = params.get("SacValid");
String num = params.get("Amount");
@@ -363,7 +363,7 @@ public class AbilityFactorySacrifice {
final HashMap<String, String> params = af.getMapParams();
final Card card = sa.getSourceCard();
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgt.resetTargets();
@@ -427,7 +427,7 @@ public class AbilityFactorySacrifice {
final String num = params.containsKey("Amount") ? params.get("Amount") : "1";
final int amount = AbilityFactory.calculateAmount(card, num, sa);
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
ArrayList<Player> tgts;
if (tgt != null) {
tgts = tgt.getTargetPlayers();

View File

@@ -160,7 +160,7 @@ public class AbilityFactorySetState {
ArrayList<Card> tgtCards;
final Target tgt = abilityFactory.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtCards = tgt.getTargetCards();
} else {
@@ -206,8 +206,8 @@ public class AbilityFactorySetState {
ArrayList<Card> tgtCards;
if (abilityFactory.getAbTgt() != null) {
tgtCards = abilityFactory.getAbTgt().getTargetCards();
if (sa.getTarget() != null) {
tgtCards = sa.getTarget().getTargetCards();
} else {
tgtCards = AbilityFactory.getDefinedCards(abilityFactory.getHostCard(),
abilityFactory.getMapParams().get("Defined"), sa);
@@ -216,7 +216,7 @@ public class AbilityFactorySetState {
final boolean remChanged = abilityFactory.getMapParams().containsKey("RememberChanged");
for (final Card tgt : tgtCards) {
if (abilityFactory.getAbTgt() != null) {
if (sa.getTarget() != null) {
if (!tgt.canBeTargetedBy(sa)) {
continue;
}
@@ -383,7 +383,7 @@ public class AbilityFactorySetState {
final Card card = sa.getSourceCard();
final Target tgt = abilityFactory.getAbTgt();
final Target tgt = sa.getTarget();
Player targetPlayer = null;
if (tgt != null) {
targetPlayer = tgt.getTargetPlayers().get(0);

View File

@@ -173,7 +173,7 @@ public class AbilityFactoryTurns {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -271,7 +271,7 @@ public class AbilityFactoryTurns {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {

View File

@@ -198,7 +198,7 @@ public class AbilityFactoryZoneAffecting {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (!params.containsKey("Defined") && tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -344,7 +344,7 @@ public class AbilityFactoryZoneAffecting {
*/
private static boolean drawTargetAI(final AbilityFactory af, final SpellAbility sa, final boolean primarySA,
final boolean mandatory) {
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
final HashMap<String, String> params = af.getMapParams();
final Card source = sa.getSourceCard();
@@ -526,7 +526,7 @@ public class AbilityFactoryZoneAffecting {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (!params.containsKey("Defined") && tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -709,7 +709,7 @@ public class AbilityFactoryZoneAffecting {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -854,7 +854,7 @@ public class AbilityFactoryZoneAffecting {
* @return a boolean.
*/
private static boolean millTargetAI(final AbilityFactory af, final SpellAbility sa, final boolean mandatory) {
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
final HashMap<String, String> params = af.getMapParams();
if (tgt != null) {
@@ -967,7 +967,7 @@ public class AbilityFactoryZoneAffecting {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -1147,7 +1147,7 @@ public class AbilityFactoryZoneAffecting {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -1322,7 +1322,7 @@ public class AbilityFactoryZoneAffecting {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -1521,7 +1521,7 @@ public class AbilityFactoryZoneAffecting {
* @return a boolean.
*/
private static boolean discardTargetAI(final AbilityFactory af, final SpellAbility sa) {
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (AllZone.getHumanPlayer().getCardsIn(Constant.Zone.Hand).size() < 1) {
return false;
}
@@ -1569,7 +1569,7 @@ public class AbilityFactoryZoneAffecting {
*/
private static boolean discardTriggerNoCost(final AbilityFactory af, final SpellAbility sa, final boolean mandatory) {
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
if (!AbilityFactoryZoneAffecting.discardTargetAI(af, sa)) {
if (mandatory && AllZone.getComputerPlayer().canBeTargetedBy(sa)) {
@@ -1743,7 +1743,7 @@ public class AbilityFactoryZoneAffecting {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {
@@ -1876,7 +1876,7 @@ public class AbilityFactoryZoneAffecting {
ArrayList<Player> tgtPlayers;
final Target tgt = af.getAbTgt();
final Target tgt = sa.getTarget();
if (tgt != null) {
tgtPlayers = tgt.getTargetPlayers();
} else {