diff --git a/src/forge/MagicStack.java b/src/forge/MagicStack.java index 3381fa0a908..cd63e532c07 100644 --- a/src/forge/MagicStack.java +++ b/src/forge/MagicStack.java @@ -701,11 +701,11 @@ public class MagicStack extends MyObservable { } }); } - if(sa.getAbilityFactory() != null) - { + if(sa.getAbilityFactory() != null) { AbilityFactory.handleRemembering(sa.getAbilityFactory()); - } - sa.resolve(); + AbilityFactory.resolve(sa); + } else + sa.resolve(); } else { // TODO: Spell fizzles, what's the best way to alert player? Log.debug(source.getName() + " ability fizzles."); diff --git a/src/forge/card/abilityFactory/AbilityFactory.java b/src/forge/card/abilityFactory/AbilityFactory.java index c47d54592ea..9c9ecf175de 100644 --- a/src/forge/card/abilityFactory/AbilityFactory.java +++ b/src/forge/card/abilityFactory/AbilityFactory.java @@ -1237,12 +1237,13 @@ public class AbilityFactory { return Card.compare(left, compare, right); } + /* public static void resolveSubAbility(SpellAbility sa){ Ability_Sub abSub = sa.getSubAbility(); if (abSub != null){ abSub.resolve(); } - } + }*/ public static void handleRemembering(AbilityFactory AF) { @@ -1278,4 +1279,18 @@ public class AbilityFactory { } } + public static void resolve(SpellAbility sa) { + if (sa == null) return; + AbilityFactory af = sa.getAbilityFactory(); + HashMap params = af.getMapParams(); + + //check conditions + if (AbilityFactory.checkConditional(params, sa)) + sa.resolve(); + + //try to resolve subabilities (see null check above) + Ability_Sub abSub = sa.getSubAbility(); + resolve(abSub); + } + }//end class AbilityFactory \ No newline at end of file diff --git a/src/forge/card/abilityFactory/AbilityFactory_AlterLife.java b/src/forge/card/abilityFactory/AbilityFactory_AlterLife.java index 4131d051afd..03325ba5dd7 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_AlterLife.java +++ b/src/forge/card/abilityFactory/AbilityFactory_AlterLife.java @@ -278,11 +278,6 @@ public class AbilityFactory_AlterLife { public static void gainLifeResolve(final AbilityFactory af, final SpellAbility sa){ HashMap params = af.getMapParams(); - - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } int lifeAmount = AbilityFactory.calculateAmount(af.getHostCard(), params.get("LifeAmount"), sa); ArrayList tgtPlayers; @@ -296,8 +291,6 @@ public class AbilityFactory_AlterLife { for(Player p : tgtPlayers) if (tgt == null || p.canTarget(af.getHostCard())) p.gainLife(lifeAmount, sa.getSourceCard()); - - AbilityFactory.resolveSubAbility(sa); } // ************************************************************************* @@ -559,11 +552,6 @@ public class AbilityFactory_AlterLife { public static void loseLifeResolve(final AbilityFactory af, final SpellAbility sa){ HashMap params = af.getMapParams(); - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } - int lifeAmount = AbilityFactory.calculateAmount(af.getHostCard(), params.get("LifeAmount"), sa); ArrayList tgtPlayers; @@ -578,7 +566,6 @@ public class AbilityFactory_AlterLife { if (tgt == null || p.canTarget(af.getHostCard())) p.loseLife(lifeAmount, sa.getSourceCard()); - AbilityFactory.resolveSubAbility(sa); } // ************************************************************************* @@ -721,12 +708,6 @@ public class AbilityFactory_AlterLife { } private static void poisonResolve(final AbilityFactory af, final SpellAbility sa, int num){ - HashMap params = af.getMapParams(); - - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } ArrayList tgtPlayers; @@ -739,9 +720,6 @@ public class AbilityFactory_AlterLife { for(Player p : tgtPlayers) if (tgt == null || p.canTarget(af.getHostCard())) p.addPoisonCounters(num); - - - AbilityFactory.resolveSubAbility(sa); } private static String poisonStackDescription(AbilityFactory af, SpellAbility sa){ @@ -1072,11 +1050,6 @@ public class AbilityFactory_AlterLife { private static void setLifeResolve(final AbilityFactory af, final SpellAbility sa) { HashMap params = af.getMapParams(); - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } - int lifeAmount = AbilityFactory.calculateAmount(af.getHostCard(), params.get("LifeAmount"), sa); ArrayList tgtPlayers; @@ -1089,8 +1062,6 @@ public class AbilityFactory_AlterLife { for(Player p : tgtPlayers) if(tgt == null || p.canTarget(af.getHostCard())) p.setLife(lifeAmount, sa.getSourceCard()); - - AbilityFactory.resolveSubAbility(sa); } }//end class AbilityFactory_AlterLife diff --git a/src/forge/card/abilityFactory/AbilityFactory_Animate.java b/src/forge/card/abilityFactory/AbilityFactory_Animate.java index 4f15b791dc6..42cbcf36e93 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Animate.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Animate.java @@ -347,14 +347,6 @@ public class AbilityFactory_Animate { else AllZone.EndOfTurn.addUntil(unanimate); } } - - if(af.hasSubAbility()){ - Ability_Sub abSub = sa.getSubAbility(); - if(abSub != null) { - abSub.resolve(); - } - } - } private static long doAnimate(Card c, AbilityFactory af, int power, int toughness, ArrayList types, String colors, ArrayList keywords) { diff --git a/src/forge/card/abilityFactory/AbilityFactory_ChangeZone.java b/src/forge/card/abilityFactory/AbilityFactory_ChangeZone.java index 1f4efc14d32..a7a8c9ecbb3 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_ChangeZone.java +++ b/src/forge/card/abilityFactory/AbilityFactory_ChangeZone.java @@ -186,23 +186,11 @@ 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(); - } } // ************************************************************************************* @@ -1208,8 +1196,6 @@ public class AbilityFactory_ChangeZone { } } } - - AbilityFactory.resolveSubAbility(sa); } // **************************** Known Utility ************************************** @@ -1517,8 +1503,6 @@ public class AbilityFactory_ChangeZone { if (cards.getOwner(AllZone.ComputerPlayer).size() > 0) AllZone.ComputerPlayer.shuffle(); } - - AbilityFactory.resolveSubAbility(sa); } diff --git a/src/forge/card/abilityFactory/AbilityFactory_Choose.java b/src/forge/card/abilityFactory/AbilityFactory_Choose.java index e4f216dc80d..9e9e785449c 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Choose.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Choose.java @@ -200,13 +200,6 @@ public class AbilityFactory_Choose { } } } - - if(af.hasSubAbility()) { - Ability_Sub abSub = sa.getSubAbility(); - if (abSub != null) { - abSub.resolve(); - } - } } // ************************************************************************* diff --git a/src/forge/card/abilityFactory/AbilityFactory_Clash.java b/src/forge/card/abilityFactory/AbilityFactory_Clash.java index 8a072b5e726..01960736850 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Clash.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Clash.java @@ -168,11 +168,6 @@ public class AbilityFactory_Clash { runParams.put("Won","False"); } - //Oldstyle drawbacks shouldn't be necessary anymore? - if(AF.hasSubAbility()) - if (SA.getSubAbility() != null) - SA.getSubAbility().resolve(); - AllZone.TriggerHandler.runTrigger("Clashed",runParams); } @@ -334,10 +329,6 @@ public class AbilityFactory_Clash { //runParams.put("Won","False"); } - if(af.hasSubAbility() && sa.getSubAbility() != null) { - sa.getSubAbility().resolve(); - } - //AllZone.TriggerHandler.runTrigger("FlipsACoin",runParams); } diff --git a/src/forge/card/abilityFactory/AbilityFactory_Cleanup.java b/src/forge/card/abilityFactory/AbilityFactory_Cleanup.java index 822658b267d..a6c147d1287 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Cleanup.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Cleanup.java @@ -40,7 +40,5 @@ public class AbilityFactory_Cleanup { if (params.containsKey("ClearRemembered")) sa.getSourceCard().clearRemembered(); - - AbilityFactory.resolveSubAbility(sa); } } diff --git a/src/forge/card/abilityFactory/AbilityFactory_Combat.java b/src/forge/card/abilityFactory/AbilityFactory_Combat.java index ade2f338c98..7a7d33ee554 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Combat.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Combat.java @@ -171,11 +171,8 @@ public class AbilityFactory_Combat { } public static void fogResolve(final AbilityFactory af, final SpellAbility sa){ - HashMap params = af.getMapParams(); // Expand Fog keyword here depending on what we need out of it. AllZone.GameInfo.setPreventCombatDamageThisTurn(true); - - AbilityFactory.resolveSubAbility(sa); } } diff --git a/src/forge/card/abilityFactory/AbilityFactory_Copy.java b/src/forge/card/abilityFactory/AbilityFactory_Copy.java index 7a12929309b..7b11adc3b12 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Copy.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Copy.java @@ -351,13 +351,6 @@ public class AbilityFactory_Copy { } }//end canTarget - - if(af.hasSubAbility()) { - Ability_Sub abSub = sa.getSubAbility(); - if(abSub != null) { - abSub.resolve(); - } - } }//end foreach Card }//end resolve @@ -514,13 +507,6 @@ public class AbilityFactory_Copy { //end copied from Twincast }//end canTarget - - if(af.hasSubAbility()) { - Ability_Sub abSub = sa.getSubAbility(); - if(abSub != null) { - abSub.resolve(); - } - } }//end foreach SpellAbility }//end resolve diff --git a/src/forge/card/abilityFactory/AbilityFactory_CounterMagic.java b/src/forge/card/abilityFactory/AbilityFactory_CounterMagic.java index db9afa686ab..f3e9135dfd8 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_CounterMagic.java +++ b/src/forge/card/abilityFactory/AbilityFactory_CounterMagic.java @@ -273,10 +273,6 @@ public class AbilityFactory_CounterMagic { } private void counterResolve(final AbilityFactory af, final SpellAbility sa) { - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } // TODO: Before this resolves we should see if any of our targets are still on the stack Target tgt = sa.getTarget(); @@ -352,8 +348,6 @@ public class AbilityFactory_CounterMagic { } } } - - AbilityFactory.resolveSubAbility(sa); }//end counterResolve private void doPowerSink(Player p) { diff --git a/src/forge/card/abilityFactory/AbilityFactory_Counters.java b/src/forge/card/abilityFactory/AbilityFactory_Counters.java index 33ae8b4690f..0420ef925c2 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Counters.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Counters.java @@ -483,10 +483,6 @@ public class AbilityFactory_Counters { public static void putResolve(final AbilityFactory af, final SpellAbility sa){ HashMap params = af.getMapParams(); - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } Card card = af.getHostCard(); String type = params.get("CounterType"); @@ -509,8 +505,6 @@ public class AbilityFactory_Counters { tgtCard.addCounterFromNonEffect(Counters.valueOf(type), counterAmount); } } - - AbilityFactory.resolveSubAbility(sa); } // ******************************************* @@ -761,10 +755,6 @@ public class AbilityFactory_Counters { public static void removeResolve(final AbilityFactory af, final SpellAbility sa){ HashMap params = af.getMapParams(); - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } Card card = af.getHostCard(); String type = params.get("CounterType"); @@ -792,8 +782,6 @@ public class AbilityFactory_Counters { } tgtCard.subtractCounter(Counters.valueOf(type), counterAmount); } - - AbilityFactory.resolveSubAbility(sa); } // ******************************************* @@ -931,10 +919,6 @@ public class AbilityFactory_Counters { private static void proliferateResolve(final AbilityFactory AF, SpellAbility sa) { HashMap params = AF.getMapParams(); - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } CardList hperms = AllZoneUtil.getPlayerCardsInPlay(AllZone.HumanPlayer); hperms = hperms.filter(new CardListFilter() { @@ -1075,8 +1059,6 @@ public class AbilityFactory_Counters { AllZone.HumanPlayer.addPoisonCounters(1); } //comp - - AbilityFactory.resolveSubAbility(sa); } // ******************************************* @@ -1282,11 +1264,7 @@ public class AbilityFactory_Counters { } public static void putAllResolve(final AbilityFactory af, final SpellAbility sa) { - HashMap params = af.getMapParams(); - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } + HashMap params = af.getMapParams(); String type = params.get("CounterType"); int counterAmount = AbilityFactory.calculateAmount(af.getHostCard(), params.get("CounterNum"), sa); @@ -1307,7 +1285,5 @@ public class AbilityFactory_Counters { else // adding counters to something like re-suspend cards tgtCard.addCounterFromNonEffect(Counters.valueOf(type), counterAmount); } - - AbilityFactory.resolveSubAbility(sa); } } diff --git a/src/forge/card/abilityFactory/AbilityFactory_DealDamage.java b/src/forge/card/abilityFactory/AbilityFactory_DealDamage.java index 345e6ea6922..880186c0957 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_DealDamage.java +++ b/src/forge/card/abilityFactory/AbilityFactory_DealDamage.java @@ -515,10 +515,6 @@ public class AbilityFactory_DealDamage { private void doResolve(SpellAbility saMe) { HashMap params = AF.getMapParams(); - if (!AbilityFactory.checkConditional(params, saMe)){ - AbilityFactory.resolveSubAbility(saMe); - return; - } int dmg = getNumDamage(saMe); @@ -556,8 +552,6 @@ public class AbilityFactory_DealDamage { } } } - - AbilityFactory.resolveSubAbility(saMe); } // ****************************************************************************************************** @@ -857,7 +851,5 @@ public class AbilityFactory_DealDamage { else { //anything else to go here? } - - AbilityFactory.resolveSubAbility(sa); } } diff --git a/src/forge/card/abilityFactory/AbilityFactory_DelayedTrigger.java b/src/forge/card/abilityFactory/AbilityFactory_DelayedTrigger.java index c742112ed69..a1125c1b85e 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_DelayedTrigger.java +++ b/src/forge/card/abilityFactory/AbilityFactory_DelayedTrigger.java @@ -88,9 +88,5 @@ public class AbilityFactory_DelayedTrigger { Trigger delTrig = TriggerHandler.parseTrigger(mapParams,AF.getHostCard()); AllZone.TriggerHandler.registerDelayedTrigger(delTrig); - - if(AF.hasSubAbility()) - if(SA.getSubAbility() != null) - SA.getSubAbility().resolve(); } } diff --git a/src/forge/card/abilityFactory/AbilityFactory_Destroy.java b/src/forge/card/abilityFactory/AbilityFactory_Destroy.java index 491f7d66be0..5c72a798ce3 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Destroy.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Destroy.java @@ -369,11 +369,6 @@ public class AbilityFactory_Destroy { final boolean noRegen = params.containsKey("NoRegen"); Card card = sa.getSourceCard(); - - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } ArrayList tgtCards; @@ -392,8 +387,6 @@ public class AbilityFactory_Destroy { AllZone.GameAction.destroy(tgtC); } } - - AbilityFactory.resolveSubAbility(sa); } // ********************************************************************************* @@ -605,11 +598,6 @@ public class AbilityFactory_Destroy { Card card = sa.getSourceCard(); - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } - String Valid = ""; if(params.containsKey("ValidCards")) @@ -638,7 +626,5 @@ public class AbilityFactory_Destroy { if (AllZone.GameAction.destroy(list.get(i)) && remDestroyed) card.addRemembered(list.get(i)); } - - AbilityFactory.resolveSubAbility(sa); } } diff --git a/src/forge/card/abilityFactory/AbilityFactory_Effect.java b/src/forge/card/abilityFactory/AbilityFactory_Effect.java index cd17e829b98..ba6f58ac628 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Effect.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Effect.java @@ -265,12 +265,5 @@ public class AbilityFactory_Effect { // TODO: Add targeting to the effect so it knows who it's dealing with AllZone.GameAction.moveToPlay(eff); - - if (af.hasSubAbility()){ - Ability_Sub abSub = sa.getSubAbility(); - if (abSub != null){ - abSub.resolve(); - } - } } } diff --git a/src/forge/card/abilityFactory/AbilityFactory_EndGameCondition.java b/src/forge/card/abilityFactory/AbilityFactory_EndGameCondition.java index 43f4ead0857..9be471a6d39 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_EndGameCondition.java +++ b/src/forge/card/abilityFactory/AbilityFactory_EndGameCondition.java @@ -1,7 +1,6 @@ package forge.card.abilityFactory; import java.util.ArrayList; -import java.util.HashMap; import forge.AllZone; @@ -164,11 +163,6 @@ public class AbilityFactory_EndGameCondition { } public static void winsGameResolve(final AbilityFactory af, final SpellAbility sa){ - HashMap params = af.getMapParams(); - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } Card card = af.getHostCard(); @@ -176,13 +170,6 @@ public class AbilityFactory_EndGameCondition { for(Player p : players) p.altWinConditionMet(card.getName()); - - if (af.hasSubAbility()){ - Ability_Sub abSub = sa.getSubAbility(); - if (abSub != null){ - abSub.resolve(); - } - } } // *********************************************************************************************** @@ -364,11 +351,6 @@ public class AbilityFactory_EndGameCondition { } public static void losesGameResolve(final AbilityFactory af, final SpellAbility sa){ - HashMap params = af.getMapParams(); - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } Card card = af.getHostCard(); @@ -383,13 +365,6 @@ public class AbilityFactory_EndGameCondition { for(Player p : players) p.altLoseConditionMet(card.getName()); - - if (af.hasSubAbility()){ - Ability_Sub abSub = sa.getSubAbility(); - if (abSub != null){ - abSub.resolve(); - } - } } } diff --git a/src/forge/card/abilityFactory/AbilityFactory_GainControl.java b/src/forge/card/abilityFactory/AbilityFactory_GainControl.java index af465f8d5a8..92b8c1e2638 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_GainControl.java +++ b/src/forge/card/abilityFactory/AbilityFactory_GainControl.java @@ -294,14 +294,6 @@ public class AbilityFactory_GainControl { hostCard.addGainControlReleaseCommand(getLoseControlCommand(0)); }//end foreach target - - if (AF.hasSubAbility()){ - Ability_Sub abSub = sa.getSubAbility(); - if (abSub != null){ - abSub.resolve(); - } - // doesn't support old style drawbacks - } } private Command getDestroyCommand(final int i) { diff --git a/src/forge/card/abilityFactory/AbilityFactory_Mana.java b/src/forge/card/abilityFactory/AbilityFactory_Mana.java index 7d8c4a643e3..a924ef04b69 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Mana.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Mana.java @@ -468,11 +468,8 @@ public class AbilityFactory_Mana { public static void doDrawback(AbilityFactory af, Ability_Mana abMana, Card card){ // if mana production has any type of SubAbility, undoable=false - if (af.hasSubAbility()){ + if (af.hasSubAbility()) abMana.setUndoable(false); - Ability_Sub abSub = abMana.getSubAbility(); - abSub.resolve(); - } } private static boolean hasUrzaLands(Player p){ diff --git a/src/forge/card/abilityFactory/AbilityFactory_PermanentState.java b/src/forge/card/abilityFactory/AbilityFactory_PermanentState.java index 61aa9bf527e..a77883b96ad 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_PermanentState.java +++ b/src/forge/card/abilityFactory/AbilityFactory_PermanentState.java @@ -384,8 +384,6 @@ public class AbilityFactory_PermanentState { tgtC.untap(); } } - - AbilityFactory.resolveSubAbility(sa); } public static void chooseUntapUpTo(AbilityFactory af, SpellAbility sa, HashMap params){ @@ -772,8 +770,6 @@ public class AbilityFactory_PermanentState { if (AllZoneUtil.isCardInPlay(tgtC) && (tgt == null || CardFactoryUtil.canTarget(af.getHostCard(), tgtC))) tgtC.tap(); } - - AbilityFactory.resolveSubAbility(sa); } // **************************************** @@ -876,8 +872,6 @@ public class AbilityFactory_PermanentState { list = list.getValidCards(Valid.split(","), card.getController(), card); for(int i = 0; i < list.size(); i++) list.get(i).untap(); - - AbilityFactory.resolveSubAbility(sa); } private static boolean untapAllCanPlayAI(final AbilityFactory af, final SpellAbility sa) { @@ -1017,8 +1011,6 @@ public class AbilityFactory_PermanentState { list = list.getValidCards(Valid.split(","), card.getController(), card); for(int i = 0; i < list.size(); i++) list.get(i).tap(); - - AbilityFactory.resolveSubAbility(sa); } private static boolean tapAllCanPlayAI(final AbilityFactory af, final SpellAbility sa) { @@ -1368,8 +1360,6 @@ public class AbilityFactory_PermanentState { else tgtC.untap(); } } - - AbilityFactory.resolveSubAbility(sa); } //Phasing? Something else? Who knows! diff --git a/src/forge/card/abilityFactory/AbilityFactory_PreventDamage.java b/src/forge/card/abilityFactory/AbilityFactory_PreventDamage.java index bb718c1cc51..eef205e7d91 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_PreventDamage.java +++ b/src/forge/card/abilityFactory/AbilityFactory_PreventDamage.java @@ -313,12 +313,5 @@ public class AbilityFactory_PreventDamage { } } } - - if (af.hasSubAbility()) { - Ability_Sub abSub = sa.getSubAbility(); - if(abSub != null) { - abSub.resolve(); - } - } }//doResolve } diff --git a/src/forge/card/abilityFactory/AbilityFactory_Pump.java b/src/forge/card/abilityFactory/AbilityFactory_Pump.java index 812a0439e82..d70d95f3677 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Pump.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Pump.java @@ -694,9 +694,6 @@ public class AbilityFactory_Pump { else AllZone.EndOfTurn.addUntil(untilEOT); } } - - AbilityFactory.resolveSubAbility(sa); - } @@ -893,9 +890,7 @@ public class AbilityFactory_Pump { AllZone.EndOfTurn.addUntil(untilEOT); } - } - - AbilityFactory.resolveSubAbility(sa); + } } private boolean pumpAllTriggerAI(AbilityFactory af, SpellAbility sa, boolean mandatory){ diff --git a/src/forge/card/abilityFactory/AbilityFactory_Regenerate.java b/src/forge/card/abilityFactory/AbilityFactory_Regenerate.java index 4d526b11727..4c39ee2efc6 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Regenerate.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Regenerate.java @@ -335,12 +335,5 @@ public class AbilityFactory_Regenerate { AllZone.EndOfTurn.addUntil(untilEOT); } } - - if (af.hasSubAbility()) { - Ability_Sub abSub = sa.getSubAbility(); - if(abSub != null) { - abSub.resolve(); - } - } }//doResolve } diff --git a/src/forge/card/abilityFactory/AbilityFactory_Reveal.java b/src/forge/card/abilityFactory/AbilityFactory_Reveal.java index c5d978e2022..c4b725cb990 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Reveal.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Reveal.java @@ -377,13 +377,6 @@ public class AbilityFactory_Reveal { } }//end if canTarget }//end foreach player - - if (af.hasSubAbility()){ - Ability_Sub abSub = sa.getSubAbility(); - if (abSub != null) { - abSub.resolve(); - } - } } }//end resolve @@ -628,15 +621,7 @@ public class AbilityFactory_Reveal { } } - } - - if(af.hasSubAbility()) { - Ability_Sub abSub = sa.getSubAbility(); - if(abSub != null) { - abSub.resolve(); - } - } - + } } //********************************************************************** @@ -744,8 +729,6 @@ public class AbilityFactory_Reveal { p.scry(num); } } - - AbilityFactory.resolveSubAbility(sa); } private static boolean scryTargetAI(AbilityFactory af, SpellAbility sa) { @@ -1005,7 +988,6 @@ public class AbilityFactory_Reveal { if (tgt == null || p.canTarget(AF.getHostCard())) AllZoneUtil.rearrangeTopOfLibrary(AF.getHostCard(), p, numCards, shuffle); } - AbilityFactory.resolveSubAbility(sa); } }//end class AbilityFactory_Reveal diff --git a/src/forge/card/abilityFactory/AbilityFactory_Sacrifice.java b/src/forge/card/abilityFactory/AbilityFactory_Sacrifice.java index b2a64472ad0..2d4bbf77033 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Sacrifice.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Sacrifice.java @@ -275,11 +275,6 @@ public class AbilityFactory_Sacrifice { HashMap params = af.getMapParams(); Card card = sa.getSourceCard(); - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } - // Expand Sacrifice keyword here depending on what we need out of it. String num = params.containsKey("Amount") ? params.get("Amount") : "1"; int amount = AbilityFactory.calculateAmount(card, num, sa); @@ -327,8 +322,6 @@ public class AbilityFactory_Sacrifice { sacrificeHuman(p, amount, valid, sa, msg); } } - - AbilityFactory.resolveSubAbility(sa); } diff --git a/src/forge/card/abilityFactory/AbilityFactory_Token.java b/src/forge/card/abilityFactory/AbilityFactory_Token.java index 002d5d5952c..3288041d375 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Token.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Token.java @@ -452,7 +452,5 @@ public class AbilityFactory_Token extends AbilityFactory { } } } - - AbilityFactory.resolveSubAbility(sa); } } diff --git a/src/forge/card/abilityFactory/AbilityFactory_Turns.java b/src/forge/card/abilityFactory/AbilityFactory_Turns.java index 4b2a3ba4ef9..1e4763fba8e 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_Turns.java +++ b/src/forge/card/abilityFactory/AbilityFactory_Turns.java @@ -180,13 +180,6 @@ public class AbilityFactory_Turns { } } } - - if(af.hasSubAbility()) { - Ability_Sub abSub = sa.getSubAbility(); - if(abSub != null) { - abSub.resolve(); - } - } } }//end class AbilityFactory_Turns diff --git a/src/forge/card/abilityFactory/AbilityFactory_ZoneAffecting.java b/src/forge/card/abilityFactory/AbilityFactory_ZoneAffecting.java index eed6e27c1df..6c25cfa6092 100644 --- a/src/forge/card/abilityFactory/AbilityFactory_ZoneAffecting.java +++ b/src/forge/card/abilityFactory/AbilityFactory_ZoneAffecting.java @@ -341,10 +341,6 @@ public class AbilityFactory_ZoneAffecting { public static void drawResolve(final AbilityFactory af, final SpellAbility sa){ HashMap params = af.getMapParams(); - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } Card source = sa.getSourceCard(); int numCards = 1; @@ -392,8 +388,6 @@ public class AbilityFactory_ZoneAffecting { p.drawCards(numCards); } - - AbilityFactory.resolveSubAbility(sa); } //********************************************************************** @@ -668,11 +662,6 @@ public class AbilityFactory_ZoneAffecting { public static void millResolve(final AbilityFactory af, final SpellAbility sa){ HashMap params = af.getMapParams(); - - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } int numCards = AbilityFactory.calculateAmount(sa.getSourceCard(), params.get("NumCards"), sa); @@ -691,8 +680,6 @@ public class AbilityFactory_ZoneAffecting { for(Player p : tgtPlayers) if (tgt == null || p.canTarget(af.getHostCard())) p.mill(numCards, destination); - - AbilityFactory.resolveSubAbility(sa); } ////////////////////// @@ -804,11 +791,6 @@ public class AbilityFactory_ZoneAffecting { private static void discardResolve(final AbilityFactory af, final SpellAbility sa){ Card source = sa.getSourceCard(); HashMap params = af.getMapParams(); - - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } String mode = params.get("Mode"); @@ -932,8 +914,6 @@ public class AbilityFactory_ZoneAffecting { } } } - - AbilityFactory.resolveSubAbility(sa); } private static String discardStackDescription(AbilityFactory af, SpellAbility sa){ @@ -1312,11 +1292,6 @@ public class AbilityFactory_ZoneAffecting { Card host = af.getHostCard(); HashMap params = af.getMapParams(); boolean optional = params.containsKey("Optional"); - - if (!AbilityFactory.checkConditional(params, sa)){ - AbilityFactory.resolveSubAbility(sa); - return; - } ArrayList tgtPlayers; @@ -1336,11 +1311,6 @@ public class AbilityFactory_ZoneAffecting { } } } - - if(af.hasSubAbility()) { - Ability_Sub abSub = sa.getSubAbility(); - if(abSub != null) abSub.resolve(); - } } }//end class AbilityFactory_ZoneAffecting