fixed issue with TargetedPlayerCtrl in filterListByType

This commit is contained in:
ArsenalNut
2012-07-07 14:30:10 +00:00
parent 6c35407e08
commit 92b1d34e28
2 changed files with 35 additions and 36 deletions

View File

@@ -3,8 +3,7 @@ ManaCost:4 R
Types:Instant
Text:no text
A:SP$ DealDamage | Cost$ 4 R | ValidTgts$ Player | NumDmg$ 4 | SubAbility$ DmgAll | SpellDescription$ CARDNAME deals 4 damage to target player and 1 damage to each creature that player controls.
#SVar:DmgAll:DB$ DamageAll | Cost$ 0 | NumDmg$ 1 | ValidCards$ Creature.TargetedPlayerCtrl
SVar:DmgAll:DB$ DamageAll | Cost$ 0 | NumDmg$ 1 | ValidCards$ Creature | ValidPlayers$ Targeted
SVar:DmgAll:DB$ DamageAll | Cost$ 0 | NumDmg$ 1 | ValidCards$ Creature.TargetedPlayerCtrl
SVar:RemAIDeck:True
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/chandras_fury.jpg

View File

@@ -2605,46 +2605,46 @@ public class AbilityFactory {
type = type.replace("Triggered", "Card");
}
} else if (type.contains("Targeted")) {
source = null;
final SpellAbility parent = AbilityFactory.findParentsTargetedCard(sa);
if (parent != null) {
if (parent.getTarget() != null) {
if (!parent.getTarget().getTargetCards().isEmpty()) {
source = parent.getTarget().getTargetCards().get(0);
} else if (!parent.getTarget().getTargetSAs().isEmpty()) {
source = parent.getTarget().getTargetSAs().get(0).getSourceCard();
}
} else if (type.startsWith("Targeted")) {
source = null;
final SpellAbility parent = AbilityFactory.findParentsTargetedCard(sa);
if (parent != null) {
if (parent.getTarget() != null) {
if (!parent.getTarget().getTargetCards().isEmpty()) {
source = parent.getTarget().getTargetCards().get(0);
} else if (!parent.getTarget().getTargetSAs().isEmpty()) {
source = parent.getTarget().getTargetSAs().get(0).getSourceCard();
}
}
if (source == null) {
return new CardList();
}
}
if (source == null) {
return new CardList();
}
if (type.startsWith("TargetedCard")) {
type = type.replace("TargetedCard", "Card");
} else {
type = type.replace("Targeted", "Card");
}
if (type.startsWith("TargetedCard")) {
type = type.replace("TargetedCard", "Card");
} else {
type = type.replace("Targeted", "Card");
}
} else if (type.startsWith("Remembered")) {
boolean hasRememberedCard = false;
for (final Object object : source.getRemembered()) {
if (object instanceof Card) {
hasRememberedCard = true;
source = (Card) object;
type = type.replace("Remembered", "Card");
break;
}
} else if (type.startsWith("Remembered")) {
boolean hasRememberedCard = false;
for (final Object object : source.getRemembered()) {
if (object instanceof Card) {
hasRememberedCard = true;
source = (Card) object;
type = type.replace("Remembered", "Card");
break;
}
}
if (!hasRememberedCard) {
return new CardList();
}
} else if (type.equals("Card.AttachedBy")) {
source = source.getEnchantingCard();
type = type.replace("Card.AttachedBy", "Card.Self");
}
if (!hasRememberedCard) {
return new CardList();
}
} else if (type.equals("Card.AttachedBy")) {
source = source.getEnchantingCard();
type = type.replace("Card.AttachedBy", "Card.Self");
}
String valid = type;
if (valid.contains("EQX")) {