[FIC] Implement SOLDIER Military Program

This commit is contained in:
theelk801 2025-05-13 16:00:51 -04:00
parent f5bf294a10
commit c6b5889201
2 changed files with 51 additions and 0 deletions

View file

@ -0,0 +1,50 @@
package mage.cards.s;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.condition.common.ControlACommanderCondition;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterControlledPermanent;
import mage.game.permanent.token.SoldierToken;
import mage.target.TargetPermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class SOLDIERMilitaryProgram extends CardImpl {
private static final FilterPermanent filter = new FilterControlledPermanent(SubType.SOLDIER, "Soldiers you control");
public SOLDIERMilitaryProgram(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}");
// At the beginning of combat on your turn, choose one. If you control a commander, you may choose both instead.
// * Create a 1/1 white Soldier creature token.
Ability ability = new BeginningOfCombatTriggeredAbility(new CreateTokenEffect(new SoldierToken()));
ability.getModes().setMoreCondition(2, ControlACommanderCondition.instance);
// * Put a +1/+1 counter on each of up to two Soldiers you control.
ability.addMode(new Mode(new AddCountersTargetEffect(CounterType.P1P1.createInstance()))
.addTarget(new TargetPermanent(0, 2, filter)));
this.addAbility(ability);
}
private SOLDIERMilitaryProgram(final SOLDIERMilitaryProgram card) {
super(card);
}
@Override
public SOLDIERMilitaryProgram copy() {
return new SOLDIERMilitaryProgram(this);
}
}

View file

@ -204,6 +204,7 @@ public final class FinalFantasyCommander extends ExpansionSet {
cards.add(new SetCardInfo("Rugged Prairie", 417, Rarity.RARE, mage.cards.r.RuggedPrairie.class));
cards.add(new SetCardInfo("Ruin Grinder", 297, Rarity.RARE, mage.cards.r.RuinGrinder.class));
cards.add(new SetCardInfo("Ruinous Ultimatum", 329, Rarity.RARE, mage.cards.r.RuinousUltimatum.class));
cards.add(new SetCardInfo("SOLDIER Military Program", 25, Rarity.RARE, mage.cards.s.SOLDIERMilitaryProgram.class));
cards.add(new SetCardInfo("Sabin, Master Monk", 57, Rarity.RARE, mage.cards.s.SabinMasterMonk.class));
cards.add(new SetCardInfo("Sacred Peaks", 418, Rarity.COMMON, mage.cards.s.SacredPeaks.class));
cards.add(new SetCardInfo("Scavenger Grounds", 419, Rarity.RARE, mage.cards.s.ScavengerGrounds.class));