mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
- Centralized condition check and calling subabilities in AF resolve.
This commit is contained in:
@@ -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.");
|
||||
|
||||
@@ -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<String,String> 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
|
||||
@@ -278,11 +278,6 @@ public class AbilityFactory_AlterLife {
|
||||
|
||||
public static void gainLifeResolve(final AbilityFactory af, final SpellAbility sa){
|
||||
HashMap<String,String> params = af.getMapParams();
|
||||
|
||||
if (!AbilityFactory.checkConditional(params, sa)){
|
||||
AbilityFactory.resolveSubAbility(sa);
|
||||
return;
|
||||
}
|
||||
|
||||
int lifeAmount = AbilityFactory.calculateAmount(af.getHostCard(), params.get("LifeAmount"), sa);
|
||||
ArrayList<Player> 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<String,String> params = af.getMapParams();
|
||||
|
||||
if (!AbilityFactory.checkConditional(params, sa)){
|
||||
AbilityFactory.resolveSubAbility(sa);
|
||||
return;
|
||||
}
|
||||
|
||||
int lifeAmount = AbilityFactory.calculateAmount(af.getHostCard(), params.get("LifeAmount"), sa);
|
||||
|
||||
ArrayList<Player> 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<String,String> params = af.getMapParams();
|
||||
|
||||
if (!AbilityFactory.checkConditional(params, sa)){
|
||||
AbilityFactory.resolveSubAbility(sa);
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<Player> 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<String,String> params = af.getMapParams();
|
||||
|
||||
if (!AbilityFactory.checkConditional(params, sa)){
|
||||
AbilityFactory.resolveSubAbility(sa);
|
||||
return;
|
||||
}
|
||||
|
||||
int lifeAmount = AbilityFactory.calculateAmount(af.getHostCard(), params.get("LifeAmount"), sa);
|
||||
ArrayList<Player> 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
|
||||
|
||||
@@ -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<String> types, String colors, ArrayList<String> keywords) {
|
||||
|
||||
@@ -186,23 +186,11 @@ public class AbilityFactory_ChangeZone {
|
||||
HashMap<String,String> 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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -200,13 +200,6 @@ public class AbilityFactory_Choose {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(af.hasSubAbility()) {
|
||||
Ability_Sub abSub = sa.getSubAbility();
|
||||
if (abSub != null) {
|
||||
abSub.resolve();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// *************************************************************************
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +40,5 @@ public class AbilityFactory_Cleanup {
|
||||
|
||||
if (params.containsKey("ClearRemembered"))
|
||||
sa.getSourceCard().clearRemembered();
|
||||
|
||||
AbilityFactory.resolveSubAbility(sa);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,11 +171,8 @@ public class AbilityFactory_Combat {
|
||||
}
|
||||
|
||||
public static void fogResolve(final AbilityFactory af, final SpellAbility sa){
|
||||
HashMap<String,String> params = af.getMapParams();
|
||||
|
||||
// Expand Fog keyword here depending on what we need out of it.
|
||||
AllZone.GameInfo.setPreventCombatDamageThisTurn(true);
|
||||
|
||||
AbilityFactory.resolveSubAbility(sa);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -483,10 +483,6 @@ public class AbilityFactory_Counters {
|
||||
|
||||
public static void putResolve(final AbilityFactory af, final SpellAbility sa){
|
||||
HashMap<String,String> 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<String,String> 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<String,String> 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<String,String> params = af.getMapParams();
|
||||
if (!AbilityFactory.checkConditional(params, sa)){
|
||||
AbilityFactory.resolveSubAbility(sa);
|
||||
return;
|
||||
}
|
||||
HashMap<String,String> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -515,10 +515,6 @@ public class AbilityFactory_DealDamage {
|
||||
private void doResolve(SpellAbility saMe)
|
||||
{
|
||||
HashMap<String,String> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Card> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<String,String> 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<String,String> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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){
|
||||
|
||||
@@ -384,8 +384,6 @@ public class AbilityFactory_PermanentState {
|
||||
tgtC.untap();
|
||||
}
|
||||
}
|
||||
|
||||
AbilityFactory.resolveSubAbility(sa);
|
||||
}
|
||||
|
||||
public static void chooseUntapUpTo(AbilityFactory af, SpellAbility sa, HashMap<String,String> 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!
|
||||
|
||||
@@ -313,12 +313,5 @@ public class AbilityFactory_PreventDamage {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (af.hasSubAbility()) {
|
||||
Ability_Sub abSub = sa.getSubAbility();
|
||||
if(abSub != null) {
|
||||
abSub.resolve();
|
||||
}
|
||||
}
|
||||
}//doResolve
|
||||
}
|
||||
|
||||
@@ -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){
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -275,11 +275,6 @@ public class AbilityFactory_Sacrifice {
|
||||
HashMap<String,String> 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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -452,7 +452,5 @@ public class AbilityFactory_Token extends AbilityFactory {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AbilityFactory.resolveSubAbility(sa);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -341,10 +341,6 @@ public class AbilityFactory_ZoneAffecting {
|
||||
|
||||
public static void drawResolve(final AbilityFactory af, final SpellAbility sa){
|
||||
HashMap<String,String> 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<String,String> 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<String,String> 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<String,String> params = af.getMapParams();
|
||||
boolean optional = params.containsKey("Optional");
|
||||
|
||||
if (!AbilityFactory.checkConditional(params, sa)){
|
||||
AbilityFactory.resolveSubAbility(sa);
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<Player> 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
|
||||
|
||||
Reference in New Issue
Block a user