diff --git a/.gitattributes b/.gitattributes index 21ee57d0ba3..95f5cb4c6f5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1446,6 +1446,7 @@ res/cardsfolder/c/cataclysm.txt -text res/cardsfolder/c/catacomb_dragon.txt -text res/cardsfolder/c/catacomb_slug.txt -text res/cardsfolder/c/catalog.txt svneol=native#text/plain +res/cardsfolder/c/catalyst_stone.txt -text res/cardsfolder/c/catapult_master.txt svneol=native#text/plain res/cardsfolder/c/catapult_squad.txt svneol=native#text/plain res/cardsfolder/c/catastrophe.txt svneol=native#text/plain diff --git a/.gitignore b/.gitignore index 03d688bb198..80306960b6f 100644 --- a/.gitignore +++ b/.gitignore @@ -359,6 +359,7 @@ res/pics/TSP res/pics/UDS res/pics/ULG res/pics/USG +res/pics/VAN res/pics/VIS res/pics/WTH res/pics/WWK diff --git a/res/cardsfolder/c/catalyst_stone.txt b/res/cardsfolder/c/catalyst_stone.txt new file mode 100644 index 00000000000..2e2e7ff4148 --- /dev/null +++ b/res/cardsfolder/c/catalyst_stone.txt @@ -0,0 +1,12 @@ +Name:Catalyst Stone +ManaCost:2 +Types:Artifact +Text:no text +S:Mode$ ReduceCost | ValidCard$ Card | Type$ Flashback | Activator$ You | Amount$ 2 | Description$ Flashback costs you pay cost up to 2 less. +S:Mode$ RaiseCost | ValidCard$ Card | Type$ Flashback | Activator$ Opponent | Amount$ 2 | Description$ Flashback costs your opponents pay cost 2 more. +SVar:RemRandomDeck:True +SVar:Rarity:Rare +SVar:Picture:http://www.wizards.com/global/images/magic/general/catalyst_stone.jpg +SetInfo:ODY|Rare|http://magiccards.info/scans/en/od/297.jpg +Oracle:Flashback costs you pay cost up to {2} less.\nFlashback costs your opponents pay cost {2} more. +End \ No newline at end of file diff --git a/src/main/java/forge/card/staticability/StaticAbilityCostChange.java b/src/main/java/forge/card/staticability/StaticAbilityCostChange.java index 142bbb81e66..362f1bf2d87 100644 --- a/src/main/java/forge/card/staticability/StaticAbilityCostChange.java +++ b/src/main/java/forge/card/staticability/StaticAbilityCostChange.java @@ -73,9 +73,14 @@ public class StaticAbilityCostChange { if (!(sa instanceof AbilityActivated)) { return originalCost; } - } else if (params.get("Type").equals("NonManaAbility") - && (!(sa instanceof AbilityActivated) || null != sa.getManaPart())) { - return originalCost; + } else if (params.get("Type").equals("NonManaAbility")) { + if (!(sa instanceof AbilityActivated) || null != sa.getManaPart()) { + return originalCost; + } + } else if (params.get("Type").equals("Flashback")) { + if (!sa.isFlashBackAbility()) { + return originalCost; + } } } if (params.containsKey("AffectedZone") && !card.isInZone(ZoneType.smartValueOf(params.get("AffectedZone")))) { @@ -186,17 +191,26 @@ public class StaticAbilityCostChange { return originalCost; } if (params.containsKey("Type")) { - if (params.get("Type").equals("Spell") && !sa.isSpell()) { - return originalCost; - } - if (params.get("Type").equals("Ability") && !(sa instanceof AbilityActivated)) { - return originalCost; - } - if (params.get("Type").equals("Cycling") && !sa.isCycling()) { - return originalCost; - } else if (params.get("Type").equals("Equip") - && (!(sa instanceof AbilityActivated) || !sa.hasParam("Equip"))) { - return originalCost; + if (params.get("Type").equals("Spell")) { + if (!sa.isSpell()) { + return originalCost; + } + } else if (params.get("Type").equals("Ability")) { + if (!(sa instanceof AbilityActivated)) { + return originalCost; + } + } else if (params.get("Type").equals("Cycling")) { + if (!sa.isCycling()) { + return originalCost; + } + } else if (params.get("Type").equals("Equip")) { + if (!(sa instanceof AbilityActivated) || !sa.hasParam("Equip")) { + return originalCost; + } + } else if (params.get("Type").equals("Flashback")) { + if (!sa.isFlashBackAbility()) { + return originalCost; + } } } if (params.containsKey("ValidTarget")) {