[CLB] Implemented Black Market Connections

This commit is contained in:
Evan Kranzler 2022-06-01 09:32:11 -04:00
parent 963d2cb417
commit 2bf4139a31
3 changed files with 97 additions and 0 deletions

View file

@ -0,0 +1,56 @@
package mage.cards.b;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.common.BeginningOfPreCombatMainTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.TargetController;
import mage.game.permanent.token.Shapeshifter32Token;
import mage.game.permanent.token.TreasureToken;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class BlackMarketConnections extends CardImpl {
public BlackMarketConnections(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}");
// At the beginning of your precombat main phase, choose one or more
// Sell Contraband Create a Treasure token. You lose 1 life.
Ability ability = new BeginningOfPreCombatMainTriggeredAbility(
new CreateTokenEffect(new TreasureToken()), TargetController.YOU, false
);
ability.addEffect(new LoseLifeSourceControllerEffect(1));
ability.withFirstModeFlavorWord("Sell Contraband");
ability.getModes().setMinModes(1);
ability.getModes().setMaxModes(3);
// Buy Information Draw a card. You lose 2 life.
ability.addMode(new Mode(new DrawCardSourceControllerEffect(1))
.addEffect(new LoseLifeSourceControllerEffect(2))
.withFlavorWord("Buy Information"));
// Hire a Mercenary Create a 3/2 colorless Shapeshifter creature token with changeling. You lose 3 life.
ability.addMode(new Mode(new CreateTokenEffect(new Shapeshifter32Token()))
.addEffect(new LoseLifeSourceControllerEffect(3))
.withFlavorWord("Hire a Mercenary"));
this.addAbility(ability);
}
private BlackMarketConnections(final BlackMarketConnections card) {
super(card);
}
@Override
public BlackMarketConnections copy() {
return new BlackMarketConnections(this);
}
}

View file

@ -60,6 +60,7 @@ public final class CommanderLegendsBattleForBaldursGate extends ExpansionSet {
cards.add(new SetCardInfo("Bhaal's Invoker", 163, Rarity.COMMON, mage.cards.b.BhaalsInvoker.class));
cards.add(new SetCardInfo("Bhaal, Lord of Murder", 268, Rarity.RARE, mage.cards.b.BhaalLordOfMurder.class));
cards.add(new SetCardInfo("Black Dragon Gate", 347, Rarity.COMMON, mage.cards.b.BlackDragonGate.class));
cards.add(new SetCardInfo("Black Market Connections", 669, Rarity.RARE, mage.cards.b.BlackMarketConnections.class));
cards.add(new SetCardInfo("Blade of Selves", 301, Rarity.RARE, mage.cards.b.BladeOfSelves.class));
cards.add(new SetCardInfo("Blessed Hippogriff", 11, Rarity.COMMON, mage.cards.b.BlessedHippogriff.class));
cards.add(new SetCardInfo("Blood Money", 116, Rarity.MYTHIC, mage.cards.b.BloodMoney.class));

View file

@ -0,0 +1,40 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.abilities.keyword.ChangelingAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @author TheElk801
*/
public final class Shapeshifter32Token extends TokenImpl {
static final private List<String> tokenImageSets = new ArrayList<>();
static {
tokenImageSets.addAll(Arrays.asList("CLB"));
}
public Shapeshifter32Token() {
super("Shapeshifter Token", "3/2 colorless Shapeshifter creature token with changeling");
availableImageSetCodes = tokenImageSets;
cardType.add(CardType.CREATURE);
subtype.add(SubType.SHAPESHIFTER);
power = new MageInt(3);
toughness = new MageInt(2);
addAbility(new ChangelingAbility());
}
public Shapeshifter32Token(final Shapeshifter32Token token) {
super(token);
}
public Shapeshifter32Token copy() {
return new Shapeshifter32Token(this);
}
}