[MID] Implemented Olivia's Midnight Ambush

This commit is contained in:
Evan Kranzler 2021-09-12 17:49:56 -04:00
parent 165a347092
commit 4902a31720
2 changed files with 65 additions and 0 deletions

View file

@ -0,0 +1,64 @@
package mage.cards.o;
import mage.abilities.Ability;
import mage.abilities.condition.common.NightCondition;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.hint.common.NightHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.game.Game;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class OliviasMidnightAmbush extends CardImpl {
public OliviasMidnightAmbush(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}");
// Target creature gets -2/-2 until end of turn. If it's night, that creature gets -13/-13 until end of turn instead.
this.getSpellAbility().addEffect(new OliviasMidnightAmbushEffect());
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addHint(NightHint.instance);
}
private OliviasMidnightAmbush(final OliviasMidnightAmbush card) {
super(card);
}
@Override
public OliviasMidnightAmbush copy() {
return new OliviasMidnightAmbush(this);
}
}
class OliviasMidnightAmbushEffect extends OneShotEffect {
OliviasMidnightAmbushEffect() {
super(Outcome.Benefit);
staticText = "target creature gets -2/-2 until end of turn. " +
"If it's night, that creature gets -13/-13 until end of turn instead";
}
private OliviasMidnightAmbushEffect(final OliviasMidnightAmbushEffect effect) {
super(effect);
}
@Override
public OliviasMidnightAmbushEffect copy() {
return new OliviasMidnightAmbushEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
int boost = NightCondition.instance.apply(game, source) ? -13 : -2;
game.addEffect(new BoostTargetEffect(boost, boost), source);
return true;
}
}

View file

@ -215,6 +215,7 @@ public final class InnistradMidnightHunt extends ExpansionSet {
cards.add(new SetCardInfo("Novice Occultist", 117, Rarity.COMMON, mage.cards.n.NoviceOccultist.class)); cards.add(new SetCardInfo("Novice Occultist", 117, Rarity.COMMON, mage.cards.n.NoviceOccultist.class));
cards.add(new SetCardInfo("Obsessive Astronomer", 152, Rarity.UNCOMMON, mage.cards.o.ObsessiveAstronomer.class)); cards.add(new SetCardInfo("Obsessive Astronomer", 152, Rarity.UNCOMMON, mage.cards.o.ObsessiveAstronomer.class));
cards.add(new SetCardInfo("Odric's Outrider", 29, Rarity.UNCOMMON, mage.cards.o.OdricsOutrider.class)); cards.add(new SetCardInfo("Odric's Outrider", 29, Rarity.UNCOMMON, mage.cards.o.OdricsOutrider.class));
cards.add(new SetCardInfo("Olivia's Midnight Ambush", 118, Rarity.COMMON, mage.cards.o.OliviasMidnightAmbush.class));
cards.add(new SetCardInfo("Organ Hoarder", 66, Rarity.COMMON, mage.cards.o.OrganHoarder.class)); cards.add(new SetCardInfo("Organ Hoarder", 66, Rarity.COMMON, mage.cards.o.OrganHoarder.class));
cards.add(new SetCardInfo("Otherworldly Gaze", 67, Rarity.COMMON, mage.cards.o.OtherworldlyGaze.class)); cards.add(new SetCardInfo("Otherworldly Gaze", 67, Rarity.COMMON, mage.cards.o.OtherworldlyGaze.class));
cards.add(new SetCardInfo("Outland Liberator", 190, Rarity.UNCOMMON, mage.cards.o.OutlandLiberator.class)); cards.add(new SetCardInfo("Outland Liberator", 190, Rarity.UNCOMMON, mage.cards.o.OutlandLiberator.class));