Added Affinity for Type as a condition for the CostChange keyword. Added Frogmite

This commit is contained in:
jendave
2011-08-06 04:57:18 +00:00
parent 2833e1c3af
commit 76e5bba259
3 changed files with 34 additions and 14 deletions

View File

@@ -38,6 +38,7 @@ snow_covered_mountain.jpg http://www.wizards.com/global/images/magic/gene
snow_covered_mountain1.jpg http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg
snow_covered_mountain2.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg
snow_covered_mountain3.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg
frogmite.jpg http://www.wizards.com/global/images/magic/general/frogmite.jpg
eye_of_ugin.jpg http://www.wizards.com/global/images/magic/general/eye_of_ugin.jpg
edgewalker.jpg http://www.wizards.com/global/images/magic/general/edgewalker.jpg
thunderscape_familiar.jpg http://www.wizards.com/global/images/magic/general/thunderscape_familiar.jpg

View File

@@ -1,3 +1,10 @@
Frogmite
4
Artifact Creature Frog
Affinity for artifacts (This spell costs 1 less to cast for each artifact you control.)
2/2
CostChange:Player:Less:1:Self:All:All:Affinity/Artifact
Eye of Ugin
no cost
Legendary Land

View File

@@ -1609,6 +1609,7 @@ public class GameAction {
return false;
}
});
Cards_In_Play.add(originalCard);
String Mana = manaCost.toString();
CardList Player_Play = new CardList(AllZone.getZone(Constant.Zone.Play, sa.getSourceCard().getController()).getCards());
int XBonus = 0;
@@ -1645,7 +1646,8 @@ public class GameAction {
}
if((k[1].equals("Player") && card.getController().equals(sa.getSourceCard().getController())
|| (k[1].equals("Opponent") && card.getController().equals(AllZone.GameAction.getOpponent(sa.getSourceCard().getController()))) || k[1].equals("All"))
&& ((k[4].equals("Spell") && sa.isSpell() == true) || (k[4].equals("Ability") && sa.isAbility() == true) || k[4].equals("All"))
&& ((k[4].equals("Spell") && sa.isSpell() == true) || (k[4].equals("Ability") && sa.isAbility() == true)
|| (k[4].equals("Self") && originalCard.equals(card)) || k[4].equals("All"))
&& ((CardUtil.getColors(sa.getSourceCard()).contains(k[5])) || k[5].equals("All"))
&& ((sa.getSourceCard().getType().contains(k[6])) || k[6].equals("All"))) {
if(k[7].equals("CardIsTapped")) {
@@ -1654,6 +1656,15 @@ public class GameAction {
if(k[7].equals("TargetInPlay")) {
if(Player_Play.contains(sa.getSourceCard())) k[3] = "0";
}
if(k[7].contains("Affinity")) {
String spilt = k[7];
String color_spilt[] = spilt.split("/");
k[7] = color_spilt[1];
PlayerZone PlayerPlay = AllZone.getZone(Constant.Zone.Play, originalCard.getController());
CardList PlayerList = new CardList(PlayerPlay.getCards());
PlayerList = PlayerList.getType(k[7]);
k[3] = String.valueOf(PlayerList.size());
}
String[] Numbers = new String[Max];
if(!"WUGRB".contains(k[3])) {
for(int no = 0; no < Max; no ++) Numbers[no] = String.valueOf(no);
@@ -1714,7 +1725,8 @@ public class GameAction {
}
if((k[1].equals("Player") && card.getController().equals(sa.getSourceCard().getController())
|| (k[1].equals("Opponent") && card.getController().equals(AllZone.GameAction.getOpponent(sa.getSourceCard().getController()))) || k[1].equals("All"))
&& ((k[4].equals("Spell") && sa.isSpell() == true) || (k[4].equals("Ability") && sa.isAbility() == true) || k[4].equals("All"))
&& ((k[4].equals("Spell") && sa.isSpell() == true) || (k[4].equals("Ability") && sa.isAbility() == true)
|| (k[4].equals("Self") && originalCard.equals(card)) || k[4].equals("All"))
&& ((CardUtil.getColors(sa.getSourceCard()).contains(k[5])) || k[5].equals("All"))
&& ((sa.getSourceCard().getType().contains(k[6])) || k[6].equals("All"))) {
if(k[7].equals("CardIsTapped")) {
@@ -1723,7 +1735,15 @@ public class GameAction {
if(k[7].equals("TargetInPlay")) {
if(Player_Play.contains(sa.getSourceCard())) k[3] = "0";
}
if(k[7].contains("Affinity")) {
String spilt = k[7];
String color_spilt[] = spilt.split("/");
k[7] = color_spilt[1];
PlayerZone PlayerPlay = AllZone.getZone(Constant.Zone.Play, originalCard.getController());
CardList PlayerList = new CardList(PlayerPlay.getCards());
PlayerList = PlayerList.getType(k[7]);
k[3] = String.valueOf(PlayerList.size());
}
String[] Numbers = new String[Max];
if(!"WUGRB".contains(k[3])) {
@@ -1744,9 +1764,11 @@ public class GameAction {
manaCost = new ManaCost(Mana);
}
} else {
// JOptionPane.showMessageDialog(null, Mana + " " + Mana.replaceFirst(k[3],""), "", JOptionPane.INFORMATION_MESSAGE);
if(Mana.equals(Mana.replaceFirst(k[3], ""))) {
// if(sa.isXCost()) sa.getSourceCard().addXManaCostPaid(1); Not Included as X Costs are not in Colored Mana
if(sa.isMultiKicker()) CostCutting_GetMultiMickerManaCostPaid_Colored = CostCutting_GetMultiMickerManaCostPaid_Colored + k[3];
// JOptionPane.showMessageDialog(null, CostCutting_GetMultiMickerManaCostPaid_Colored, "", JOptionPane.INFORMATION_MESSAGE);
} else {
Mana = Mana.replaceFirst(k[3], "");
Mana = Mana.trim();
@@ -1767,7 +1789,6 @@ public class GameAction {
}
}
}
if(sa.isXCost()) {
for(int XPaid = 0; XPaid < XBonus; XPaid++) sa.getSourceCard().addXManaCostPaid(1);
@@ -1776,15 +1797,6 @@ public class GameAction {
CostCutting_GetMultiMickerManaCostPaid = 0;
for(int XPaid = 0; XPaid < XBonus; XPaid++) CostCutting_GetMultiMickerManaCostPaid = CostCutting_GetMultiMickerManaCostPaid + 1;
}
/**
if(sa.isMultiKicker()) {
for(int XPaid = 0; XPaid < XBonus ; XPaid++) {
// AllZone.ManaPool.has = AllZone.ManaPool.has.replaceFirst("1", "");
AllZone.ManaPool.addMana("1");;
}
}
**/
}
if(originalCard.getName().equals("Khalni Hydra") && spell.isSpell() == true) {
String player = AllZone.Phase.getActivePlayer();
@@ -1807,7 +1819,7 @@ public class GameAction {
}
} // Khalni Hydra
return manaCost;
}
}
public void playSpellAbility(SpellAbility sa) {
ManaCost manaCost = GetSpellCostChange(sa);