From abce666244f824e92f64651cc0488ecd3d3987b7 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Sat, 4 Nov 2023 10:43:48 -0400 Subject: [PATCH] [LCI] Implement Inverted Iceberg / Iceberg Titan --- Mage.Sets/src/mage/cards/i/IcebergTitan.java | 44 +++++++++++++++++++ .../src/mage/cards/i/InvertedIceberg.java | 40 +++++++++++++++++ .../src/mage/sets/TheLostCavernsOfIxalan.java | 2 + 3 files changed, 86 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/i/IcebergTitan.java create mode 100644 Mage.Sets/src/mage/cards/i/InvertedIceberg.java diff --git a/Mage.Sets/src/mage/cards/i/IcebergTitan.java b/Mage.Sets/src/mage/cards/i/IcebergTitan.java new file mode 100644 index 00000000000..b5422ca61da --- /dev/null +++ b/Mage.Sets/src/mage/cards/i/IcebergTitan.java @@ -0,0 +1,44 @@ +package mage.cards.i; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.effects.common.MayTapOrUntapTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.StaticFilters; +import mage.target.TargetPermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class IcebergTitan extends CardImpl { + + public IcebergTitan(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, ""); + + this.subtype.add(SubType.GOLEM); + this.power = new MageInt(6); + this.toughness = new MageInt(6); + this.nightCard = true; + this.color.setBlue(true); + + // Whenever Iceberg Titan attacks, you may tap or untap target artifact or creature. + Ability ability = new AttacksTriggeredAbility(new MayTapOrUntapTargetEffect()); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_CREATURE)); + this.addAbility(ability); + } + + private IcebergTitan(final IcebergTitan card) { + super(card); + } + + @Override + public IcebergTitan copy() { + return new IcebergTitan(this); + } +} diff --git a/Mage.Sets/src/mage/cards/i/InvertedIceberg.java b/Mage.Sets/src/mage/cards/i/InvertedIceberg.java new file mode 100644 index 00000000000..0a4c7d497d3 --- /dev/null +++ b/Mage.Sets/src/mage/cards/i/InvertedIceberg.java @@ -0,0 +1,40 @@ +package mage.cards.i; + +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.MillCardsControllerEffect; +import mage.abilities.keyword.CraftAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class InvertedIceberg extends CardImpl { + + public InvertedIceberg(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}{U}"); + this.secondSideCardClazz = mage.cards.i.IcebergTitan.class; + + // When Inverted Iceberg enters the battlefield, mill a card, then draw a card. + Ability ability = new EntersBattlefieldTriggeredAbility(new MillCardsControllerEffect(1)); + ability.addEffect(new DrawCardSourceControllerEffect(1).concatBy(", then")); + this.addAbility(ability); + + // Craft with artifact {4}{U}{U} + this.addAbility(new CraftAbility("{4}{U}{U}")); + } + + private InvertedIceberg(final InvertedIceberg card) { + super(card); + } + + @Override + public InvertedIceberg copy() { + return new InvertedIceberg(this); + } +} diff --git a/Mage.Sets/src/mage/sets/TheLostCavernsOfIxalan.java b/Mage.Sets/src/mage/sets/TheLostCavernsOfIxalan.java index e5145df4e0c..e53795b5a79 100644 --- a/Mage.Sets/src/mage/sets/TheLostCavernsOfIxalan.java +++ b/Mage.Sets/src/mage/sets/TheLostCavernsOfIxalan.java @@ -135,8 +135,10 @@ public final class TheLostCavernsOfIxalan extends ExpansionSet { cards.add(new SetCardInfo("Hulking Raptor", 191, Rarity.RARE, mage.cards.h.HulkingRaptor.class)); cards.add(new SetCardInfo("Hunter's Blowgun", 255, Rarity.COMMON, mage.cards.h.HuntersBlowgun.class)); cards.add(new SetCardInfo("Hurl into History", 59, Rarity.UNCOMMON, mage.cards.h.HurlIntoHistory.class)); + cards.add(new SetCardInfo("Iceberg Titan", 60, Rarity.COMMON, mage.cards.i.IcebergTitan.class)); cards.add(new SetCardInfo("Idol of the Deep King", 155, Rarity.COMMON, mage.cards.i.IdolOfTheDeepKing.class)); cards.add(new SetCardInfo("Inti, Seneschal of the Sun", 156, Rarity.RARE, mage.cards.i.IntiSeneschalOfTheSun.class)); + cards.add(new SetCardInfo("Inverted Iceberg", 60, Rarity.COMMON, mage.cards.i.InvertedIceberg.class)); cards.add(new SetCardInfo("Ironpaw Aspirant", 18, Rarity.COMMON, mage.cards.i.IronpawAspirant.class)); cards.add(new SetCardInfo("Island", 288, Rarity.LAND, mage.cards.basiclands.Island.class, FULL_ART_BFZ_VARIOUS)); cards.add(new SetCardInfo("Island", 395, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS));