Change Spectacle cost to mana cost instead of just cost

master
Ada Joule 2019-01-16 17:40:44 +07:00
parent 357eeb284b
commit 542cbb9c89
2 changed files with 14 additions and 28 deletions

View File

@ -675,12 +675,12 @@ public enum MagicAbility {
card.add(ThisDiesTrigger.Afterlife(n)); card.add(ThisDiesTrigger.Afterlife(n));
} }
}, },
Spectacle("spectacle( |—)" + ARG.COST, 10) { Spectacle("spectacle( |—)" + ARG.MANACOST, 10) {
@Override @Override
protected void addAbilityImpl(final MagicAbilityStore card, final Matcher arg) { protected void addAbilityImpl(final MagicAbilityStore card, final Matcher arg) {
final MagicCardDefinition cardDef = (MagicCardDefinition)card; final MagicCardDefinition cardDef = (MagicCardDefinition)card;
final List<MagicMatchedCostEvent> matchedCostEvents = MagicRegularCostEvent.buildCast(ARG.cost(arg)); final MagicManaCost manaCost = MagicManaCost.create(ARG.manacost(arg));
card.add(new MagicSpectacleActivation(cardDef, matchedCostEvents)); card.add(new MagicSpectacleActivation(cardDef, manaCost));
} }
}, },

View File

@ -1,18 +1,16 @@
package magic.model.event; package magic.model.event;
import java.util.Collections; import java.util.Arrays;
import magic.model.MagicCard; import magic.model.MagicCard;
import magic.model.MagicCardDefinition; import magic.model.MagicCardDefinition;
import magic.model.MagicGame; import magic.model.MagicManaCost;
import magic.model.MagicPayedCost;
import magic.model.condition.MagicCondition; import magic.model.condition.MagicCondition;
public class MagicSpectacleActivation extends MagicHandCastActivation { public class MagicSpectacleActivation extends MagicHandCastActivation {
private final List<MagicMatchedCostEvent> matchedCostEvents; final MagicManaCost cost;
public MagicSpectacleActivation(final MagicCardDefinition cdef, final List<MagicMatchedCostEvent> aMatchedCostEvents) { public MagicSpectacleActivation(final MagicCardDefinition cdef, final MagicManaCost aCost) {
super( super(
new MagicCondition[]{ new MagicCondition[]{
MagicCondition.CARD_CONDITION, MagicCondition.CARD_CONDITION,
@ -21,29 +19,17 @@ public class MagicSpectacleActivation extends MagicHandCastActivation {
cdef.getActivationHints(), cdef.getActivationHints(),
"Spectacle" "Spectacle"
); );
matchedCostEvents = aMatchedCostEvents; cost = aCost;
} }
@Override @Override
public Iterable<? extends MagicEvent> getCostEvent(final MagicCard source) { public Iterable<? extends MagicEvent> getCostEvent(final MagicCard source) {
return MagicMatchedCostEvent.getCostEvent(matchedCostEvents, source); return Arrays.asList(
} MagicPayManaCostEvent.Cast(
source,
@Override cost
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) { ),
return new MagicEvent( new MagicEvokeEvent(source)
cardOnStack,
this,
"Put SN onto the battlefield, " +
"it gains haste and it's returned from the battlefield to its owner's hand at the beginning of the next end step."
); );
} }
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new PlayCardFromStackAction(
event.getCardOnStack(),
MagicPlayMod.HASTE, MagicPlayMod.RETURN_AT_END_OF_TURN
));
}
} }