From b5864606a978da5cdc8a73715b634cd81c5cb84e Mon Sep 17 00:00:00 2001 From: jendave Date: Sun, 7 Aug 2011 00:59:41 +0000 Subject: [PATCH] - Added Condition to AF ChangeZone. - Converted Gift of Estates. --- res/cardsfolder/gift_of_estates.txt | 2 +- .../AbilityFactory_ChangeZone.java | 27 +++++++++---------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/res/cardsfolder/gift_of_estates.txt b/res/cardsfolder/gift_of_estates.txt index d543e085546..12034de2b51 100644 --- a/res/cardsfolder/gift_of_estates.txt +++ b/res/cardsfolder/gift_of_estates.txt @@ -2,7 +2,7 @@ Name:Gift of Estates ManaCost:1 W Types:Sorcery Text:no text -A:SP$ ChangeZone | Cost$ 1 W | IsPresent$ Land.YouCtrl | PresentCompare$ LTX | Origin$ Library | Destination$ Hand | ChangeType$ Plains | ChangeNum$ 3 | SpellDescription$ If an opponent controls more lands than you, search your library for up to three Plains cards and put them into your hand. +A:SP$ ChangeZone | Cost$ 1 W | ConditionPresent$ Land.YouCtrl | ConditionCompare$ LTX | Origin$ Library | Destination$ Hand | ChangeType$ Plains | ChangeNum$ 3 | SpellDescription$ If an opponent controls more lands than you, search your library for up to three Plains cards and put them into your hand. SVar:X:Count$Valid Land.YouDontCtrl SVar:Rarity:Uncommon SVar:Picture:http://resources.wizards.com/magic/cards/9ed/en-us/card84504.jpg diff --git a/src/forge/card/abilityFactory/AbilityFactory_ChangeZone.java b/src/forge/card/abilityFactory/AbilityFactory_ChangeZone.java index 5e0dadbb34c..c998adb0fe8 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_ChangeZone.java +++ b/src/forge/card/abilityFactory/AbilityFactory_ChangeZone.java @@ -186,11 +186,23 @@ public class AbilityFactory_ChangeZone { HashMap params = af.getMapParams(); String origin = params.get("Origin"); + if (!AbilityFactory.checkConditional(params, sa)){ + AbilityFactory.resolveSubAbility(sa); + return; + } + if (isHidden(origin, params.containsKey("Hidden")) && !params.containsKey("Ninjutsu")) changeHiddenOriginResolve(af, sa); else if (isKnown(origin) || params.containsKey("Ninjutsu")) changeKnownOriginResolve(af, sa); + + + if (af.hasSubAbility()){ + Ability_Sub abSub = sa.getSubAbility(); + if (abSub != null) + abSub.resolve(); + } } // ************************************************************************************* @@ -555,12 +567,6 @@ public class AbilityFactory_ChangeZone { if ((origin.contains("Library") && !destination.equals("Library")) || params.containsKey("Shuffle")) player.shuffle(); - - if (af.hasSubAbility()){ - Ability_Sub abSub = sa.getSubAbility(); - if (abSub != null) - abSub.resolve(); - } } private static void changeHiddenOriginResolveAI(AbilityFactory af, SpellAbility sa, Player player){ @@ -658,13 +664,6 @@ public class AbilityFactory_ChangeZone { else GuiUtils.getChoice(picked, new String[]{ "" } ); } - - if (af.hasSubAbility()){ - Ability_Sub abSub = sa.getSubAbility(); - if (abSub != null){ - abSub.resolve(); - } - } } // *********** Utility functions for Hidden ******************** @@ -1198,7 +1197,7 @@ public class AbilityFactory_ChangeZone { if (af.hasSubAbility()){ Ability_Sub abSub = sa.getSubAbility(); if (abSub != null){ - abSub.resolve(); + //moved to general resolve } else{ String DrawBack = af.getMapParams().get("SubAbility");