Added generic AlternateCostSourceAbility. Some adjustments to alternate cost handling.

This commit is contained in:
LevelX2 2014-02-18 14:39:33 +01:00
parent 0074f2a487
commit 6049a69348
7 changed files with 209 additions and 14 deletions

View file

@ -58,6 +58,7 @@ import mage.game.command.Emblem;
/**
*
* @author BetaSteward_at_googlemail.com
* @param <T>
*/
public abstract class AbilityImpl<T extends AbilityImpl<T>> implements Ability {
@ -204,9 +205,12 @@ public abstract class AbilityImpl<T extends AbilityImpl<T>> implements Ability {
if (card != null) {
for (Ability ability : card.getAbilities()) {
if (ability instanceof AlternativeSourceCosts) {
if (((AlternativeSourceCosts)ability).askToActivateAlternativeCosts(this, game)) {
// only one alternative costs may be activated
break;
AlternativeSourceCosts alternativeSpellCosts = (AlternativeSourceCosts) ability;
if (alternativeSpellCosts.isAvailable(this, game)) {
if (alternativeSpellCosts.askToActivateAlternativeCosts(this, game)) {
// only one alternative costs may be activated
break;
}
}
}
if (ability instanceof OptionalAdditionalSourceCosts) {