added unleash to card script
parent
f0b7e74c18
commit
383885a306
|
@ -68,6 +68,7 @@ import magic.model.trigger.MagicAtEndOfTurnTrigger;
|
|||
import magic.model.trigger.MagicAtUpkeepTrigger;
|
||||
import magic.model.trigger.MagicWhenOtherComesIntoPlayTrigger;
|
||||
import magic.model.trigger.MagicExtortTrigger;
|
||||
import magic.model.trigger.MagicUnleashTrigger;
|
||||
|
||||
import java.util.EnumSet;
|
||||
import java.util.Set;
|
||||
|
@ -726,6 +727,13 @@ public enum MagicAbility {
|
|||
card.add(new MagicReinforceActivation(n, manaCost));
|
||||
}
|
||||
},
|
||||
Unleash("unleash", 20) {
|
||||
public void addAbilityImpl(final MagicCardDefinition card, final String arg) {
|
||||
assert arg.isEmpty() : this + " does not accept arg = " + arg;
|
||||
card.add(MagicUnleashTrigger.create());
|
||||
card.add(MagicStatic.Unleash);
|
||||
}
|
||||
},
|
||||
None("",0);
|
||||
|
||||
public static final Set<MagicAbility> CORE = EnumSet.range(AttacksEachTurnIfAble, Flanking);
|
||||
|
|
|
@ -8,6 +8,7 @@ import magic.model.MagicPlayer;
|
|||
import magic.model.MagicPowerToughness;
|
||||
import magic.model.MagicSubType;
|
||||
import magic.model.MagicAbility;
|
||||
import magic.model.MagicCounterType;
|
||||
import magic.model.target.MagicTargetFilter;
|
||||
|
||||
import java.util.Set;
|
||||
|
@ -172,4 +173,18 @@ public abstract class MagicStatic extends MagicDummyModifier implements MagicCha
|
|||
return source.getEnchantedCreature() == target;
|
||||
}
|
||||
};
|
||||
|
||||
public static MagicStatic Unleash = new MagicStatic(MagicLayer.Ability) {
|
||||
@Override
|
||||
public void modAbilityFlags(
|
||||
final MagicPermanent source,
|
||||
final MagicPermanent permanent,
|
||||
final Set<MagicAbility> flags) {
|
||||
flags.add(MagicAbility.CannotBlock);
|
||||
}
|
||||
@Override
|
||||
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||
return source.getCounters(MagicCounterType.PlusOne) > 0;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
package magic.model.trigger;
|
||||
|
||||
import magic.model.MagicCounterType;
|
||||
import magic.model.MagicGame;
|
||||
import magic.model.MagicPermanent;
|
||||
import magic.model.MagicPlayer;
|
||||
import magic.model.action.MagicChangeCountersAction;
|
||||
import magic.model.event.MagicEvent;
|
||||
import magic.model.choice.MagicMayChoice;
|
||||
|
||||
public class MagicUnleashTrigger extends MagicWhenComesIntoPlayTrigger {
|
||||
|
||||
private static final MagicUnleashTrigger INSTANCE = new MagicUnleashTrigger();
|
||||
|
||||
private MagicUnleashTrigger() {}
|
||||
|
||||
public static MagicUnleashTrigger create() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MagicEvent executeTrigger(
|
||||
final MagicGame game,
|
||||
final MagicPermanent permanent,
|
||||
final MagicPlayer player) {
|
||||
return new MagicEvent(
|
||||
permanent,
|
||||
new MagicMayChoice(),
|
||||
this,
|
||||
"SN enters the battlefield with a +1/+1 counter on it."
|
||||
);
|
||||
}
|
||||
@Override
|
||||
public void executeEvent(
|
||||
final MagicGame game,
|
||||
final MagicEvent event,
|
||||
final Object[] choiceResults) {
|
||||
if (MagicMayChoice.isYesChoice(choiceResults[0])) {
|
||||
game.doAction(new MagicChangeCountersAction(
|
||||
event.getPermanent(),
|
||||
MagicCounterType.PlusOne,
|
||||
1,
|
||||
false
|
||||
));
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public boolean usesStack() {
|
||||
return false;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue