From 4c0c085e1fe4aa4f9de367090e2e6a71a08950cd Mon Sep 17 00:00:00 2001 From: Sol Date: Tue, 12 Apr 2016 14:34:00 +0000 Subject: [PATCH] - Adding some code to support for Falkenrath Gorger --- .../src/main/java/forge/game/ability/AbilityUtils.java | 3 ++- .../main/java/forge/game/ability/effects/PlayEffect.java | 8 +++++++- forge-game/src/main/java/forge/game/card/Card.java | 7 ++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index 3cf186c3a35..91186139d91 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -684,7 +684,7 @@ public class AbilityUtils { * a card type * @param sa * a SpellAbility - * @return a {@link forge.game.CardCollectionView} object. + * @return a {@link forge.game.card.CardCollectionView} object. */ public static CardCollectionView filterListByType(final CardCollectionView list, String type, final SpellAbility sa) { if (type == null) { @@ -1099,6 +1099,7 @@ public class AbilityUtils { players.add(sa.getActivatingPlayer()); } else if (defined.equals("Opponent")) { + //players.addAll(sa.getActivatingPlayer().getOpponents()); players.add(sa.getActivatingPlayer().getOpponent()); } else { diff --git a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java index 3a478262815..666c2289927 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java @@ -217,7 +217,13 @@ public class PlayEffect extends SpellAbilityEffect { if (noManaCost) { tgtSA = tgtSA.copyWithNoManaCost(); } else if (sa.hasParam("PlayMadness")) { - final Cost abCost = new Cost(sa.getParam("PlayMadness"), false); + Cost abCost; + if ("ManaCost".equals(sa.getParam("PlayMadness"))) { + abCost = new Cost(source.getManaCost(), false); + } else { + abCost = new Cost(sa.getParam("PlayMadness"), false); + } + tgtSA = tgtSA.copyWithDefinedCost(abCost); tgtSA.getHostCard().setMadness(true); } diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 1a6ac91fd31..5fb5ac3e6cc 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -1294,7 +1294,12 @@ public class Card extends GameEntity implements Comparable { sbLong.append(keyword.replace(":", " ")).append("\r\n"); } else if (keyword.startsWith("Madness")) { String[] parts = keyword.split(":"); - sbLong.append(parts[0]).append(" ").append(ManaCostParser.parse(parts[1])).append("\r\n"); + // If no colon exists in Madness keyword, it must have been granted and assumed the cost from host + if (parts.length < 2) { + sbLong.append(parts[0]).append(" ").append(this.getManaCost()).append("\r\n"); + } else { + sbLong.append(parts[0]).append(" ").append(ManaCostParser.parse(parts[1])).append("\r\n"); + } } else if (keyword.startsWith("Devour")) { final String[] parts = keyword.split(":"); final String extra = parts.length > 2 ? parts[2] : "";