diff --git a/src/forge/AbilityFactory.java b/src/forge/AbilityFactory.java index e6a47e8e5a2..077f5abf167 100644 --- a/src/forge/AbilityFactory.java +++ b/src/forge/AbilityFactory.java @@ -325,8 +325,8 @@ public class AbilityFactory { SA = AbilityFactory_PermanentState.createAbilityTapAll(this); else if (isSp) SA = AbilityFactory_PermanentState.createSpellTapAll(this); - //else if (isDb) - //SA = AbilityFactory_PermanentState.createDrawbackUntapAll(this); + else if (isDb) + SA = AbilityFactory_PermanentState.createDrawbackTapAll(this); } if (API.equals("Regenerate")){ diff --git a/src/forge/AbilityFactory_PermanentState.java b/src/forge/AbilityFactory_PermanentState.java index d141e5925c0..9a76856b37f 100644 --- a/src/forge/AbilityFactory_PermanentState.java +++ b/src/forge/AbilityFactory_PermanentState.java @@ -353,6 +353,31 @@ public class AbilityFactory_PermanentState { return dbTap; } + public static SpellAbility createDrawbackTapAll(final AbilityFactory AF){ + final SpellAbility dbTap = new Ability_Sub(AF.getHostCard(), AF.getAbTgt()){ + private static final long serialVersionUID = -4990932993654533449L; + + final AbilityFactory af = AF; + + @Override + public String getStackDescription(){ + return tapAllStackDescription(af, this); + } + + @Override + public void resolve() { + tapAllResolve(af, this); + } + + @Override + public boolean chkAI_Drawback() { + return tapAllPlayDrawbackAI(af, this); + } + + }; + return dbTap; + } + public static String tapStackDescription(AbilityFactory af, SpellAbility sa){ // when getStackDesc is called, just build exactly what is happening StringBuilder sb = new StringBuilder(); @@ -789,5 +814,9 @@ public class AbilityFactory_PermanentState { return sb.toString(); } + private static boolean tapAllPlayDrawbackAI(final AbilityFactory af, SpellAbility sa){ + return true; + } + //Phasing? Something else? Who knows! }