- Fixed CostChange abilities affecting unless costs.

This commit is contained in:
Sloth
2012-09-04 19:32:50 +00:00
parent 098e81839e
commit 52bb1f9b75
2 changed files with 6 additions and 10 deletions

View File

@@ -31,7 +31,8 @@ import forge.Singletons;
import forge.card.cardfactory.CardFactoryUtil; import forge.card.cardfactory.CardFactoryUtil;
import forge.card.cost.Cost; import forge.card.cost.Cost;
import forge.card.cost.CostUtil; import forge.card.cost.CostUtil;
import forge.card.spellability.AbilityActivated; import forge.card.spellability.Ability;
import forge.card.spellability.AbilityStatic;
import forge.card.spellability.AbilitySub; import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
import forge.card.spellability.SpellAbilityCondition; import forge.card.spellability.SpellAbilityCondition;
@@ -2739,18 +2740,12 @@ public class AbilityFactory {
}*/ }*/
final Cost cost = new Cost(source, unlessCost, true); final Cost cost = new Cost(source, unlessCost, true);
final SpellAbility ability = new AbilityActivated(source, cost, null) { final Ability ability = new AbilityStatic(source, cost, null) {
private static final long serialVersionUID = 2502577469482777440L;
@Override @Override
public void resolve() { public void resolve() {
// nothing to do here // nothing to do here
} }
@Override
public AbilityActivated getCopy() {
return null;
}
}; };
final Command paidCommand = new Command() { final Command paidCommand = new Command() {

View File

@@ -23,6 +23,7 @@ import forge.Card;
import forge.card.cardfactory.CardFactoryUtil; import forge.card.cardfactory.CardFactoryUtil;
import forge.card.mana.ManaCost; import forge.card.mana.ManaCost;
import forge.card.mana.ManaCostShard; import forge.card.mana.ManaCostShard;
import forge.card.spellability.AbilityActivated;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
import forge.card.spellability.Target; import forge.card.spellability.Target;
import forge.game.player.Player; import forge.game.player.Player;
@@ -66,7 +67,7 @@ public class StaticAbilityCostChange {
if (params.get("Type").equals("Spell") && !sa.isSpell()) { if (params.get("Type").equals("Spell") && !sa.isSpell()) {
return originalCost; return originalCost;
} }
if (params.get("Type").equals("Ability") && !sa.isAbility()) { if (params.get("Type").equals("Ability") && !(sa instanceof AbilityActivated)) {
return originalCost; return originalCost;
} }
} }
@@ -162,7 +163,7 @@ public class StaticAbilityCostChange {
if (params.get("Type").equals("Spell") && !sa.isSpell()) { if (params.get("Type").equals("Spell") && !sa.isSpell()) {
return originalCost; return originalCost;
} }
if (params.get("Type").equals("Ability") && !sa.isAbility()) { if (params.get("Type").equals("Ability") && !(sa instanceof AbilityActivated)) {
return originalCost; return originalCost;
} }
if (params.get("Type").equals("Cycling") && !sa.isCycling()) { if (params.get("Type").equals("Cycling") && !sa.isCycling()) {