[OTJ] Implement Form a Posse

This commit is contained in:
theelk801 2024-03-27 08:42:43 -04:00
parent fd921218bd
commit 896d30d223
3 changed files with 72 additions and 0 deletions

View file

@ -0,0 +1,32 @@
package mage.cards.f;
import mage.abilities.dynamicvalue.common.ManacostVariableValue;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.game.permanent.token.MercenaryToken;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class FormAPosse extends CardImpl {
public FormAPosse(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}{W}");
// Create X 1/1 red Mercenary creature tokens with "{T}: Target creature you control gets +1/+0 until end of turn. Activate only as a sorcery."
this.getSpellAbility().addEffect(new CreateTokenEffect(new MercenaryToken(), ManacostVariableValue.REGULAR));
}
private FormAPosse(final FormAPosse card) {
super(card);
}
@Override
public FormAPosse copy() {
return new FormAPosse(this);
}
}

View file

@ -35,6 +35,7 @@ public final class OutlawsOfThunderJunction extends ExpansionSet {
cards.add(new SetCardInfo("Festering Gulch", 257, Rarity.COMMON, mage.cards.f.FesteringGulch.class));
cards.add(new SetCardInfo("Forest", 276, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Forlorn Flats", 258, Rarity.COMMON, mage.cards.f.ForlornFlats.class));
cards.add(new SetCardInfo("Form a Posse", 204, Rarity.UNCOMMON, mage.cards.f.FormAPosse.class));
cards.add(new SetCardInfo("Frontier Seeker", 13, Rarity.UNCOMMON, mage.cards.f.FrontierSeeker.class));
cards.add(new SetCardInfo("Hell to Pay", 126, Rarity.RARE, mage.cards.h.HellToPay.class));
cards.add(new SetCardInfo("Holy Cow", 16, Rarity.COMMON, mage.cards.h.HolyCow.class));

View file

@ -0,0 +1,39 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.target.common.TargetControlledCreaturePermanent;
/**
* @author TheElk801
*/
public final class MercenaryToken extends TokenImpl {
public MercenaryToken() {
super("Mercenary Token", "1/1 red Mercenary creature token with \"{T}: Target creature you control gets +1/+0 until end of turn. Activate only as a sorcery.\"");
cardType.add(CardType.CREATURE);
color.setRed(true);
subtype.add(SubType.MERCENARY);
power = new MageInt(1);
toughness = new MageInt(1);
Ability ability = new ActivateAsSorceryActivatedAbility(
new BoostTargetEffect(1, 0), new TapSourceCost()
);
ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability);
}
private MercenaryToken(final MercenaryToken token) {
super(token);
}
public MercenaryToken copy() {
return new MercenaryToken(this);
}
}