[ONE] Implement Exuberant Fuseling (#9992)

This commit is contained in:
Merlingilb 2023-02-19 04:06:56 +01:00 committed by GitHub
parent 9d1f6321cc
commit a45d7d2eb7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 63 additions and 0 deletions

View file

@ -0,0 +1,62 @@
package mage.cards.e;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.CountersSourceCount;
import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.TrampleAbility;
import mage.abilities.meta.OrTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import java.util.UUID;
public class ExuberantFuseling extends CardImpl {
private static final DynamicValue oilCounters = new CountersSourceCount(CounterType.OIL);
public ExuberantFuseling(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}");
this.addSubType(SubType.PHYREXIAN);
this.addSubType(SubType.GOBLIN);
this.addSubType(SubType.WARRIOR);
this.power = new MageInt(0);
this.toughness = new MageInt(1);
//Trample
this.addAbility(TrampleAbility.getInstance());
//Exuberant Fuseling gets +1/+0 for each oil counter on it.
this.addAbility(new SimpleStaticAbility(new BoostSourceEffect(oilCounters, StaticValue.get(0),
Duration.WhileOnBattlefield).setText("{this} gets +1/+0 for each oil counter on it")));
//When Exuberant Fuseling enters the battlefield and whenever another creature or artifact you control is put
//into a graveyard from the battlefield, put an oil counter on Exuberant Fuseling.
this.addAbility(new OrTriggeredAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.OIL.createInstance()),
new EntersBattlefieldTriggeredAbility(null, false),
new PutIntoGraveFromBattlefieldAllTriggeredAbility(null, false,
StaticFilters.FILTER_CONTROLLED_ANOTHER_ARTIFACT_OR_CREATURE, false))
.setTriggerPhrase("When {this} enters the battlefield and whenever another creature or artifact you " +
"control is put into a graveyard from the battlefield, "));
}
private ExuberantFuseling(final ExuberantFuseling card) {
super(card);
}
@Override
public ExuberantFuseling copy() {
return new ExuberantFuseling(this);
}
}

View file

@ -76,6 +76,7 @@ public final class PhyrexiaAllWillBeOne extends ExpansionSet {
cards.add(new SetCardInfo("Escaped Experiment", 48, Rarity.COMMON, mage.cards.e.EscapedExperiment.class));
cards.add(new SetCardInfo("Evolved Spinoderm", 166, Rarity.RARE, mage.cards.e.EvolvedSpinoderm.class));
cards.add(new SetCardInfo("Experimental Augury", 49, Rarity.COMMON, mage.cards.e.ExperimentalAugury.class));
cards.add(new SetCardInfo("Exuberant Fuseling", 129, Rarity.COMMON, mage.cards.e.ExuberantFuseling.class));
cards.add(new SetCardInfo("Eye of Malcator", 50, Rarity.COMMON, mage.cards.e.EyeOfMalcator.class));
cards.add(new SetCardInfo("Ezuri, Stalker of Spheres", 201, Rarity.RARE, mage.cards.e.EzuriStalkerOfSpheres.class));
cards.add(new SetCardInfo("Feed the Infection", 93, Rarity.UNCOMMON, mage.cards.f.FeedTheInfection.class));