[FIC] Implement Warrior's Resolve

This commit is contained in:
theelk801 2025-10-01 09:52:57 -04:00
parent 39d3b6995c
commit 559690f15b
2 changed files with 59 additions and 0 deletions

View file

@ -0,0 +1,58 @@
package mage.cards.w;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.keyword.TrainingAbility;
import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.counters.CounterType;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.predicate.permanent.AttackedThisTurnPredicate;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class WarriorsResolve extends CardImpl {
private static final FilterPermanent filter = new FilterControlledCreaturePermanent(
"you control a creature with a +1/+1 counter on it that attacked this turn"
);
static {
filter.add(CounterType.P1P1.getPredicate());
filter.add(AttackedThisTurnPredicate.instance);
}
private static final Condition condition = new PermanentsOnTheBattlefieldCondition(filter);
public WarriorsResolve(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}");
// Creatures you control have training.
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
new TrainingAbility(), Duration.WhileControlled, StaticFilters.FILTER_PERMANENT_CREATURES
)));
// At the beginning of your end step, if you control a creature with a +1/+1 counter on it that attacked this turn, draw a card.
this.addAbility(new BeginningOfEndStepTriggeredAbility(new DrawCardSourceControllerEffect(1)).withInterveningIf(condition));
}
private WarriorsResolve(final WarriorsResolve card) {
super(card);
}
@Override
public WarriorsResolve copy() {
return new WarriorsResolve(this);
}
}

View file

@ -466,6 +466,7 @@ public final class FinalFantasyCommander extends ExpansionSet {
cards.add(new SetCardInfo("Wakka, Devoted Guardian", 477, Rarity.RARE, mage.cards.w.WakkaDevotedGuardian.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Wakka, Devoted Guardian", 477, Rarity.RARE, mage.cards.w.WakkaDevotedGuardian.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Wakka, Devoted Guardian", 97, Rarity.RARE, mage.cards.w.WakkaDevotedGuardian.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Wakka, Devoted Guardian", 97, Rarity.RARE, mage.cards.w.WakkaDevotedGuardian.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Walking Ballista", 371, Rarity.RARE, mage.cards.w.WalkingBallista.class)); cards.add(new SetCardInfo("Walking Ballista", 371, Rarity.RARE, mage.cards.w.WalkingBallista.class));
cards.add(new SetCardInfo("Warrior's Resolve", 465, Rarity.RARE, mage.cards.w.WarriorsResolve.class));
cards.add(new SetCardInfo("Wayfarer's Bauble", 372, Rarity.COMMON, mage.cards.w.WayfarersBauble.class)); cards.add(new SetCardInfo("Wayfarer's Bauble", 372, Rarity.COMMON, mage.cards.w.WayfarersBauble.class));
cards.add(new SetCardInfo("Wooded Ridgeline", 441, Rarity.COMMON, mage.cards.w.WoodedRidgeline.class)); cards.add(new SetCardInfo("Wooded Ridgeline", 441, Rarity.COMMON, mage.cards.w.WoodedRidgeline.class));
cards.add(new SetCardInfo("Wrecking Ball Arm", 100, Rarity.RARE, mage.cards.w.WreckingBallArm.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Wrecking Ball Arm", 100, Rarity.RARE, mage.cards.w.WreckingBallArm.class, NON_FULL_USE_VARIOUS));