diff --git a/res/card-pictures.txt b/res/card-pictures.txt index 6689baf0770..1c8ce1d25ae 100644 --- a/res/card-pictures.txt +++ b/res/card-pictures.txt @@ -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 diff --git a/res/cards.txt b/res/cards.txt index df676381c38..a1820b7e1d4 100644 --- a/res/cards.txt +++ b/res/cards.txt @@ -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 diff --git a/src/forge/GameAction.java b/src/forge/GameAction.java index bf3eb3e1c3c..6d64890319a 100644 --- a/src/forge/GameAction.java +++ b/src/forge/GameAction.java @@ -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);