From f239e8dd445c98ed3b509e201fbccc7627f78783 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Fri, 11 Jan 2019 15:09:57 -0500 Subject: [PATCH] Implemented Haazda Officer --- Mage.Sets/src/mage/cards/h/HaazdaOfficer.java | 42 +++++++++++++++++++ .../src/mage/sets/RavnicaAllegiance.java | 1 + .../common/continuous/BoostTargetEffect.java | 14 ++++--- 3 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 Mage.Sets/src/mage/cards/h/HaazdaOfficer.java diff --git a/Mage.Sets/src/mage/cards/h/HaazdaOfficer.java b/Mage.Sets/src/mage/cards/h/HaazdaOfficer.java new file mode 100644 index 00000000000..1f657213043 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HaazdaOfficer.java @@ -0,0 +1,42 @@ +package mage.cards.h; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.target.common.TargetControlledCreaturePermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class HaazdaOfficer extends CardImpl { + + public HaazdaOfficer(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); + + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.SOLDIER); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // When Haazda Officer enters the battlefield, target creature you control gets +1/+1 until end of turn. + Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(1, 1)); + ability.addTarget(new TargetControlledCreaturePermanent()); + this.addAbility(ability); + } + + private HaazdaOfficer(final HaazdaOfficer card) { + super(card); + } + + @Override + public HaazdaOfficer copy() { + return new HaazdaOfficer(this); + } +} diff --git a/Mage.Sets/src/mage/sets/RavnicaAllegiance.java b/Mage.Sets/src/mage/sets/RavnicaAllegiance.java index a1598340022..92d3afd7490 100644 --- a/Mage.Sets/src/mage/sets/RavnicaAllegiance.java +++ b/Mage.Sets/src/mage/sets/RavnicaAllegiance.java @@ -113,6 +113,7 @@ public final class RavnicaAllegiance extends ExpansionSet { cards.add(new SetCardInfo("Guardian Project", 130, Rarity.RARE, mage.cards.g.GuardianProject.class)); cards.add(new SetCardInfo("Gutterbones", 76, Rarity.RARE, mage.cards.g.Gutterbones.class)); cards.add(new SetCardInfo("Gyre Engineer", 180, Rarity.UNCOMMON, mage.cards.g.GyreEngineer.class)); + cards.add(new SetCardInfo("Haazda Officer", 10, Rarity.COMMON, mage.cards.h.HaazdaOfficer.class)); cards.add(new SetCardInfo("Hackrobat", 181, Rarity.UNCOMMON, mage.cards.h.Hackrobat.class)); cards.add(new SetCardInfo("Hallowed Fountain", 251, Rarity.RARE, mage.cards.h.HallowedFountain.class)); cards.add(new SetCardInfo("Hero of Precinct One", 11, Rarity.RARE, mage.cards.h.HeroOfPrecinctOne.class)); diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BoostTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BoostTargetEffect.java index 59e56db5fbb..76c0e120248 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BoostTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BoostTargetEffect.java @@ -1,8 +1,6 @@ package mage.abilities.effects.common.continuous; -import java.util.Locale; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.dynamicvalue.DynamicValue; @@ -17,8 +15,10 @@ import mage.game.permanent.Permanent; import mage.target.Target; import mage.util.CardUtil; +import java.util.Locale; +import java.util.UUID; + /** - * * @author BetaSteward_at_googlemail.com */ public class BoostTargetEffect extends ContinuousEffectImpl { @@ -27,6 +27,10 @@ public class BoostTargetEffect extends ContinuousEffectImpl { private DynamicValue toughness; private boolean lockedIn; + public BoostTargetEffect(int power, int toughness) { + this(power, toughness, Duration.EndOfTurn); + } + public BoostTargetEffect(int power, int toughness, Duration duration) { this(new StaticValue(power), new StaticValue(toughness), duration, false); } @@ -39,8 +43,8 @@ public class BoostTargetEffect extends ContinuousEffectImpl { * @param power * @param toughness * @param duration - * @param lockedIn if true, power and toughness will be calculated only - * once, when the ability resolves + * @param lockedIn if true, power and toughness will be calculated only + * once, when the ability resolves */ public BoostTargetEffect(DynamicValue power, DynamicValue toughness, Duration duration, boolean lockedIn) { super(duration, Layer.PTChangingEffects_7, SubLayer.ModifyPT_7c, isCanKill(toughness) ? Outcome.UnboostCreature : Outcome.BoostCreature);