From 392747bb374e7a9669e326fd75d15c290564d73d Mon Sep 17 00:00:00 2001 From: moomarc Date: Sat, 8 Sep 2012 16:36:43 +0000 Subject: [PATCH] - Fixed Fork. It now correctly changes the color of the copied spell to red. --- res/cardsfolder/f/fork.txt | 2 +- .../forge/card/cardfactory/CardFactory.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/res/cardsfolder/f/fork.txt b/res/cardsfolder/f/fork.txt index d14b7ced1c2..92ee4d8174f 100644 --- a/res/cardsfolder/f/fork.txt +++ b/res/cardsfolder/f/fork.txt @@ -2,7 +2,7 @@ Name:Fork ManaCost:R R Types:Instant Text:no text -A:SP$ CopySpell | Cost$ R R | ValidTgts$ Instant,Sorcery | SpellDescription$ Copy target instant or sorcery spell. You may choose new targets for the copy. +A:SP$ CopySpell | Cost$ R R | ValidTgts$ Instant,Sorcery | CopyIsColor$ Red | OverwriteColors$ True | SpellDescription$ Copy target instant or sorcery spell, except that the copy is red. You may choose new targets for the copy. SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/fork.jpg diff --git a/src/main/java/forge/card/cardfactory/CardFactory.java b/src/main/java/forge/card/cardfactory/CardFactory.java index e22633d9c8e..a59e2fed546 100644 --- a/src/main/java/forge/card/cardfactory/CardFactory.java +++ b/src/main/java/forge/card/cardfactory/CardFactory.java @@ -19,6 +19,8 @@ package forge.card.cardfactory; import java.io.File; import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; import java.util.List; import forge.AllZone; import forge.Card; @@ -158,6 +160,23 @@ public class CardFactory implements CardFactoryInterface { return; }*/ final Card c = AllZone.getCardFactory().copyCard(original); + + // change the color of the copy (eg: Fork) + final SpellAbility sourceSA = source.getFirstSpellAbility(); + if (sourceSA.getAbilityFactory().getMapParams().containsKey("CopyIsColor")) { + String tmp = ""; + final HashMap params = sourceSA.getAbilityFactory().getMapParams(); + final String newColor = params.get("CopyIsColor"); + if (newColor.equals("ChosenColor")) { + tmp = CardUtil.getShortColorsString(source.getChosenColor()); + } else { + tmp = CardUtil.getShortColorsString(new ArrayList(Arrays.asList(newColor.split(",")))); + } + final String finalColors = tmp; + + c.addColor(finalColors, c, !params.containsKey("OverwriteColors"), true); + } + c.addController(controller); c.setCopiedSpell(true);