From e7af7c922af742415163c5791c3b822885b77b8d Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sun, 16 Sep 2018 16:26:21 -0400 Subject: [PATCH] added some functions to mode implementation --- .../src/mage/cards/k/KnightOfAutumn.java | 9 +++---- Mage/src/main/java/mage/abilities/Mode.java | 24 +++++++++++++++---- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/Mage.Sets/src/mage/cards/k/KnightOfAutumn.java b/Mage.Sets/src/mage/cards/k/KnightOfAutumn.java index 9e17026748a..b8197f4fb85 100644 --- a/Mage.Sets/src/mage/cards/k/KnightOfAutumn.java +++ b/Mage.Sets/src/mage/cards/k/KnightOfAutumn.java @@ -39,17 +39,14 @@ public final class KnightOfAutumn extends CardImpl { ); // • Destroy target artifact or enchantment. - Mode mode = new Mode(); - mode.getEffects().add(new DestroyTargetEffect()); - mode.getTargets().add(new TargetPermanent( + Mode mode = new Mode(new DestroyTargetEffect()); + mode.addTarget(new TargetPermanent( StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_ENCHANTMENT )); ability.addMode(mode); // • You gain 4 life. - mode = new Mode(); - mode.getEffects().add(new GainLifeEffect(4)); - ability.addMode(mode); + ability.addMode(new Mode(new GainLifeEffect(4))); this.addAbility(ability); } diff --git a/Mage/src/main/java/mage/abilities/Mode.java b/Mage/src/main/java/mage/abilities/Mode.java index 0c336d121ad..02e9d9144e5 100644 --- a/Mage/src/main/java/mage/abilities/Mode.java +++ b/Mage/src/main/java/mage/abilities/Mode.java @@ -1,9 +1,10 @@ - package mage.abilities; import java.io.Serializable; import java.util.UUID; +import mage.abilities.effects.Effect; import mage.abilities.effects.Effects; +import mage.target.Target; import mage.target.Targets; /** @@ -13,16 +14,23 @@ import mage.target.Targets; public class Mode implements Serializable { protected UUID id; - protected Targets targets; - protected Effects effects; + protected final Targets targets; + protected final Effects effects; public Mode() { + this((Effect) null); + } + + public Mode(Effect effect) { this.id = UUID.randomUUID(); this.targets = new Targets(); this.effects = new Effects(); + if (effect != null) { + this.effects.add(effect); + } } - public Mode(Mode mode) { + public Mode(final Mode mode) { this.id = mode.id; this.targets = mode.targets.copy(); this.effects = mode.effects.copy(); @@ -44,7 +52,15 @@ public class Mode implements Serializable { return targets; } + public void addTarget(Target target) { + targets.add(target); + } + public Effects getEffects() { return effects; } + + public void addEffect(Effect effect) { + effects.add(effect); + } }