corrected initial counters, simplify groovy code
parent
363f4c7afb
commit
124b5801d6
|
@ -1,22 +1,5 @@
|
|||
[
|
||||
new MagicPermanentActivation(
|
||||
[
|
||||
MagicCondition.SORCERY_CONDITION,
|
||||
MagicCondition.ABILITY_ONCE_CONDITION
|
||||
],
|
||||
new MagicActivationHints(MagicTiming.Main),
|
||||
"+1") {
|
||||
@Override
|
||||
public MagicEvent[] getCostEvent(final MagicPermanent source) {
|
||||
return [
|
||||
MagicPutCounterEvent.Self(
|
||||
source,
|
||||
MagicCounterType.Charge,
|
||||
1
|
||||
),
|
||||
new MagicPlayAbilityEvent(source)
|
||||
];
|
||||
}
|
||||
new MagicPlaneswalkerActivation(1) {
|
||||
@Override
|
||||
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
|
||||
return new MagicEvent(
|
||||
|
@ -43,25 +26,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
new MagicPermanentActivation(
|
||||
[
|
||||
MagicCondition.SORCERY_CONDITION,
|
||||
MagicCondition.ABILITY_ONCE_CONDITION,
|
||||
MagicConditionFactory.ChargeCountersAtLeast(3)
|
||||
],
|
||||
new MagicActivationHints(MagicTiming.Main),
|
||||
"-3") {
|
||||
@Override
|
||||
public MagicEvent[] getCostEvent(final MagicPermanent source) {
|
||||
return [
|
||||
new MagicRemoveCounterEvent(
|
||||
source,
|
||||
MagicCounterType.Charge,
|
||||
3
|
||||
),
|
||||
new MagicPlayAbilityEvent(source)
|
||||
];
|
||||
}
|
||||
new MagicPlaneswalkerActivation(-3) {
|
||||
@Override
|
||||
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
|
||||
return new MagicEvent(
|
||||
|
@ -84,25 +49,7 @@
|
|||
});
|
||||
}
|
||||
},
|
||||
new MagicPermanentActivation(
|
||||
[
|
||||
MagicCondition.SORCERY_CONDITION,
|
||||
MagicCondition.ABILITY_ONCE_CONDITION,
|
||||
MagicConditionFactory.ChargeCountersAtLeast(8)
|
||||
],
|
||||
new MagicActivationHints(MagicTiming.Main),
|
||||
"-8") {
|
||||
@Override
|
||||
public MagicEvent[] getCostEvent(final MagicPermanent source) {
|
||||
return [
|
||||
new MagicRemoveCounterEvent(
|
||||
source,
|
||||
MagicCounterType.Charge,
|
||||
8
|
||||
),
|
||||
new MagicPlayAbilityEvent(source)
|
||||
];
|
||||
}
|
||||
new MagicPlaneswalkerActivation(-8) {
|
||||
@Override
|
||||
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
|
||||
return new MagicEvent(
|
||||
|
|
|
@ -6,6 +6,6 @@ rarity=M
|
|||
type=Planeswalker
|
||||
subtype=Ajani
|
||||
cost={1}{W}{W}
|
||||
ability=enters with charge 8
|
||||
ability=enters with charge 4
|
||||
timing=main
|
||||
requires_groovy_code
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
package magic.model.event;
|
||||
|
||||
import magic.model.MagicCardDefinition;
|
||||
import magic.model.MagicManaCost;
|
||||
import magic.model.MagicChangeCardDefinition;
|
||||
import magic.model.MagicGame;
|
||||
import magic.model.MagicPayedCost;
|
||||
import magic.model.MagicPermanent;
|
||||
import magic.model.MagicSource;
|
||||
import magic.model.MagicCopyable;
|
||||
import magic.model.MagicCopyMap;
|
||||
import magic.model.MagicCounterType;
|
||||
import magic.model.MagicLocationType;
|
||||
import magic.model.MagicPowerToughness;
|
||||
import magic.model.choice.MagicTargetChoice;
|
||||
import magic.model.condition.MagicCondition;
|
||||
import magic.model.condition.MagicConditionFactory;
|
||||
import magic.model.condition.MagicSingleActivationCondition;
|
||||
|
||||
public abstract class MagicPlaneswalkerActivation extends MagicPermanentActivation {
|
||||
|
||||
final int cost;
|
||||
|
||||
public MagicPlaneswalkerActivation(final int cost) {
|
||||
this(cost, (cost > 0 ? "+" : "") + cost);
|
||||
}
|
||||
|
||||
public MagicPlaneswalkerActivation(final int aCost, final String description) {
|
||||
super(
|
||||
new MagicCondition[] {
|
||||
MagicCondition.SORCERY_CONDITION,
|
||||
MagicCondition.ABILITY_ONCE_CONDITION,
|
||||
MagicConditionFactory.ChargeCountersAtLeast(-aCost)
|
||||
},
|
||||
new MagicActivationHints(MagicTiming.Main),
|
||||
description
|
||||
);
|
||||
cost = aCost;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MagicEvent[] getCostEvent(final MagicPermanent source) {
|
||||
return new MagicEvent[] {
|
||||
cost >= 0 ?
|
||||
MagicPutCounterEvent.Self(
|
||||
source,
|
||||
MagicCounterType.Charge,
|
||||
cost
|
||||
):
|
||||
new MagicRemoveCounterEvent(
|
||||
source,
|
||||
MagicCounterType.Charge,
|
||||
-cost
|
||||
),
|
||||
new MagicPlayAbilityEvent(source)
|
||||
};
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue