[VOW] added tokens and images support

This commit is contained in:
Oleg Agafonov 2022-02-05 14:44:46 +04:00
parent dd72e078b5
commit 3cb721fbd9
21 changed files with 143 additions and 23 deletions

View file

@ -10,6 +10,8 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author TheElk801
*/
@ -28,6 +30,8 @@ public final class BloodToken extends TokenImpl {
ability.addCost(new DiscardCardCost());
ability.addCost(new SacrificeSourceCost().setText("Sacrifice this artifact"));
this.addAbility(ability);
availableImageSetCodes = Arrays.asList("VOW");
}
public BloodToken(final BloodToken token) {

View file

@ -4,6 +4,8 @@ import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author TheElk801
*/
@ -16,6 +18,8 @@ public final class Boar3Token extends TokenImpl {
subtype.add(SubType.BOAR);
power = new MageInt(3);
toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("VOW");
}
public Boar3Token(final Boar3Token token) {

View file

@ -6,6 +6,8 @@ import mage.abilities.keyword.HasteAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
*
* @author weirddan455
@ -25,8 +27,10 @@ public class DragonIllusionToken extends TokenImpl {
power = new MageInt(xValue);
toughness = new MageInt(xValue);
addAbility(FlyingAbility.getInstance());
addAbility(HasteAbility.getInstance());
this.addAbility(FlyingAbility.getInstance());
this.addAbility(HasteAbility.getInstance());
availableImageSetCodes = Arrays.asList("VOW");
}
private DragonIllusionToken(final DragonIllusionToken token) {

View file

@ -5,12 +5,14 @@ import mage.abilities.keyword.LifelinkAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author TheElk801
*/
public final class EdgarMarkovsCoffinToken extends TokenImpl {
public final class EdgarMarkovsCoffinVampireToken extends TokenImpl {
public EdgarMarkovsCoffinToken() {
public EdgarMarkovsCoffinVampireToken() {
super("Vampire", "1/1 white and black Vampire creature token with lifelink");
cardType.add(CardType.CREATURE);
color.setWhite(true);
@ -18,14 +20,18 @@ public final class EdgarMarkovsCoffinToken extends TokenImpl {
subtype.add(SubType.VAMPIRE);
power = new MageInt(1);
toughness = new MageInt(1);
// Lifelink
this.addAbility(LifelinkAbility.getInstance());
availableImageSetCodes = Arrays.asList("VOW");
}
public EdgarMarkovsCoffinToken(final EdgarMarkovsCoffinToken token) {
public EdgarMarkovsCoffinVampireToken(final EdgarMarkovsCoffinVampireToken token) {
super(token);
}
public EdgarMarkovsCoffinToken copy() {
return new EdgarMarkovsCoffinToken(this);
public EdgarMarkovsCoffinVampireToken copy() {
return new EdgarMarkovsCoffinVampireToken(this);
}
}

View file

@ -5,6 +5,8 @@ import mage.abilities.keyword.TrainingAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author TheElk801
*/
@ -19,7 +21,11 @@ public class HumanSoldierTrainingToken extends TokenImpl {
subtype.add(SubType.SOLDIER);
power = new MageInt(1);
toughness = new MageInt(1);
// Training (Whenever this creature attacks with another creature with greater power, put a +1/+1 counter on this creature.)
this.addAbility(new TrainingAbility());
availableImageSetCodes = Arrays.asList("VOW");
}
private HumanSoldierTrainingToken(final HumanSoldierTrainingToken token) {

View file

@ -19,7 +19,7 @@ public final class HumanToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
availableImageSetCodes.addAll(Arrays.asList("DKA", "AVR", "FNMP", "RNA", "ELD", "C19", "C20", "MID"));
availableImageSetCodes.addAll(Arrays.asList("DKA", "AVR", "FNMP", "RNA", "ELD", "C19", "C20", "MID", "VOW"));
}
public HumanToken(final HumanToken token) {
@ -34,8 +34,9 @@ public final class HumanToken extends TokenImpl {
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode().equals("AVR")) {
this.setTokenType(1);
if (getOriginalExpansionSetCode().equals("VOW")) {
this.setTokenType(2);
}
}
}

View file

@ -24,7 +24,7 @@ public final class InsectToken extends TokenImpl {
power = new MageInt(1);
toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("M10", "MM2", "SOI", "ZNR");
availableImageSetCodes = Arrays.asList("M10", "MM2", "SOI", "ZNR", "VOW");
}
public InsectToken(final InsectToken token) {

View file

@ -6,6 +6,8 @@ import mage.constants.SubType;
import mage.MageInt;
import mage.ObjectColor;
import java.util.Arrays;
/**
*
* @author spjspj
@ -20,6 +22,17 @@ public final class RedHumanToken extends TokenImpl {
this.color.setRed(true);
this.power = new MageInt(1);
this.toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("AVR", "EMN", "VOW");
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode().equals("AVR")) {
this.setTokenType(2);
}
}
public RedHumanToken(final RedHumanToken token) {

View file

@ -4,6 +4,8 @@ import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author TheElk801
*/
@ -17,6 +19,17 @@ public final class RedWolfToken extends TokenImpl {
subtype.add(SubType.WOLF);
power = new MageInt(3);
toughness = new MageInt(2);
availableImageSetCodes = Arrays.asList("VOW");
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("VOW")) {
setTokenType(2);
}
}
private RedWolfToken(final RedWolfToken token) {

View file

@ -4,6 +4,8 @@ import mage.MageInt;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
* @author TheElk801
*/
@ -16,6 +18,8 @@ public final class SlugToken extends TokenImpl {
subtype.add(SubType.SLUG);
power = new MageInt(1);
toughness = new MageInt(1);
availableImageSetCodes = Arrays.asList("VOW");
}
public SlugToken(final SlugToken token) {

View file

@ -12,6 +12,8 @@ import mage.constants.SubType;
import mage.game.Game;
import mage.game.permanent.Permanent;
import java.util.Arrays;
/**
*
* @author weirddan455
@ -28,7 +30,10 @@ public class SpiritClericToken extends TokenImpl {
power = new MageInt(0);
toughness = new MageInt(0);
// This creatures power and toughness are each equal to the number of Spirits you control.
this.addAbility(new SimpleStaticAbility(new SetPowerToughnessSourceEffect(SpiritClericTokenValue.instance, Duration.EndOfGame)));
availableImageSetCodes = Arrays.asList("VOW");
}
private SpiritClericToken(final SpiritClericToken token) {

View file

@ -23,7 +23,8 @@ public final class SpiritWhiteToken extends TokenImpl {
addAbility(FlyingAbility.getInstance());
availableImageSetCodes = Arrays.asList("AVR", "C14", "CNS", "DDC", "DDK", "FRF", "ISD", "KTK", "M15", "MM2", "SHM",
"SOI", "EMA", "C16", "MM3", "CMA", "E01", "ANA", "GPT", "RAV", "EMN", "RNA", "M20", "C20", "CMR", "KHM", "MID");
"SOI", "EMA", "C16", "MM3", "CMA", "E01", "ANA", "GPT", "RAV", "EMN", "RNA", "M20", "C20", "CMR", "KHM",
"MID", "VOW");
}
@Override

View file

@ -23,7 +23,7 @@ public final class StitcherGeralfZombieToken extends TokenImpl {
power = new MageInt(xValue);
toughness = new MageInt(xValue);
availableImageSetCodes = Arrays.asList("C14", "MIC");
availableImageSetCodes = Arrays.asList("C14", "MIC", "VOW");
}
@Override
@ -37,6 +37,10 @@ public final class StitcherGeralfZombieToken extends TokenImpl {
if (getOriginalExpansionSetCode().equals("MIC")) {
this.setTokenType(2);
}
if (getOriginalExpansionSetCode().equals("VOW")) {
this.setTokenType(2);
}
}
public StitcherGeralfZombieToken(final StitcherGeralfZombieToken token) {

View file

@ -27,7 +27,7 @@ public final class TreasureToken extends TokenImpl {
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
availableImageSetCodes = Arrays.asList("XLN", "RNA", "M20", "C19", "C20", "M21", "CMR", "KHM", "STX", "MH2", "AFR");
availableImageSetCodes = Arrays.asList("XLN", "RNA", "M20", "C19", "C20", "M21", "CMR", "KHM", "STX", "MH2", "AFR", "VOW");
}
public TreasureToken(final TreasureToken token) {

View file

@ -6,6 +6,8 @@ import mage.abilities.keyword.LifelinkAbility;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.Arrays;
/**
*
* @author weirddan455
@ -19,8 +21,20 @@ public class VampireLifelinkToken extends TokenImpl {
subtype.add(SubType.VAMPIRE);
power = new MageInt(2);
toughness = new MageInt(3);
addAbility(FlyingAbility.getInstance());
addAbility(LifelinkAbility.getInstance());
this.addAbility(FlyingAbility.getInstance());
this.addAbility(LifelinkAbility.getInstance());
availableImageSetCodes = Arrays.asList("VOW");
}
@Override
public void setExpansionSetCodeForImage(String code) {
super.setExpansionSetCodeForImage(code);
if (getOriginalExpansionSetCode() != null && getOriginalExpansionSetCode().equals("VOW")) {
setTokenType(2);
}
}
private VampireLifelinkToken(final VampireLifelinkToken token) {

View file

@ -23,7 +23,7 @@ public final class WolfToken extends TokenImpl {
availableImageSetCodes = Arrays.asList("BNG", "C14", "C15", "CMA", "CMD", "CNS", "DKA", "EVE", "ISD",
"LRW", "M10", "M14", "MM2", "MOR", "SHM", "SOI", "SOM", "V10", "WWK", "ZEN", "WAR", "M20",
"THB", "AFR", "MID");
"THB", "AFR", "MID", "VOW");
}
@Override

View file

@ -25,7 +25,7 @@ public final class ZombieToken extends TokenImpl {
"CNS", "MMA", "BNG", "KTK", "DTK", "ORI", "OGW",
"SOI", "EMN", "EMA", "MM3", "AKH", "CMA", "E01",
"RNA", "WAR", "MH1", "M20", "C19", "THB", "M21",
"CMR", "C21", "MH2", "AFR", "MIC");
"CMR", "C21", "MH2", "AFR", "MIC", "VOW");
}
@Override