implement [PIP] Moira Brown, Guide Author

This commit is contained in:
Susucre 2024-05-02 17:41:10 +02:00
parent 172a2e53b3
commit 44b591e15f
3 changed files with 97 additions and 0 deletions

View file

@ -0,0 +1,54 @@
package mage.cards.m;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksWithCreaturesTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.game.permanent.token.WastelandSurvivalGuideToken;
import mage.target.common.TargetControlledPermanent;
import java.util.UUID;
/**
* @author Susucr
*/
public final class MoiraBrownGuideAuthor extends CardImpl {
public MoiraBrownGuideAuthor(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}{W}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.CITIZEN);
this.power = new MageInt(2);
this.toughness = new MageInt(3);
// When Moira Brown, Guide Author enters the battlefield, create a colorless Equipment artifact token named Wasteland Survival Guide with "Equipped creature gets +1/+1 for each quest counter among permanents you control" and equip {1}.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WastelandSurvivalGuideToken())));
// Whenever you attack, put a quest counter on target nonland permanent you control.
Ability ability = new AttacksWithCreaturesTriggeredAbility(
new AddCountersTargetEffect(CounterType.QUEST.createInstance()), 1
);
ability.addTarget(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_NON_LAND));
this.addAbility(ability);
}
private MoiraBrownGuideAuthor(final MoiraBrownGuideAuthor card) {
super(card);
}
@Override
public MoiraBrownGuideAuthor copy() {
return new MoiraBrownGuideAuthor(this);
}
}

View file

@ -205,6 +205,7 @@ public final class Fallout extends ExpansionSet {
cards.add(new SetCardInfo("Mister Gutsy", 433, Rarity.RARE, mage.cards.m.MisterGutsy.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Mister Gutsy", 664, Rarity.RARE, mage.cards.m.MisterGutsy.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Mister Gutsy", 961, Rarity.RARE, mage.cards.m.MisterGutsy.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Moira Brown, Guide Author", 110, Rarity.RARE, mage.cards.m.MoiraBrownGuideAuthor.class));
cards.add(new SetCardInfo("Morbid Opportunist", 186, Rarity.UNCOMMON, mage.cards.m.MorbidOpportunist.class));
cards.add(new SetCardInfo("Mortuary Mire", 272, Rarity.COMMON, mage.cards.m.MortuaryMire.class));
cards.add(new SetCardInfo("Mossfire Valley", 273, Rarity.RARE, mage.cards.m.MossfireValley.class));

View file

@ -0,0 +1,42 @@
package mage.game.permanent.token;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.CountersCount;
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.ValueHint;
import mage.abilities.keyword.EquipAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
/**
* @author Susucr
*/
public final class WastelandSurvivalGuideToken extends TokenImpl {
private static final DynamicValue xValue = new CountersCount(CounterType.QUEST, StaticFilters.FILTER_CONTROLLED_PERMANENT);
private static final Hint hint = new ValueHint("Total quest counter among permanents you control", xValue);
public WastelandSurvivalGuideToken() {
super("Wasteland Survival Guide", "colorless Equipment artifact token named Wasteland Survival Guide "
+ "with \"Equipped creature gets +1/+1 for each quest counter among permanents you control\" and equip {1}");
this.cardType.add(CardType.ARTIFACT);
this.subtype.add(SubType.EQUIPMENT);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(xValue, xValue)).addHint(hint));
this.addAbility(new EquipAbility(1, false));
}
private WastelandSurvivalGuideToken(final WastelandSurvivalGuideToken token) {
super(token);
}
public WastelandSurvivalGuideToken copy() {
return new WastelandSurvivalGuideToken(this);
}
}