add playmod factory PT to set PT, and MagicPlayMod.FLYING

master
melvinzhang 2016-09-24 10:04:34 +08:00
parent d09959594e
commit f908b236a2
2 changed files with 23 additions and 0 deletions

View File

@ -90,6 +90,11 @@ public enum MagicPlayMod implements MagicPermanentAction {
game.doAction(new GainAbilityAction(perm, MagicAbility.Haste, MagicStatic.Forever));
}
},
FLYING() {
protected void doAction(final MagicGame game, final MagicPermanent perm) {
game.doAction(new GainAbilityAction(perm, MagicAbility.Flying, MagicStatic.Forever));
}
},
PERSIST() {
protected void doAction(final MagicGame game, final MagicPermanent perm) {
perm.changeCounters(MagicCounterType.MinusOne,1);
@ -202,4 +207,13 @@ public enum MagicPlayMod implements MagicPermanentAction {
}
return mods;
}
public static MagicPermanentAction PT(final int p, final int t) {
return new MagicPermanentAction() {
public void doAction(final MagicPermanent perm) {
final MagicGame game = perm.getGame();
game.doAction(new AddStaticAction(perm, MagicStatic.genPTSetSelfStatic(p, t)));
}
};
}
}

View File

@ -162,6 +162,15 @@ public abstract class MagicStatic extends MagicDummyModifier implements MagicCha
};
}
public static MagicStatic genPTSetSelfStatic(final int givenPower, final int givenToughness) {
return new MagicStatic(MagicLayer.SetPT) {
@Override
public void modPowerToughness(final MagicPermanent source, final MagicPermanent permanent, final MagicPowerToughness pt) {
pt.set(givenPower, givenToughness);
}
};
}
public static MagicStatic genABStatic(final MagicTargetFilter<MagicPermanent> filter, final MagicAbilityList abilityList) {
return new MagicStatic(MagicLayer.Ability, filter) {
@Override