[FIN] Implement Instant Ramen

This commit is contained in:
theelk801 2025-05-16 14:00:38 -04:00
parent 2ea3278bdd
commit 94e579543c
17 changed files with 62 additions and 19 deletions

View file

@ -108,7 +108,7 @@ class BrenardGingerSculptorEffect extends OneShotEffect {
effect.setBecomesArtifact(true);
effect.withAdditionalSubType(SubType.FOOD);
effect.withAdditionalSubType(SubType.GOLEM);
effect.addAdditionalAbilities(new FoodAbility(false));
effect.addAdditionalAbilities(new FoodAbility());
player.moveCards(card, Zone.EXILED, source, game);
effect.apply(game, source);

View file

@ -37,7 +37,7 @@ public final class CarrotCake extends CardImpl {
this.addAbility(ability);
// {2}, {T}, Sacrifice Carrot Cake: You gain 3 life.
this.addAbility(new FoodAbility(true));
this.addAbility(new FoodAbility());
}
private CarrotCake(final CarrotCake card) {

View file

@ -42,7 +42,7 @@ public final class EriettesTemptingApple extends CardImpl {
this.addAbility(ability);
// {2}, {T}, Sacrifice Eriette's Tempting Apple: You gain 3 life.
this.addAbility(new FoodAbility(true));
this.addAbility(new FoodAbility());
// {2}, {T}, Sacrifice Eriette's Tempting Apple: Target opponent loses 3 life.
ability = new SimpleActivatedAbility(new LoseLifeTargetEffect(3), new GenericManaCost(2));

View file

@ -46,7 +46,7 @@ public final class Gingerbrute extends CardImpl {
));
// {2}, {T}, Sacrifice Gingerbrute: You gain 3 life.
this.addAbility(new FoodAbility(true));
this.addAbility(new FoodAbility());
}
private Gingerbrute(final Gingerbrute card) {

View file

@ -34,7 +34,7 @@ public final class GoldenEgg extends CardImpl {
this.addAbility(ability);
// {2}, {T}, Sacrifice Golden Egg: You gain 3 life.
this.addAbility(new FoodAbility(true));
this.addAbility(new FoodAbility());
}
private GoldenEgg(final GoldenEgg card) {

View file

@ -97,7 +97,7 @@ class GourmandsTalentEffect extends ContinuousEffectImpl {
permanent.addSubType(game, SubType.FOOD);
break;
case AbilityAddingRemovingEffects_6:
permanent.addAbility(new FoodAbility(true), source.getSourceId(), game);
permanent.addAbility(new FoodAbility(), source.getSourceId(), game);
break;
}
}
@ -113,4 +113,4 @@ class GourmandsTalentEffect extends ContinuousEffectImpl {
public boolean hasLayer(Layer layer) {
return layer == Layer.TypeChangingEffects_4 || layer == Layer.AbilityAddingRemovingEffects_6;
}
}
}

View file

@ -33,7 +33,7 @@ public final class HeapedHarvest extends CardImpl {
));
// {2}, {T}, Sacrifice Heaped Harvest: You gain 3 life.
this.addAbility(new FoodAbility(true));
this.addAbility(new FoodAbility());
}
private HeapedHarvest(final HeapedHarvest card) {

View file

@ -0,0 +1,42 @@
package mage.cards.i;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.keyword.FlashAbility;
import mage.abilities.token.FoodAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class InstantRamen extends CardImpl {
public InstantRamen(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}");
this.subtype.add(SubType.FOOD);
// Flash
this.addAbility(FlashAbility.getInstance());
// When this artifact enters, draw a card.
this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1)));
// {2}, {T}, Sacrifice this artifact: You gain 3 life.
this.addAbility(new FoodAbility());
}
private InstantRamen(final InstantRamen card) {
super(card);
}
@Override
public InstantRamen copy() {
return new InstantRamen(this);
}
}

View file

@ -31,7 +31,7 @@ public final class KrovodHaunch extends CardImpl {
this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(2, 0)));
// {2}, {T}, Sacrifice Krovod Haunch: You gain 3 life.
this.addAbility(new FoodAbility(true));
this.addAbility(new FoodAbility());
// When Krovod Haunch is put into a graveyard from the battlefield, you may pay {1}{W}. If you do, create two 1/1 white Dog creature tokens.
this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(

View file

@ -30,7 +30,7 @@ public final class Lembas extends CardImpl {
this.addAbility(ability);
// {2}, {T}, Sacrifice Lembas: You gain 3 life.
this.addAbility(new FoodAbility(true));
this.addAbility(new FoodAbility());
// When Lembas is put into a graveyard from the battlefield, its owner shuffles it into their library.
this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(

View file

@ -228,7 +228,7 @@ class ShelobChildOfUngoliantEffect extends OneShotEffect {
token.addSubType(SubType.FOOD);
// {2}, {T}, Sacrifice this artifact: You gain 3 life.
token.addAbility(new FoodAbility(false));
token.addAbility(new FoodAbility());
}).apply(game, source);
}
}

View file

@ -60,7 +60,7 @@ public final class SugarCoat extends CardImpl {
// Based on MinimusContainmentEffect
class SugarCoatEffect extends ContinuousEffectImpl {
private static final Ability ability = new FoodAbility(false);
private static final Ability ability = new FoodAbility();
SugarCoatEffect() {
super(Duration.WhileOnBattlefield, Outcome.LoseAbility);
@ -112,4 +112,3 @@ class SugarCoatEffect extends ContinuousEffectImpl {
return layer == Layer.TypeChangingEffects_4 || layer == Layer.AbilityAddingRemovingEffects_6;
}
}

View file

@ -56,7 +56,7 @@ public final class ToughCookie extends CardImpl {
this.addAbility(ability);
// {2}, {T}, Sacrifice Tough Cookie: You gain 3 life.
this.addAbility(new FoodAbility(true));
this.addAbility(new FoodAbility());
}
private ToughCookie(final ToughCookie card) {

View file

@ -88,7 +88,7 @@ class YgraEaterOfAllEffect extends ContinuousEffectImpl {
permanent.addSubType(game, SubType.FOOD);
break;
case AbilityAddingRemovingEffects_6:
permanent.addAbility(new FoodAbility(true), source.getSourceId(), game);
permanent.addAbility(new FoodAbility(), source.getSourceId(), game);
break;
}
}

View file

@ -143,6 +143,7 @@ public final class FinalFantasy extends ExpansionSet {
cards.add(new SetCardInfo("Ifrit, Warden of Inferno", 385, Rarity.MYTHIC, mage.cards.i.IfritWardenOfInferno.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Ifrit, Warden of Inferno", 458, Rarity.MYTHIC, mage.cards.i.IfritWardenOfInferno.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Ifrit, Warden of Inferno", 530, Rarity.MYTHIC, mage.cards.i.IfritWardenOfInferno.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Instant Ramen", 259, Rarity.COMMON, mage.cards.i.InstantRamen.class));
cards.add(new SetCardInfo("Ishgard, the Holy See", 283, Rarity.RARE, mage.cards.i.IshgardTheHolySee.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Ishgard, the Holy See", 310, Rarity.RARE, mage.cards.i.IshgardTheHolySee.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Island", 297, Rarity.LAND, mage.cards.basiclands.Island.class, FULL_ART_BFZ_VARIOUS));

View file

@ -9,11 +9,12 @@ import mage.constants.Zone;
public class FoodAbility extends ActivatedAbilityImpl {
public FoodAbility(boolean named) {
public FoodAbility() {
super(Zone.BATTLEFIELD, new GainLifeEffect(3), new GenericManaCost(2));
// {2}, {T}, Sacrifice this artifact: You gain 3 life.
this.addCost(new TapSourceCost());
this.addCost(new SacrificeSourceCost().setText("sacrifice " + (named ? "{this}" : "this artifact")));
this.addCost(new SacrificeSourceCost());
}
private FoodAbility(final FoodAbility ability) {
@ -24,5 +25,5 @@ public class FoodAbility extends ActivatedAbilityImpl {
public FoodAbility copy() {
return new FoodAbility(this);
}
}

View file

@ -15,7 +15,7 @@ public final class FoodToken extends TokenImpl {
cardType.add(CardType.ARTIFACT);
subtype.add(SubType.FOOD);
this.addAbility(new FoodAbility(false));
this.addAbility(new FoodAbility());
}
private FoodToken(final FoodToken token) {