From a10fbc765f21408de615f985d85b3f6e4debb130 Mon Sep 17 00:00:00 2001 From: jmharmon <37360760+jmharmon@users.noreply.github.com> Date: Tue, 3 Sep 2019 23:38:08 -0700 Subject: [PATCH] Implement Food Token --- .../mage/game/permanent/token/FoodToken.java | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 Mage/src/main/java/mage/game/permanent/token/FoodToken.java diff --git a/Mage/src/main/java/mage/game/permanent/token/FoodToken.java b/Mage/src/main/java/mage/game/permanent/token/FoodToken.java new file mode 100644 index 00000000000..e2d1b072214 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/FoodToken.java @@ -0,0 +1,60 @@ +package mage.game.permanent.token.custom; + +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.GainLifeEffect; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.Zone; +import mage.game.permanent.token.TokenImpl; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * + * @author jmharmon + */ + +public final class FoodToken extends TokenImpl { + + static final private List tokenImageSets = new ArrayList<>(); + + static { + tokenImageSets.addAll(Arrays.asList("ELD")); + } + + public FoodToken() { + this(null, 0); + } + + public FoodToken(String setCode) { + this(setCode, 0); + } + + public FoodToken(String setCode, int tokenType) { + super("Food", "Food token"); + availableImageSetCodes = tokenImageSets; + setOriginalExpansionSetCode(setCode); + cardType.add(CardType.ARTIFACT); + subtype.add(SubType.FOOD); + + // {2}, {T}, Sacrifice this artifact: You gain 3 life.” + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(3), new GenericManaCost(2)); + SacrificeSourceCost cost = new SacrificeSourceCost(); + cost.setText("Sacrifice this artifact"); + ability.addCost(cost); + this.addAbility(ability); + } + + public FoodToken(final FoodToken token) { + super(token); + } + + public FoodToken copy() { + return new FoodToken(this); + } +}