forked from External/mage
[BLC] Implement Octomancer
This commit is contained in:
parent
26022d9682
commit
2a39589dd3
3 changed files with 68 additions and 0 deletions
62
Mage.Sets/src/mage/cards/o/Octomancer.java
Normal file
62
Mage.Sets/src/mage/cards/o/Octomancer.java
Normal 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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue