From 828fff5d7908f176f6bf1fb99b5c8205daab2d8d Mon Sep 17 00:00:00 2001 From: Sloth Date: Sun, 15 Jul 2012 11:29:34 +0000 Subject: [PATCH] - Converted Heartstone, Power Artifact and Training Grounds to StAb ReduceCost. --- res/cardsfolder/h/heartstone.txt | 2 +- res/cardsfolder/p/power_artifact.txt | 2 +- res/cardsfolder/t/training_grounds.txt | 2 +- .../card/staticability/StaticAbilityCostChange.java | 12 ++++++++++++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/res/cardsfolder/h/heartstone.txt b/res/cardsfolder/h/heartstone.txt index 90fd962e452..d5f85fa4ae2 100644 --- a/res/cardsfolder/h/heartstone.txt +++ b/res/cardsfolder/h/heartstone.txt @@ -2,7 +2,7 @@ Name:Heartstone ManaCost:3 Types:Artifact Text:no text -K:CostChange:Player:Less:1:Ability:All:Creature:TargetInPlay:Activated abilities of creatures you control cost 1 less to activate. This effect can't reduce the amount of mana an ability costs to activate to less than one mana. +S:Mode$ ReduceCost | ValidCard$ Creature.YouCtrl | Type$ Ability | Amount$ 1 | MinMana$ 1 | AffectedZone$ Battlefield | Description$ Activated abilities of creatures you control cost 1 less to activate. This effect can't reduce the amount of mana an ability costs to activate to less than one mana. SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/heartstone.jpg SetInfo:STH|Uncommon|http://magiccards.info/scans/en/sh/128.jpg diff --git a/res/cardsfolder/p/power_artifact.txt b/res/cardsfolder/p/power_artifact.txt index 84591418ca8..3cbd02e810d 100644 --- a/res/cardsfolder/p/power_artifact.txt +++ b/res/cardsfolder/p/power_artifact.txt @@ -2,8 +2,8 @@ Name:Power Artifact ManaCost:U U Types:Enchantment Aura Text:no text -K:CostChange:Player:Less:2:Enchanted:All:Artifact:TargetInPlay:Enchanted artifact's activated abilities cost 2 less to activate. This effect can't reduce the amount of mana an ability costs to activate to less than one mana. K:Enchant artifact +S:Mode$ ReduceCost | ValidCard$ Artifact.EnchantedBy | Type$ Ability | Amount$ 2 | MinMana$ 1 | Description$ Enchanted artifact's activated abilities cost 2 less to activate. This effect can't reduce the amount of mana an ability costs to activate to less than one mana. A:SP$ Attach | Cost$ U U | ValidTgts$ Artifact | AILogic$ Pump SVar:RemRandomDeck:True SVar:Rarity:Uncommon diff --git a/res/cardsfolder/t/training_grounds.txt b/res/cardsfolder/t/training_grounds.txt index 6baf27ba755..c1e2e8eec4a 100644 --- a/res/cardsfolder/t/training_grounds.txt +++ b/res/cardsfolder/t/training_grounds.txt @@ -2,7 +2,7 @@ Name:Training Grounds ManaCost:U Types:Enchantment Text:no text -K:CostChange:Player:Less:2:Ability:All:Creature:TargetInPlay:Activated abilities of creatures you control cost up to 2 less to activate. This effect can't reduce the amount of mana an ability costs to activate to less than one mana. +S:Mode$ ReduceCost | ValidCard$ Creature.YouCtrl | Type$ Ability | Amount$ 2 | MinMana$ 1 | AffectedZone$ Battlefield | Description$ Activated abilities of creatures you control cost 2 less to activate. This effect can't reduce the amount of mana an ability costs to activate to less than one mana. SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/training_grounds.jpg SetInfo:ROE|Rare|http://magiccards.info/scans/en/roe/91.jpg diff --git a/src/main/java/forge/card/staticability/StaticAbilityCostChange.java b/src/main/java/forge/card/staticability/StaticAbilityCostChange.java index 1dd8ef468fa..1e93fa90b78 100644 --- a/src/main/java/forge/card/staticability/StaticAbilityCostChange.java +++ b/src/main/java/forge/card/staticability/StaticAbilityCostChange.java @@ -24,6 +24,7 @@ import forge.card.cardfactory.CardFactoryUtil; import forge.card.mana.ManaCost; import forge.card.spellability.SpellAbility; import forge.game.player.Player; +import forge.game.zone.ZoneType; /** * The Class StaticAbility_CantBeCast. @@ -80,6 +81,10 @@ public class StaticAbilityCostChange { */ public static ManaCost applyReduceCostAbility(final StaticAbility staticAbility, final SpellAbility sa , final ManaCost originalCost) { + //Can't reduce zero cost + if (originalCost.toString().equals("0")) { + return originalCost; + } final HashMap params = staticAbility.getMapParams(); final Card hostCard = staticAbility.getHostCard(); final Player activator = sa.getActivatingPlayer(); @@ -101,6 +106,9 @@ public class StaticAbilityCostChange { if (params.containsKey("Type") && params.get("Type").equals("Ability") && !sa.isAbility()) { return originalCost; } + if (params.containsKey("AffectedZone") && !card.isInZone(ZoneType.smartValueOf("AffectedZone"))) { + return originalCost; + } if (!"WUGRB".contains(amount)) { int value = 0; @@ -111,8 +119,12 @@ public class StaticAbilityCostChange { } manaCost.decreaseColorlessMana(value); + if (manaCost.toString().equals("0") && params.containsKey("MinMana")) { + manaCost.increaseColorlessMana(Integer.valueOf(params.get("MinMana"))); + } } + return manaCost; } }