[BLC] Implement Octomancer

This commit is contained in:
theelk801 2024-07-19 12:21:37 -04:00
parent 26022d9682
commit 2a39589dd3
3 changed files with 68 additions and 0 deletions

View file

@ -0,0 +1,62 @@
package mage.cards.o;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
import mage.abilities.effects.common.CreateTokenCopyTargetEffect;
import mage.abilities.keyword.GiftAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.GiftType;
import mage.constants.SubType;
import mage.constants.TargetController;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.EnteredThisTurnPredicate;
import mage.filter.predicate.permanent.TokenPredicate;
import mage.target.TargetPermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class Octomancer extends CardImpl {
private static final FilterPermanent filter
= new FilterCreaturePermanent("creature token that entered the battlefield this turn");
static {
filter.add(TokenPredicate.TRUE);
filter.add(EnteredThisTurnPredicate.instance);
}
public Octomancer(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{U}");
this.subtype.add(SubType.FROG);
this.subtype.add(SubType.DRUID);
this.power = new MageInt(3);
this.toughness = new MageInt(3);
// Gift an Octopus
this.addAbility(new GiftAbility(this, GiftType.OCTOPUS));
// At the beginning of each end step, create a token that's a copy of target creature token that entered the battlefield this turn.
Ability ability = new BeginningOfEndStepTriggeredAbility(
new CreateTokenCopyTargetEffect(), TargetController.YOU, false
);
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
}
private Octomancer(final Octomancer card) {
super(card);
}
@Override
public Octomancer copy() {
return new Octomancer(this);
}
}

View file

@ -59,6 +59,7 @@ public final class BloomburrowCommander extends ExpansionSet {
cards.add(new SetCardInfo("Martial Impetus", 108, Rarity.UNCOMMON, mage.cards.m.MartialImpetus.class));
cards.add(new SetCardInfo("Narset, Parter of Veils", 76, Rarity.RARE, mage.cards.n.NarsetParterOfVeils.class));
cards.add(new SetCardInfo("Nissa, Who Shakes the World", 84, Rarity.RARE, mage.cards.n.NissaWhoShakesTheWorld.class));
cards.add(new SetCardInfo("Octomancer", 37, Rarity.RARE, mage.cards.o.Octomancer.class));
cards.add(new SetCardInfo("Perch Protection", 11, Rarity.RARE, mage.cards.p.PerchProtection.class));
cards.add(new SetCardInfo("Pollywog Prodigy", 15, Rarity.RARE, mage.cards.p.PollywogProdigy.class));
cards.add(new SetCardInfo("Prosperous Innkeeper", 121, Rarity.UNCOMMON, mage.cards.p.ProsperousInnkeeper.class));

View file

@ -4,6 +4,7 @@ import mage.abilities.Ability;
import mage.game.Game;
import mage.game.permanent.token.FishNoAbilityToken;
import mage.game.permanent.token.FoodToken;
import mage.game.permanent.token.OctopusToken;
import mage.game.permanent.token.TreasureToken;
import mage.game.turn.TurnMod;
import mage.players.Player;
@ -28,6 +29,10 @@ public enum GiftType {
"a tapped Fish", "create a tapped 1/1 blue Fish creature token",
(p, g, s) -> new FishNoAbilityToken().putOntoBattlefield(1, g, s, p.getId(), true, false)
),
OCTOPUS(
"an Octopus", "they create an 8/8 blue Octopus creature token",
(p, g, s) -> new OctopusToken().putOntoBattlefield(1, g, s, p.getId())
),
EXTRA_TURN(
"an extra turn", "take an extra turn after this one",
(p, g, s) -> g.getState().getTurnMods().add(new TurnMod(p.getId()).withExtraTurn())