add Lion's Eye Diamond (form Mirage)

This commit is contained in:
slapshot5
2011-12-21 13:31:14 +00:00
parent 79a2b79a6d
commit 3cf1361d35
4 changed files with 52 additions and 0 deletions

View File

@@ -1402,6 +1402,23 @@ public class AbilityFactory {
return false; return false;
} }
/**
* <p>
* isInstantSpeed. To be used for mana abilities like Lion's Eye Diamond
* </p>
*
* @param sa
* a {@link forge.card.spellability.SpellAbility} object.
* @return a boolean.
*/
public static boolean isInstantSpeed(final SpellAbility sa) {
if (sa.isAbility()) {
return sa.getRestrictions().isInstantSpeed();
}
return false;
}
// Utility functions used by the AFs // Utility functions used by the AFs
/** /**
* <p> * <p>

View File

@@ -100,6 +100,10 @@ public class SpellAbilityRestriction extends SpellAbilityVariables {
this.setSorcerySpeed(true); this.setSorcerySpeed(true);
} }
if (params.containsKey("InstantSpeed")) {
this.setInstantSpeed(true);
}
if (params.containsKey("PlayerTurn")) { if (params.containsKey("PlayerTurn")) {
this.setPlayerTurn(true); this.setPlayerTurn(true);
} }

View File

@@ -55,6 +55,9 @@ public class SpellAbilityVariables {
/** The b sorcery speed. */ /** The b sorcery speed. */
private boolean sorcerySpeed = false; private boolean sorcerySpeed = false;
/** The b instant speed. */
private boolean instantSpeed = false;
/** The b any player. */ /** The b any player. */
private boolean anyPlayer = false; private boolean anyPlayer = false;
@@ -243,6 +246,29 @@ public class SpellAbilityVariables {
return this.sorcerySpeed; return this.sorcerySpeed;
} }
/**
* <p>
* setInstantSpeed.
* </p>
*
* @param bSpeed
* a boolean.
*/
public final void setInstantSpeed(final boolean bSpeed) {
this.instantSpeed = bSpeed;
}
/**
* <p>
* getInstantSpeed.
* </p>
*
* @return a boolean.
*/
public final boolean isInstantSpeed() {
return this.instantSpeed;
}
/** /**
* <p> * <p>
* setAnyPlayer. * setAnyPlayer.

View File

@@ -27,6 +27,7 @@ import forge.Card;
import forge.CardUtil; import forge.CardUtil;
import forge.Constant; import forge.Constant;
import forge.Constant.Zone; import forge.Constant.Zone;
import forge.card.abilityfactory.AbilityFactory;
import forge.card.abilityfactory.AbilityFactoryMana; import forge.card.abilityfactory.AbilityFactoryMana;
import forge.card.mana.ManaCost; import forge.card.mana.ManaCost;
import forge.card.mana.ManaPool; import forge.card.mana.ManaPool;
@@ -93,6 +94,10 @@ public class InputPayManaCostUtil {
it.remove(); it.remove();
} else if (!InputPayManaCostUtil.canMake(ma, cneeded.toString())) { } else if (!InputPayManaCostUtil.canMake(ma, cneeded.toString())) {
it.remove(); it.remove();
} else if (AbilityFactory.isInstantSpeed(ma)) {
System.out.println("Removing ability from: "+card);
System.out.println("Ability: "+ma);
it.remove();
} }
if (!skipExpress) { if (!skipExpress) {