From f908b236a25a211c1ccafd157d7921f4adda795f Mon Sep 17 00:00:00 2001 From: melvinzhang Date: Sat, 24 Sep 2016 10:04:34 +0800 Subject: [PATCH] add playmod factory PT to set PT, and MagicPlayMod.FLYING --- src/magic/model/action/MagicPlayMod.java | 14 ++++++++++++++ src/magic/model/mstatic/MagicStatic.java | 9 +++++++++ 2 files changed, 23 insertions(+) diff --git a/src/magic/model/action/MagicPlayMod.java b/src/magic/model/action/MagicPlayMod.java index 9c3388cc74..d881b5c160 100644 --- a/src/magic/model/action/MagicPlayMod.java +++ b/src/magic/model/action/MagicPlayMod.java @@ -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))); + } + }; + } } diff --git a/src/magic/model/mstatic/MagicStatic.java b/src/magic/model/mstatic/MagicStatic.java index 35bca46d7d..a2403abb32 100644 --- a/src/magic/model/mstatic/MagicStatic.java +++ b/src/magic/model/mstatic/MagicStatic.java @@ -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 filter, final MagicAbilityList abilityList) { return new MagicStatic(MagicLayer.Ability, filter) { @Override