mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 19:41:59 -08:00
[CLB] Implemented Altar of Bhaal
This commit is contained in:
parent
062e38a08f
commit
1cf297a15c
5 changed files with 60 additions and 9 deletions
50
Mage.Sets/src/mage/cards/a/AltarOfBhaal.java
Normal file
50
Mage.Sets/src/mage/cards/a/AltarOfBhaal.java
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
|
||||
import mage.abilities.costs.common.ExileTargetCost;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
|
||||
import mage.cards.AdventureCard;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.SkeletonMenaceToken;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class AltarOfBhaal extends AdventureCard {
|
||||
|
||||
public AltarOfBhaal(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, new CardType[]{CardType.SORCERY}, "{1}{B}", "Bone Offering", "{2}{B}");
|
||||
|
||||
// {2}{B}, {T}, Exile a creature you control: Return target creature card from your graveyard to the battlefield. Activate only as a sorcery.
|
||||
Ability ability = new ActivateAsSorceryActivatedAbility(
|
||||
new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl<>("{2}{B}")
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new ExileTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Bone Offering
|
||||
// Create a tapped 4/1 black Skeleton creature token with menace.
|
||||
this.getSpellCard().getSpellAbility().addEffect(new CreateTokenEffect(new SkeletonMenaceToken(), 1, true, false));
|
||||
}
|
||||
|
||||
private AltarOfBhaal(final AltarOfBhaal card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AltarOfBhaal copy() {
|
||||
return new AltarOfBhaal(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -12,7 +12,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.Skeleton41Token;
|
||||
import mage.game.permanent.token.SkeletonMenaceToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -33,7 +33,7 @@ public final class GutTrueSoulZealot extends CardImpl {
|
|||
// Whenever you attack, you may sacrifice another creature or an artifact. If you do, create a 4/1 black Skeleton creature token with menace that's tapped and attacking.
|
||||
this.addAbility(new AttacksWithCreaturesTriggeredAbility(new DoIfCostPaid(
|
||||
new CreateTokenEffect(
|
||||
new Skeleton41Token(), 1, true, true
|
||||
new SkeletonMenaceToken(), 1, true, true
|
||||
), new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ARTIFACT_OR_OTHER_CREATURE)
|
||||
), 1));
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ public final class CommanderLegendsBattleForBaldursGate extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Agent of the Iron Throne", 107, Rarity.UNCOMMON, mage.cards.a.AgentOfTheIronThrone.class));
|
||||
cards.add(new SetCardInfo("Agent of the Shadow Thieves", 108, Rarity.UNCOMMON, mage.cards.a.AgentOfTheShadowThieves.class));
|
||||
cards.add(new SetCardInfo("Alora, Merry Thief", 55, Rarity.UNCOMMON, mage.cards.a.AloraMerryThief.class));
|
||||
cards.add(new SetCardInfo("Altar of Bhaal", 109, Rarity.RARE, mage.cards.a.AltarOfBhaal.class));
|
||||
cards.add(new SetCardInfo("Amber Gristle O'Maul", 159, Rarity.UNCOMMON, mage.cards.a.AmberGristleOMaul.class));
|
||||
cards.add(new SetCardInfo("Ambition's Cost", 110, Rarity.UNCOMMON, mage.cards.a.AmbitionsCost.class));
|
||||
cards.add(new SetCardInfo("Amethyst Dragon", 160, Rarity.UNCOMMON, mage.cards.a.AmethystDragon.class));
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ import mage.game.command.Dungeon;
|
|||
import mage.game.command.DungeonRoom;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.token.TreasureToken;
|
||||
import mage.game.permanent.token.Skeleton41Token;
|
||||
import mage.game.permanent.token.SkeletonMenaceToken;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
|
|
@ -65,7 +65,7 @@ public class UndercityDungeon extends Dungeon {
|
|||
|
||||
DungeonRoom archives = new DungeonRoom("Archives", new DrawCardSourceControllerEffect(1));
|
||||
|
||||
DungeonRoom catacombs = new DungeonRoom("Catacombs", new CreateTokenEffect(new Skeleton41Token()));
|
||||
DungeonRoom catacombs = new DungeonRoom("Catacombs", new CreateTokenEffect(new SkeletonMenaceToken()));
|
||||
|
||||
DungeonRoom throneOfTheDeadThree = new DungeonRoom("Throne of the Dead Three", new ThroneOfTheDeadThreeEffect());
|
||||
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@ import java.util.Arrays;
|
|||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class Skeleton41Token extends TokenImpl {
|
||||
public final class SkeletonMenaceToken extends TokenImpl {
|
||||
|
||||
public Skeleton41Token() {
|
||||
public SkeletonMenaceToken() {
|
||||
super("Skeleton Token", "4/1 black Skeleton creature token with menace");
|
||||
cardType.add(CardType.CREATURE);
|
||||
this.subtype.add(SubType.SKELETON);
|
||||
|
|
@ -25,11 +25,11 @@ public final class Skeleton41Token extends TokenImpl {
|
|||
availableImageSetCodes = Arrays.asList("CLB");
|
||||
}
|
||||
|
||||
public Skeleton41Token(final Skeleton41Token token) {
|
||||
public SkeletonMenaceToken(final SkeletonMenaceToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public Skeleton41Token copy() {
|
||||
return new Skeleton41Token(this);
|
||||
public SkeletonMenaceToken copy() {
|
||||
return new SkeletonMenaceToken(this);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue