- Fixed some changeling issues with Aven Brigadier, Rolling Stones and Prowess of the Fair.

- Deleted old Storm spell entries.
This commit is contained in:
jendave
2011-08-06 08:25:51 +00:00
parent c5c927d724
commit 22348ac177

View File

@@ -757,401 +757,7 @@ public class GameActionUtil {
AllZone.Stack.add(Storm); AllZone.Stack.add(Storm);
} }
} }
/**
public static void playCard_Storm(Card c) {
if(c.getKeyword().contains("Storm"))
{
final Card StormCard = c;
StormCard.removeIntrinsicKeyword("Storm");
final int StormNumber = Phase.StormCount - 1;
final Ability Storm = new Ability(c, "0") {
public void resolve() {
for(int i = 0; i < (StormNumber); i++) {
final SpellAbility ability = new Spell(StormCard) {
private static final long serialVersionUID = -1444400689073579320L;
@Override
public void resolve() {
if(StormCard.getName().equals("Empty the Warrens")) {
CardFactoryUtil.makeToken("Goblin", "R 1 1 Goblin", StormCard, "R", new String[] {
"Creature", "Goblin"}, 1, 1, new String[] {""});
CardFactoryUtil.makeToken("Goblin", "R 1 1 Goblin", StormCard, "R", new String[] {
"Creature", "Goblin"}, 1, 1, new String[] {""});
} // Empty the Warrens
else if(StormCard.getName().equals("Hunting Pack")) {
CardFactoryUtil.makeToken("Beast", "G 4 4 Beast", StormCard, "G", new String[] {
"Creature", "Beast"}, 4, 4, new String[] {""});
} // Hunting Pack
else if(StormCard.getName().equals("Brain Freeze")) {
String Player = AllZone.Phase.getActivePlayer();
if(Player == "Human"){
String Target = getTargetPlayer();
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, Target);
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, Target);
CardList libList = new CardList(lib.getCards());
int max = 3;
if(libList.size() < max) max = libList.size();
for(int i = 0; i < max; i++) {
Card c = libList.get(i);
lib.remove(c);
grave.add(c);
}
} else {
String Target = AllZone.GameAction.getOpponent(Player);
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, Target);
PlayerZone grave = AllZone.getZone(Constant.Zone.Graveyard, Target);
CardList libList = new CardList(lib.getCards());
int max = 3;
if(libList.size() < max) max = libList.size();
for(int i = 0; i < max; i++) {
Card c = libList.get(i);
lib.remove(c);
grave.add(c);
}
}
} // Brain Freeze
else if(StormCard.getName().equals("Dragonstorm")) {
String player = StormCard.getController();
if(player == "Human"){
CardList list = AllZoneUtil.getPlayerCardsInLibrary(Constant.Player.Human);
CardList dragons = new CardList();
for(int i = 0; i < list.size(); i++) {
if(list.get(i).getType().contains("Dragon")
|| list.get(i).getKeyword().contains("Changeling")) {
dragons.add(list.get(i));
}
}
if(dragons.size() != 0) {
Object o = AllZone.Display.getChoiceOptional("Select an Dragon to put onto the battlefield", dragons.toArray());
AllZone.GameAction.shuffle(StormCard.getController());
if(o != null) {
//put card in hand
AllZone.Human_Library.remove(o);
AllZone.Human_Play.add((Card) o);
}
}//if
} else {
CardList list = AllZoneUtil.getPlayerCardsInLibrary(Constant.Player.Computer);
CardList dragons = new CardList();
for(int i = 0; i < list.size(); i++) {
if(list.get(i).getType().contains("Dragon")
|| list.get(i).getKeyword().contains("Changeling")) {
dragons.add(list.get(i));
}
}
if(dragons.size() != 0) {
CardListUtil.sortAttack(dragons);
Card c = dragons.get(0);
AllZone.GameAction.shuffle(StormCard.getController());
//move to hand
AllZone.Computer_Library.remove(c);
AllZone.Computer_Play.add(c);
CardList l = new CardList();
l.add(c);
AllZone.Display.getChoiceOptional("Computer picked:", l.toArray());
}
}
} // Dragonstorm
else if(StormCard.getName().equals("Ignite Memories")) {
Card choice = null;
String opponent = AllZone.GameAction.getOpponent(StormCard.getController());
PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, opponent);
Card[] handChoices = hand.getCards();
if (handChoices.length > 0)
{
choice = CardUtil.getRandom(handChoices);
handChoices[0] = choice;
for(int i = 1; i < handChoices.length; i++) {
handChoices[i] = null;
}
AllZone.Display.getChoice("Random card", handChoices);
AllZone.GameAction.getPlayerLife(opponent).subtractLife(
CardUtil.getConvertedManaCost(choice.getManaCost()));
}
} // Ignite Memories
else if(StormCard.getName().equals("Haze of Rage")) {
PlayerZone play = AllZone.getZone(Constant.Zone.Play, StormCard.getController());
CardList start = new CardList(play.getCards());
final CardList list = start.getType("Creature");
for(int i = 0; i < list.size(); i++) {
list.get(i).addTempAttackBoost(1);
}
play.updateObservers();
Command untilEOT = new Command() {
private static final long serialVersionUID = -28032591440730370L;
public void execute() {
for(int i = 0; i < list.size(); i++)
if(AllZone.GameAction.isCardInPlay(list.get(i))) {
list.get(i).addTempAttackBoost(-1);
}
}
};
AllZone.EndOfTurn.addUntil(untilEOT);
} // Haze of Rage
else if(StormCard.getName().equals("Astral Steel")) {
String player = StormCard.getController();
if(player != "Human"){
String Computer = AllZone.Phase.getActivePlayer();
PlayerZone ComputerPlayZone = AllZone.getZone(Constant.Zone.Play, Computer);
CardList ComputerCreatureList = new CardList(ComputerPlayZone.getCards());
ComputerCreatureList = ComputerCreatureList.getType("Creature");
ComputerCreatureList = ComputerCreatureList.filter(new CardListFilter() {
public boolean addCard(Card c) {
return c.getNetAttack() >= 2 && CardFactoryUtil.canTarget(StormCard, getTargetCard());
}
});
if(ComputerCreatureList.size() != 0){
Card[] Target = new Card[ComputerCreatureList.size()];
for(int i = 0; i < ComputerCreatureList.size(); i++) {
Card crd = ComputerCreatureList.get(i);
Target[i] = crd;
}
Random randomGenerator = new Random();
int randomInt = randomGenerator.nextInt(ComputerCreatureList.size());
setTargetCard(Target[randomInt]);
}
}
final Card c = getTargetCard();
if(c != null) {
c.addTempAttackBoost(1);
c.addTempDefenseBoost(2);
c.updateObservers();
Command untilEOT = new Command() {
private static final long serialVersionUID = -28032591440730370L;
public void execute() {
c.addTempAttackBoost(-1);
c.addTempDefenseBoost(-2);
}
};
AllZone.EndOfTurn.addUntil(untilEOT);
}
} // Astral Steel
else if(StormCard.getName().equals("Grapeshot")) {
String player = StormCard.getController();
if(player == "Human"){
if(getTargetCard() != null) {
if(AllZone.GameAction.isCardInPlay(getTargetCard())
&& CardFactoryUtil.canTarget(StormCard, getTargetCard())) getTargetCard().addDamage(1,StormCard);
} else AllZone.GameAction.getPlayerLife(getTargetPlayer()).subtractLife(1);
} else AllZone.GameAction.getPlayerLife(AllZone.GameAction.getOpponent(StormCard.getController())).subtractLife(1);
} // Grapeshot
else if(StormCard.getName().equals("Reaping the Graves")) {
String player = StormCard.getController();
CardList creature = new CardList();
PlayerZone zone = AllZone.getZone(Constant.Zone.Graveyard, StormCard.getController());
if(zone != null) {
creature.addAll(zone.getCards());
creature = creature.getType("Creature");
if(player == "Human"){
Card[] Target = new Card[creature.size()];
for(int i = 0; i < creature.size(); i++) {
Card crd = creature.get(i);
Target[i] = crd;
}
Object check = AllZone.Display.getChoiceOptional("Select creature", Target);
if(check != null) {
setTargetCard((Card) check);
}
} else {
Card biggest = creature.get(0);
for(int i = 0; i < creature.size(); i++)
if(biggest.getNetAttack() < creature.get(i).getNetAttack()) biggest = creature.get(i);
setTargetCard(biggest);
}
Card c = getTargetCard();
PlayerZone grave = AllZone.getZone(c);
if(AllZone.GameAction.isCardInZone(c, grave)) {
PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, c.getController());
AllZone.GameAction.moveTo(hand, c);
}
}
} // Reaping the Graves
else if(StormCard.getName().equals("Scattershot")) {
if(getTargetCard() != null) {
if(AllZone.GameAction.isCardInPlay(getTargetCard())
&& CardFactoryUtil.canTarget(StormCard, getTargetCard())) getTargetCard().addDamage(1,StormCard);
}
} // Scattershot
else if(StormCard.getName().equals("Sprouting Vines")) {
AllZone.GameAction.searchLibraryBasicLand(StormCard.getController(),
Constant.Zone.Hand, false);
} // Sprouting Vines
else if(StormCard.getName().equals("Temporal Fissure")) {
String player = StormCard.getController();
if(player != "Human"){
CardList human = CardFactoryUtil.AI_getHumanCreature(StormCard, true);
CardList human2 = CardFactoryUtil.AI_getHumanArtifact(StormCard, true);
CardList human3 = CardFactoryUtil.AI_getHumanEnchantment(StormCard, true);
CardList human4 = CardFactoryUtil.getLandsInPlay(player);
if(human != null) setTargetCard(CardFactoryUtil.AI_getBestCreature(human));
else if(human2 != null) setTargetCard(CardFactoryUtil.AI_getBestArtifact(human2));
else if(human3 != null) setTargetCard(CardFactoryUtil.AI_getBestEnchantment(human3,StormCard, true));
else if(human4 != null) setTargetCard(CardFactoryUtil.AI_getBestLand(human4));
}
if(getTargetCard() != null) {
if(AllZone.GameAction.isCardInPlay(getTargetCard())
&& CardFactoryUtil.canTarget(StormCard, getTargetCard())) {
if(getTargetCard().isToken()) AllZone.getZone(getTargetCard()).remove(getTargetCard());
else {
PlayerZone hand = AllZone.getZone(Constant.Zone.Hand, getTargetCard().getOwner());
PlayerZone play = AllZone.getZone(Constant.Zone.Play, player);
play.remove(getTargetCard());
AllZone.GameAction.moveTo(hand, getTargetCard());
}
}
}
} // Temporal Fissure
else if(StormCard.getName().equals("Tendrils of Agony")) {
PlayerLife player = AllZone.GameAction.getPlayerLife(StormCard.getController());
String opponent = AllZone.GameAction.getOpponent(StormCard.getController());
PlayerLife target = AllZone.GameAction.getPlayerLife(opponent);
target.subtractLife(2);
player.addLife(2);
} // Tendrils of Agony
else if(StormCard.getName().equals("Volcanic Awakening")) {
String player = StormCard.getController();
if(player != "Human"){
//target basic land that Human only has 1 or 2 in play
CardList land = new CardList(AllZone.Human_Play.getCards());
land = land.getType("Land");
Card target = null;
String[] name = {"Forest", "Swamp", "Plains", "Mountain", "Island"};
for(int i = 0; i < name.length; i++)
if(land.getName(name[i]).size() == 1) {
target = land.getName(name[i]).get(0);
break;
}
//see if there are only 2 lands of the same type
if(target == null) {
for(int i = 0; i < name.length; i++)
if(land.getName(name[i]).size() == 2) {
target = land.getName(name[i]).get(0);
break;
}
}//if
if(target == null) {
land.shuffle();
target = land.get(0);
}
setTargetCard(target);
}
if(AllZone.GameAction.isCardInPlay(getTargetCard())
&& CardFactoryUtil.canTarget(StormCard, getTargetCard())) {
AllZone.GameAction.destroy(getTargetCard());
}
} // Volcanic Awakening
else if(StormCard.getName().equals("Wing Shards")) {
Card attack[] = AllZone.Combat.getAttackers();
Card target = null;
String player = StormCard.getController();
if(player != "Human"){
Object check = AllZone.Display.getChoiceOptional("Select creature", attack);
if(check != null) {
target = ((Card) check);
}
} else {
CardList Targets = new CardList();
String TPlayer = AllZone.GameAction.getOpponent(StormCard.getController());
PlayerZone TZone = AllZone.getZone(Constant.Zone.Play, TPlayer);
for(int i = 0; i < attack.length; i++) {
Card crd = attack[i];
if(AllZone.GameAction.isCardInZone(attack[i], TZone)) Targets.add(crd);
}
CardListUtil.sortAttack(Targets);
if(Targets.size() != 0) target = (Targets.get(Targets.size() - 1));
}
if(target != null) AllZone.GameAction.sacrifice(target);
} // Wing Shards
else if(StormCard.getName().equals("Mind's Desire")) {
String player = AllZone.Phase.getActivePlayer();
if(player == "Human") AllZone.GameAction.shuffle(StormCard.getController());
// New
PlayerZone Play = AllZone.getZone(Constant.Zone.Play, player);
if(AllZone.GameAction.isCardInZone(StormCard,Play) == false) {
Play.add(StormCard);
} else {
// New
PlayerZone lib = AllZone.getZone(Constant.Zone.Library, player);
CardList libList = new CardList(lib.getCards());
Card c = null;
if(libList.size() > 0) {
c = libList.get(0);
}
if(c != null) {
PlayerZone RFG = AllZone.getZone(Constant.Zone.Removed_From_Play, player);
AllZone.GameAction.moveTo(RFG, c);
StormCard.attachCard(c);
}
}
} // Mind's Desire
} // Resolve
};
// ability.setStackDescription(StormCard + " - Storm Copy.");
// Add all targetted storm cards to the if statement
ability.getSourceCard().setCopiedSpell(true);
// Phase.StormCount = Phase.StormCount - 1;
String player = StormCard.getController();
ability.setManaCost("0");
if(player == "Human"){
if(StormCard.getName().equals("Astral Steel")) {
AllZone.InputControl.setInput(CardFactoryUtil.input_targetCreature(ability));
} else if(StormCard.getName().equals("Grapeshot")) {
AllZone.InputControl.setInput(CardFactoryUtil.input_targetCreaturePlayer(ability, true, false));
} else if(StormCard.getName().equals("Scattershot")) {
AllZone.InputControl.setInput(CardFactoryUtil.input_targetCreature(ability));
} else if(StormCard.getName().equals("Brain Freeze")) {
AllZone.InputControl.setInput(CardFactoryUtil.input_targetPlayer(ability));
} else if(StormCard.getName().equals("Temporal Fissure")) {
AllZone.InputControl.setInput(CardFactoryUtil.input_targetPermanent(ability));
} else if(StormCard.getName().equals("Volcanic Awakening")) {
AllZone.InputControl.setInput(CardFactoryUtil.input_targetType(ability, "Land"));
} else AllZone.Stack.add(ability);
} else AllZone.Stack.add(ability);
}; // For
}
};
Storm.setStackDescription(c + " - Storm.");
AllZone.Stack.add(Storm);
}
}
**/
public static void playCard_Vengevine(Card c) { public static void playCard_Vengevine(Card c) {
if (c.isCreature() == true && (Phase.PlayerCreatureSpellCount == 2 || Phase.ComputerCreatureSpellCount == 2)) if (c.isCreature() == true && (Phase.PlayerCreatureSpellCount == 2 || Phase.ComputerCreatureSpellCount == 2))
{ {
@@ -1723,8 +1329,7 @@ public class GameActionUtil {
list = list.getName("Thief of Hope"); list = list.getName("Thief of Hope");
if(list.size() > 0) { if(list.size() > 0) {
if(c.getType().contains("Spirit") || c.getType().contains("Arcane") if(c.isType("Spirit") || c.getType().contains("Arcane")) {
|| c.getIntrinsicKeyword().contains("Changeling")) {
for(int i = 0; i < list.size(); i++) { for(int i = 0; i < list.size(); i++) {
final Card card = list.get(i); final Card card = list.get(i);
Ability ability2 = new Ability(card, "0") { Ability ability2 = new Ability(card, "0") {
@@ -1768,8 +1373,7 @@ public class GameActionUtil {
list = list.getName("Infernal Kirin"); list = list.getName("Infernal Kirin");
if(list.size() > 0) { if(list.size() > 0) {
if(c.getType().contains("Spirit") || c.getType().contains("Arcane") if(c.isType("Spirit") || c.getType().contains("Arcane")) {
|| c.getIntrinsicKeyword().contains("Changeling")) {
for(int i = 0; i < list.size(); i++) { for(int i = 0; i < list.size(); i++) {
final Card card = list.get(i); final Card card = list.get(i);
final int converted = CardUtil.getConvertedManaCost(c.getManaCost()); final int converted = CardUtil.getConvertedManaCost(c.getManaCost());
@@ -1826,8 +1430,7 @@ public class GameActionUtil {
list = list.getName("Cloudhoof Kirin"); list = list.getName("Cloudhoof Kirin");
if(list.size() > 0) { if(list.size() > 0) {
if(c.getType().contains("Spirit") || c.getType().contains("Arcane") if(c.isType("Spirit") || c.getType().contains("Arcane")) {
|| c.getIntrinsicKeyword().contains("Changeling")) {
for(int i = 0; i < list.size(); i++) { for(int i = 0; i < list.size(); i++) {
final Card card = list.get(i); final Card card = list.get(i);
final int converted = CardUtil.getConvertedManaCost(c.getManaCost()); final int converted = CardUtil.getConvertedManaCost(c.getManaCost());
@@ -1884,8 +1487,7 @@ public class GameActionUtil {
list = list.getName("Bounteous Kirin"); list = list.getName("Bounteous Kirin");
if(list.size() > 0) { if(list.size() > 0) {
if(c.getType().contains("Spirit") || c.getType().contains("Arcane") if(c.isType("Spirit") || c.getType().contains("Arcane")) {
|| c.getIntrinsicKeyword().contains("Changeling")) {
for(int i = 0; i < list.size(); i++) { for(int i = 0; i < list.size(); i++) {
final Card card = list.get(i); final Card card = list.get(i);
final int converted = CardUtil.getConvertedManaCost(c.getManaCost()); final int converted = CardUtil.getConvertedManaCost(c.getManaCost());
@@ -4424,7 +4026,7 @@ public class GameActionUtil {
else if(c.getName().equals("Dingus Staff")) destroyCreature_Dingus_Staff(c, destroyed); else if(c.getName().equals("Dingus Staff")) destroyCreature_Dingus_Staff(c, destroyed);
else if(c.getName().equals("Dauthi Ghoul") && destroyed.getKeyword().contains("Shadow")) destroyCreature_Dauthi_Ghoul( else if(c.getName().equals("Dauthi Ghoul") && destroyed.getKeyword().contains("Shadow")) destroyCreature_Dauthi_Ghoul(
c, destroyed); c, destroyed);
else if(c.getName().equals("Prowess of the Fair") && destroyed.getType().contains("Elf") else if(c.getName().equals("Prowess of the Fair") && destroyed.isType("Elf")
&& !destroyed.isToken() && !c.equals(destroyed) && !destroyed.isToken() && !c.equals(destroyed)
&& destroyed.getController().equals(c.getController())) destroyCreature_Prowess_of_the_Fair(c, && destroyed.getController().equals(c.getController())) destroyCreature_Prowess_of_the_Fair(c,
destroyed); destroyed);
@@ -4987,8 +4589,7 @@ public class GameActionUtil {
CardList plants = new CardList(play.getCards()); CardList plants = new CardList(play.getCards());
plants = plants.filter(new CardListFilter() { plants = plants.filter(new CardListFilter() {
public boolean addCard(Card card) { public boolean addCard(Card card) {
return card.isCreature() && card.getType().contains("Plant") || return (card.isCreature() && card.isType("Plant"));
card.getKeyword().contains("Changeling");
} }
}); });
@@ -6834,8 +6435,7 @@ public class GameActionUtil {
CardListFilter filter = new CardListFilter() { CardListFilter filter = new CardListFilter() {
public boolean addCard(Card c) { public boolean addCard(Card c) {
return c.isCreature() && !c.getType().contains("Vampire") return (c.isCreature() && !c.isType("Vampire"));
&& !c.getKeyword().contains("Changeling");
} }
}; };
@@ -9879,7 +9479,7 @@ public class GameActionUtil {
for(int i = 0; i < creature.size(); i++) { for(int i = 0; i < creature.size(); i++) {
c = creature.get(i); c = creature.get(i);
if(c.getKeyword().contains(keyword) if(c.getKeyword().contains(keyword)
&& c.getType().contains("Wall")) { && c.isType("Wall")) {
c.removeIntrinsicKeyword(keyword); c.removeIntrinsicKeyword(keyword);
gloriousAnthemList.add(c); gloriousAnthemList.add(c);
} }
@@ -13534,8 +13134,7 @@ public class GameActionUtil {
current = current.filter(new CardListFilter() { current = current.filter(new CardListFilter() {
public boolean addCard(Card c) { public boolean addCard(Card c) {
return !c.isToken() return !c.isToken()
&& (c.getType().contains("Elf") || c.getKeyword().contains( && (c.getType().contains("Elf") || c.getKeyword().contains("Changeling"));
"Changeling"));
} }
}); });
@@ -14261,10 +13860,8 @@ public class GameActionUtil {
tree = tree.filter(new CardListFilter() { tree = tree.filter(new CardListFilter() {
public boolean addCard(Card c) { public boolean addCard(Card c) {
return (c.getKeyword().contains("Changeling") || c.getType().contains( return (c.getKeyword().contains("Changeling") || c.getType().contains("Treefolk"))
"Treefolk")) && !c.getName().equals("Dauntless Dourbark");
&& !c.getName().equals(
"Dauntless Dourbark");
} }
}); });
if(tree.size() > 0) return true; if(tree.size() > 0) return true;
@@ -14278,9 +13875,8 @@ public class GameActionUtil {
list = list.filter(new CardListFilter() { list = list.filter(new CardListFilter() {
public boolean addCard(Card c) { public boolean addCard(Card c) {
return c.getType().contains("Treefolk") return c.getType().contains("Treefolk")
|| c.getKeyword().contains( || c.getKeyword().contains("Changeling")
"Changeling") || c.getType().contains("Forest");
|| c.getType().contains("Forest");
} }
}); });
@@ -15963,8 +15559,7 @@ public class GameActionUtil {
cenns = cenns.filter(new CardListFilter() { cenns = cenns.filter(new CardListFilter() {
public boolean addCard(Card c) { public boolean addCard(Card c) {
return c.getName().equals("Wizened Cenn") return c.getName().equals("Wizened Cenn")
&& (c.getType().contains("Kithkin") || c.getKeyword().contains( && (c.getType().contains("Kithkin") || c.getKeyword().contains("Changeling"));
"Changeling"));
} }
}); });
return cenns.size() - 1; return cenns.size() - 1;
@@ -16128,8 +15723,7 @@ public class GameActionUtil {
public boolean addCard(Card c) { public boolean addCard(Card c) {
return c.getName().equals( return c.getName().equals(
"Cemetery Reaper") "Cemetery Reaper")
&& (c.getType().contains("Zombie") || c.getKeyword().contains( && (c.getType().contains("Zombie") || c.getKeyword().contains("Changeling"));
"Changeling"));
} }
}); });
return reapers.size() - 1; return reapers.size() - 1;
@@ -16212,8 +15806,7 @@ public class GameActionUtil {
public boolean addCard(Card c) { public boolean addCard(Card c) {
return c.getName().equals( return c.getName().equals(
"Captain of the Watch") "Captain of the Watch")
&& (c.getType().contains("Soldier") || c.getKeyword().contains( && (c.getType().contains("Soldier") || c.getKeyword().contains("Changeling"));
"Changeling"));
} }
}); });
return capts.size() - 1; return capts.size() - 1;
@@ -16293,8 +15886,7 @@ public class GameActionUtil {
public boolean addCard(Card c) { public boolean addCard(Card c) {
return c.getName().equals( return c.getName().equals(
"Veteran Swordsmith") "Veteran Swordsmith")
&& (c.getType().contains("Soldier") || c.getKeyword().contains( && (c.getType().contains("Soldier") || c.getKeyword().contains("Changeling"));
"Changeling"));
} }
}); });
return cenns.size() - 1; return cenns.size() - 1;
@@ -16372,8 +15964,7 @@ public class GameActionUtil {
public boolean addCard(Card c) { public boolean addCard(Card c) {
return c.getName().equals( return c.getName().equals(
"Veteran Armorsmith") "Veteran Armorsmith")
&& (c.getType().contains("Soldier") || c.getKeyword().contains( && (c.getType().contains("Soldier") || c.getKeyword().contains("Changeling"));
"Changeling"));
} }
}); });
return cenns.size() - 1; return cenns.size() - 1;
@@ -16517,8 +16108,7 @@ public class GameActionUtil {
public boolean addCard(Card c) { public boolean addCard(Card c) {
return c.getType().contains("Treefolk") return c.getType().contains("Treefolk")
|| c.getType().contains("Forest") || c.getType().contains("Forest")
|| c.getKeyword().contains( || c.getKeyword().contains("Changeling");
"Changeling");
} }
}); });
@@ -17257,8 +16847,8 @@ public class GameActionUtil {
Card c = creature.get(i); Card c = creature.get(i);
otherBrigadiers = countOtherBrigadiers(); otherBrigadiers = countOtherBrigadiers();
int boost = 0; int boost = 0;
if(c.getType().contains("Bird")) boost++; if(c.isType("Bird")) boost++;
if(c.getType().contains("Soldier")) boost++; if(c.isType("Soldier")) boost++;
c.setOtherAttackBoost(boost * otherBrigadiers); c.setOtherAttackBoost(boost * otherBrigadiers);
c.setOtherDefenseBoost(boost * otherBrigadiers); c.setOtherDefenseBoost(boost * otherBrigadiers);
}// for inner }// for inner
@@ -17335,8 +16925,7 @@ public class GameActionUtil {
for(int i = 0; i < creature.size(); i++) { for(int i = 0; i < creature.size(); i++) {
Card c = creature.get(i); Card c = creature.get(i);
otherScions = countOtherScions(c); otherScions = countOtherScions(c);
if(c.getType().contains("Faerie") if(c.getType().contains("Faerie") || c.getKeyword().contains("Changeling")) {
|| c.getKeyword().contains("Changeling")) {
c.setOtherAttackBoost(otherScions); c.setOtherAttackBoost(otherScions);
c.setOtherDefenseBoost(otherScions); c.setOtherDefenseBoost(otherScions);
if(!c.getExtrinsicKeyword().contains( if(!c.getExtrinsicKeyword().contains(
@@ -20229,8 +19818,7 @@ public class GameActionUtil {
for(int i = 0; i < creature.size(); i++) { for(int i = 0; i < creature.size(); i++) {
c = creature.get(i); c = creature.get(i);
if(c.getType().contains(card.getChosenType()) if(c.getType().contains(card.getChosenType())
|| c.getKeyword().contains( || c.getKeyword().contains("Changeling")) {
"Changeling")) {
c.addSemiPermanentAttackBoost(1); c.addSemiPermanentAttackBoost(1);
c.addSemiPermanentDefenseBoost(1); c.addSemiPermanentDefenseBoost(1);
gloriousAnthemList.add(c); gloriousAnthemList.add(c);
@@ -20272,8 +19860,7 @@ public class GameActionUtil {
creature = creature.filter(new CardListFilter() { creature = creature.filter(new CardListFilter() {
public boolean addCard(Card c) { public boolean addCard(Card c) {
return c.getType().contains("Saproling") return c.getType().contains("Saproling")
|| c.getKeyword().contains( || c.getKeyword().contains("Changeling");
"Changeling");
} }
}); });
@@ -20315,8 +19902,7 @@ public class GameActionUtil {
creature = creature.filter(new CardListFilter() { creature = creature.filter(new CardListFilter() {
public boolean addCard(Card c) { public boolean addCard(Card c) {
return c.getType().contains("Squirrel") return c.getType().contains("Squirrel")
|| c.getKeyword().contains( || c.getKeyword().contains("Changeling");
"Changeling");
} }
}); });