The Magarena cubes now contain 555 and 875 cards. That's all folks.
parent
8280ebb2ec
commit
6737805b1a
|
@ -7296,17 +7296,142 @@ power=2
|
|||
toughness=1
|
||||
timing=main
|
||||
|
||||
>Koth's Courier
|
||||
image=http://magiccards.info/scans/en/mbs/68.jpg
|
||||
>Vindicate
|
||||
image=http://magiccards.info/scans/en/jr/33.jpg
|
||||
cube=default
|
||||
value=4
|
||||
removal=5
|
||||
rarity=2
|
||||
type=Sorcery
|
||||
color=wb
|
||||
converted=3
|
||||
cost={1}{W}{B}
|
||||
timing=removal
|
||||
|
||||
>Juniper Order Ranger
|
||||
image=http://magiccards.info/scans/en/cs/130.jpg
|
||||
cube=default
|
||||
value=4
|
||||
rarity=2
|
||||
type=Creature
|
||||
subtype=Human,Knight
|
||||
color=gw
|
||||
converted=5
|
||||
cost={3}{G}{W}
|
||||
power=2
|
||||
toughness=4
|
||||
timing=fmain
|
||||
|
||||
>Dragon Fodder
|
||||
image=http://magiccards.info/scans/en/arc/34.jpg
|
||||
cube=default
|
||||
value=3
|
||||
rarity=1
|
||||
type=Creature
|
||||
subtype=Human,Rogue
|
||||
type=Sorcery
|
||||
color=r
|
||||
converted=3
|
||||
cost={1}{R}{R}
|
||||
power=2
|
||||
toughness=3
|
||||
ability=forestwalk
|
||||
converted=2
|
||||
cost={1}{R}
|
||||
timing=main
|
||||
|
||||
>Knight Exemplar
|
||||
image=http://magiccards.info/scans/en/m11/20.jpg
|
||||
cube=default
|
||||
value=4
|
||||
rarity=2
|
||||
type=Creature
|
||||
subtype=Human,Knight
|
||||
color=w
|
||||
converted=3
|
||||
cost={1}{W}{W}
|
||||
power=2
|
||||
toughness=2
|
||||
ability=first strike
|
||||
static=player
|
||||
timing=fmain
|
||||
|
||||
>Silvos, Rogue Elemental
|
||||
image=http://magiccards.info/scans/en/on/282.jpg
|
||||
cube=default
|
||||
value=5
|
||||
rarity=3
|
||||
type=Legendary,Creature
|
||||
subtype=Elemental
|
||||
color=g
|
||||
converted=6
|
||||
cost={3}{G}{G}{G}
|
||||
power=8
|
||||
toughness=5
|
||||
ability=trample
|
||||
timing=main
|
||||
|
||||
>Visara the Dreadful
|
||||
image=http://magiccards.info/scans/en/on/179.jpg
|
||||
cube=default
|
||||
value=5
|
||||
rarity=3
|
||||
type=Legendary,Creature
|
||||
subtype=Gorgon
|
||||
color=b
|
||||
converted=6
|
||||
cost={3}{B}{B}{B}
|
||||
power=5
|
||||
toughness=5
|
||||
ability=flying
|
||||
timing=main
|
||||
|
||||
>Havoc Demon
|
||||
image=http://magiccards.info/scans/en/le/74.jpg
|
||||
cube=default
|
||||
value=5
|
||||
rarity=3
|
||||
type=Creature
|
||||
subtype=Demon
|
||||
color=b
|
||||
converted=7
|
||||
cost={5}{B}{B}
|
||||
power=5
|
||||
toughness=5
|
||||
ability=flying
|
||||
timing=main
|
||||
|
||||
>Thunder Dragon
|
||||
image=http://magiccards.info/scans/en/fvd/14.jpg
|
||||
cube=default
|
||||
value=5
|
||||
rarity=3
|
||||
type=Creature
|
||||
subtype=Dragon
|
||||
color=r
|
||||
converted=7
|
||||
cost={5}{R}{R}
|
||||
power=5
|
||||
toughness=5
|
||||
ability=flying
|
||||
timing=main
|
||||
|
||||
>Perilous Myr
|
||||
image=http://magiccards.info/scans/en/som/192.jpg
|
||||
cube=default
|
||||
value=3
|
||||
rarity=2
|
||||
type=Artifact,Creature
|
||||
subtype=Myr
|
||||
converted=2
|
||||
cost={2}
|
||||
power=1
|
||||
toughness=1
|
||||
timing=main
|
||||
|
||||
>Arcanis the Omnipotent
|
||||
image=http://magiccards.info/scans/en/10e/66.jpg
|
||||
cube=default
|
||||
value=5
|
||||
rarity=3
|
||||
type=Legendary,Creature
|
||||
subtype=Wizard
|
||||
color=u
|
||||
converted=6
|
||||
cost={3}{U}{U}{U}
|
||||
power=3
|
||||
toughness=4
|
||||
timing=smain
|
||||
|
|
|
@ -2119,6 +2119,26 @@ public class CardEventDefinitions {
|
|||
}
|
||||
};
|
||||
|
||||
private static final MagicSpellCardEvent DRAGON_FODDER=new MagicSpellCardEvent("Dragon Fodder") {
|
||||
|
||||
@Override
|
||||
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
|
||||
|
||||
final MagicPlayer player=cardOnStack.getController();
|
||||
return new MagicEvent(cardOnStack.getCard(),player,new Object[]{cardOnStack,player},this,
|
||||
"Put two 1/1 red Goblin creature tokens onto the battlefield.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game,final MagicEvent event,final Object[] data,final Object[] choiceResults) {
|
||||
|
||||
game.doAction(new MagicMoveCardAction((MagicCardOnStack)data[0]));
|
||||
final MagicPlayer player=(MagicPlayer)data[1];
|
||||
game.doAction(new MagicPlayTokenAction(player,TokenCardDefinitions.GOBLIN1_TOKEN_CARD));
|
||||
game.doAction(new MagicPlayTokenAction(player,TokenCardDefinitions.GOBLIN1_TOKEN_CARD));
|
||||
}
|
||||
};
|
||||
|
||||
private static final MagicSpellCardEvent EARTHQUAKE=new MagicSpellCardEvent("Earthquake") {
|
||||
|
||||
@Override
|
||||
|
@ -2791,6 +2811,26 @@ public class CardEventDefinitions {
|
|||
}
|
||||
}
|
||||
};
|
||||
|
||||
private static final MagicSpellCardEvent VINDICATE=new MagicSpellCardEvent("Vindicate") {
|
||||
|
||||
@Override
|
||||
public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) {
|
||||
|
||||
return new MagicEvent(cardOnStack.getCard(),cardOnStack.getController(),MagicTargetChoice.NEG_TARGET_PERMANENT,
|
||||
new MagicDestroyTargetPicker(false),new Object[]{cardOnStack},this,"Destroy target permanent$.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game,final MagicEvent event,final Object[] data,final Object[] choiceResults) {
|
||||
|
||||
game.doAction(new MagicMoveCardAction((MagicCardOnStack)data[0]));
|
||||
final MagicPermanent permanent=event.getTarget(game,choiceResults,0);
|
||||
if (permanent!=null) {
|
||||
game.doAction(new MagicDestroyAction(permanent));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private static final MagicSpellCardEvent ZOMBIFY=new MagicSpellCardEvent("Zombify") {
|
||||
|
||||
|
@ -3210,6 +3250,7 @@ public class CardEventDefinitions {
|
|||
DAY_OF_JUDGMENT,
|
||||
DEATH_GRASP,
|
||||
DIVINATION,
|
||||
DRAGON_FODDER,
|
||||
EARTHQUAKE,
|
||||
EXHAUSTION,
|
||||
FLAME_SLASH,
|
||||
|
@ -3238,6 +3279,7 @@ public class CardEventDefinitions {
|
|||
TIME_EBB,
|
||||
TIME_WARP,
|
||||
TITANIC_ULTIMATUM,
|
||||
VINDICATE,
|
||||
ZOMBIFY,
|
||||
GOBLIN_BUSHWHACKER,
|
||||
GOBLIN_RUINBLASTER,
|
||||
|
|
|
@ -95,7 +95,7 @@ import magic.model.variable.MagicDummyLocalVariable;
|
|||
import magic.model.variable.MagicLocalVariable;
|
||||
|
||||
public class PermanentActivationDefinitions {
|
||||
|
||||
|
||||
private static final MagicPermanentActivation AIR_SERVANT=new MagicPermanentActivation("Air Servant",
|
||||
new MagicCondition[]{MagicManaCost.TWO_BLUE.getCondition()},new MagicActivationHints(MagicTiming.Tapping)) {
|
||||
|
||||
|
@ -122,6 +122,51 @@ public class PermanentActivationDefinitions {
|
|||
}
|
||||
};
|
||||
|
||||
private static final MagicPermanentActivation ARCANIS_THE_OMNIPOTENT1=new MagicPermanentActivation("Arcanis the Omnipotent",
|
||||
new MagicCondition[]{MagicCondition.CAN_TAP_CONDITION},new MagicActivationHints(MagicTiming.Token)) {
|
||||
|
||||
@Override
|
||||
public MagicEvent[] getCostEvent(final MagicSource source) {
|
||||
|
||||
return new MagicEvent[]{new MagicTapEvent((MagicPermanent)source)};
|
||||
}
|
||||
|
||||
@Override
|
||||
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
|
||||
|
||||
final MagicPlayer player=source.getController();
|
||||
return new MagicEvent(source,player,new Object[]{player},this,"You draw three cards.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game,final MagicEvent event,final Object[] data,final Object[] choiceResults) {
|
||||
|
||||
game.doAction(new MagicDrawAction((MagicPlayer)data[0],3));
|
||||
}
|
||||
};
|
||||
|
||||
private static final MagicPermanentActivation ARCANIS_THE_OMNIPOTENT2=new MagicPermanentActivation("Arcanis the Omnipotent",
|
||||
new MagicCondition[]{MagicManaCost.TWO_BLUE_BLUE.getCondition()},new MagicActivationHints(MagicTiming.Removal)) {
|
||||
|
||||
@Override
|
||||
public MagicEvent[] getCostEvent(final MagicSource source) {
|
||||
|
||||
return new MagicEvent[]{new MagicPayManaCostEvent(source,source.getController(),MagicManaCost.TWO_BLUE_BLUE)};
|
||||
}
|
||||
|
||||
@Override
|
||||
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
|
||||
|
||||
return new MagicEvent(source,source.getController(),new Object[]{source},this,"Return Arcanis the Omnipotent to its owner's hand.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game,final MagicEvent event,final Object[] data,final Object[] choiceResults) {
|
||||
|
||||
game.doAction(new MagicRemoveFromPlayAction((MagicPermanent)data[0],MagicLocationType.OwnersHand));
|
||||
}
|
||||
};
|
||||
|
||||
private static final MagicPermanentActivation BOROS_GUILDMAGE1=new MagicPermanentActivation(
|
||||
"Boros Guildmage",new MagicCondition[]{MagicManaCost.ONE_RED.getCondition()},new MagicActivationHints(MagicTiming.Pump,true)) {
|
||||
|
||||
|
@ -1492,6 +1537,8 @@ public class PermanentActivationDefinitions {
|
|||
}
|
||||
}
|
||||
};
|
||||
|
||||
private static final MagicPermanentActivation SILVOS_ROGUE_ELEMENTAL=new MagicRegenerationActivation("Silvos, Rogue Elemental",MagicManaCost.GREEN);
|
||||
|
||||
private static final MagicPermanentActivation SKELETAL_VAMPIRE1=new MagicPermanentActivation("Skeletal Vampire",
|
||||
new MagicCondition[]{MagicManaCost.THREE_BLACK_BLACK.getCondition(),MagicCondition.CONTROL_BAT_CONDITION},
|
||||
|
@ -1845,6 +1892,33 @@ public class PermanentActivationDefinitions {
|
|||
}
|
||||
};
|
||||
|
||||
private static final MagicPermanentActivation VISARA_THE_DREADFUL=new MagicPermanentActivation("Visara the Dreadful",
|
||||
new MagicCondition[]{MagicCondition.CAN_TAP_CONDITION},new MagicActivationHints(MagicTiming.Removal)) {
|
||||
|
||||
@Override
|
||||
public MagicEvent[] getCostEvent(final MagicSource source) {
|
||||
|
||||
return new MagicEvent[]{new MagicTapEvent((MagicPermanent)source)};
|
||||
}
|
||||
|
||||
@Override
|
||||
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
|
||||
|
||||
return new MagicEvent(source,source.getController(),MagicTargetChoice.NEG_TARGET_CREATURE,new MagicDestroyTargetPicker(true),
|
||||
MagicEvent.NO_DATA,this,"Destroy target creature$. It can't be regenerated.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game,final MagicEvent event,final Object[] data,final Object[] choiceResults) {
|
||||
|
||||
final MagicPermanent creature=event.getTarget(game,choiceResults,0);
|
||||
if (creature!=null) {
|
||||
game.doAction(new MagicChangeStateAction(creature,MagicPermanentState.CannotBeRegenerated,true));
|
||||
game.doAction(new MagicDestroyAction(creature));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private static final MagicPermanentActivation WALL_OF_BONE=new MagicRegenerationActivation("Wall of Bone",MagicManaCost.BLACK);
|
||||
|
||||
private static final MagicPermanentActivation ANGELIC_SHIELD=new MagicPermanentActivation(
|
||||
|
@ -2538,6 +2612,8 @@ public class PermanentActivationDefinitions {
|
|||
|
||||
private static Collection<MagicPermanentActivation> ACTIVATIONS=Arrays.asList(
|
||||
AIR_SERVANT,
|
||||
ARCANIS_THE_OMNIPOTENT1,
|
||||
ARCANIS_THE_OMNIPOTENT2,
|
||||
BOROS_GUILDMAGE1,
|
||||
BOROS_GUILDMAGE2,
|
||||
BOTTLE_GNOMES,
|
||||
|
@ -2598,6 +2674,7 @@ public class PermanentActivationDefinitions {
|
|||
SCATTERSHOT_ARCHER,
|
||||
SIEGE_GANG_COMMANDER,
|
||||
SILKBIND_FAERIE,
|
||||
SILVOS_ROGUE_ELEMENTAL,
|
||||
SKELETAL_VAMPIRE1,
|
||||
SKELETAL_VAMPIRE2,
|
||||
SKITHIRYX1,
|
||||
|
@ -2617,6 +2694,7 @@ public class PermanentActivationDefinitions {
|
|||
URSAPINE,
|
||||
VAMPIRE_HEXMAGE,
|
||||
VEDALKEN_MASTERMIND,
|
||||
VISARA_THE_DREADFUL,
|
||||
WALL_OF_BONE,
|
||||
ANGELIC_SHIELD,
|
||||
ASCETICISM,
|
||||
|
|
|
@ -999,6 +999,30 @@ public class TriggerDefinitions {
|
|||
|
||||
private static final MagicTrigger GUUL_DRAZ_SPECTER=new MagicSpecterTrigger("Guul Draz Specter",true,false);
|
||||
|
||||
private static final MagicTrigger HAVOC_DEMON=new MagicTrigger(MagicTriggerType.WhenPutIntoGraveyard,"Havoc Demon") {
|
||||
|
||||
@Override
|
||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final Object data) {
|
||||
|
||||
final MagicGraveyardTriggerData triggerData=(MagicGraveyardTriggerData)data;
|
||||
if (MagicLocationType.Play==triggerData.fromLocation) {
|
||||
final MagicPlayer player=permanent.getController();
|
||||
return new MagicEvent(permanent,player,new Object[]{player},this,"All creatures get -5/-5 until end of turn.");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game,final MagicEvent event,final Object data[],final Object[] choiceResults) {
|
||||
|
||||
final Collection<MagicTarget> targets=game.filterTargets((MagicPlayer)data[0],MagicTargetFilter.TARGET_CREATURE);
|
||||
for (final MagicTarget target : targets) {
|
||||
|
||||
game.doAction(new MagicChangeTurnPTAction((MagicPermanent)target,-5,-5));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private static final MagicTrigger HERO_OF_BLADEHOLD=new MagicTrigger(MagicTriggerType.WhenAttacks,"Hero of Bladehold") {
|
||||
|
||||
@Override
|
||||
|
@ -1044,6 +1068,28 @@ public class TriggerDefinitions {
|
|||
|
||||
private static final MagicTrigger HYPNOTIC_SPECTER=new MagicSpecterTrigger("Hypnotic Specter",false,true);
|
||||
|
||||
private static final MagicTrigger JUNIPER_ORDER_RANGER=new MagicTrigger(MagicTriggerType.WhenOtherComesIntoPlay,"Juniper Order Ranger") {
|
||||
|
||||
@Override
|
||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final Object data) {
|
||||
|
||||
final MagicPermanent otherPermanent=(MagicPermanent)data;
|
||||
final MagicPlayer player=permanent.getController();
|
||||
if (otherPermanent!=permanent&&otherPermanent.isCreature()&&otherPermanent.getController()==player) {
|
||||
return new MagicEvent(permanent,player,new Object[]{otherPermanent,permanent},this,
|
||||
"Put a +1/+1 counter on "+otherPermanent.getName()+" and a +1/+1 counter on Juniper Order Ranger.");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game,final MagicEvent event,final Object data[],final Object[] choiceResults) {
|
||||
|
||||
game.doAction(new MagicChangeCountersAction((MagicPermanent)data[0],MagicCounterType.PlusOne,1,true));
|
||||
game.doAction(new MagicChangeCountersAction((MagicPermanent)data[1],MagicCounterType.PlusOne,1,true));
|
||||
}
|
||||
};
|
||||
|
||||
private static final MagicTrigger KAERVEK_THE_MERCILESS=new MagicTrigger(MagicTriggerType.WhenSpellIsPlayed,"Kaervek the Merciless") {
|
||||
|
||||
@Override
|
||||
|
@ -1764,6 +1810,30 @@ public class TriggerDefinitions {
|
|||
}
|
||||
};
|
||||
|
||||
private static final MagicTrigger PERILOUS_MYR=new MagicTrigger(MagicTriggerType.WhenPutIntoGraveyard,"Perilous Myr") {
|
||||
|
||||
@Override
|
||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final Object data) {
|
||||
|
||||
final MagicGraveyardTriggerData triggerData=(MagicGraveyardTriggerData)data;
|
||||
if (MagicLocationType.Play==triggerData.fromLocation) {
|
||||
return new MagicEvent(permanent,permanent.getController(),MagicTargetChoice.TARGET_CREATURE_OR_PLAYER,new MagicDamageTargetPicker(2),
|
||||
new Object[]{permanent},this,"Perilous Myr deals 2 damage to target creature or player$.");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game,final MagicEvent event,final Object data[],final Object[] choiceResults) {
|
||||
|
||||
final MagicTarget target=event.getTarget(game,choiceResults,0);
|
||||
if (target!=null) {
|
||||
final MagicDamage damage=new MagicDamage((MagicPermanent)data[0],target,2,false);
|
||||
game.doAction(new MagicDealDamageAction(damage));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private static final MagicTrigger PERIMETER_CAPTAIN=new MagicTrigger(MagicTriggerType.WhenBlocks,"Perimeter Captain") {
|
||||
|
||||
@Override
|
||||
|
@ -2376,6 +2446,28 @@ public class TriggerDefinitions {
|
|||
|
||||
private static final MagicTrigger THIEVING_MAGPIE=new MagicThiefTrigger("Thieving Magpie",false,1);
|
||||
|
||||
private static final MagicTrigger THUNDER_DRAGON=new MagicTrigger(MagicTriggerType.WhenComesIntoPlay,"Thunder Dragon") {
|
||||
|
||||
@Override
|
||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final Object data) {
|
||||
|
||||
final MagicPlayer player=permanent.getController();
|
||||
return new MagicEvent(permanent,player,new Object[]{permanent,player},this,"Thunder Dragon deals 3 damage to each creature without flying.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game,final MagicEvent event,final Object data[],final Object[] choiceResults) {
|
||||
|
||||
final MagicSource source=(MagicSource)data[0];
|
||||
final Collection<MagicTarget> creatures=game.filterTargets((MagicPlayer)data[1],MagicTargetFilter.TARGET_CREATURE_WITHOUT_FLYING);
|
||||
for (final MagicTarget creature : creatures) {
|
||||
|
||||
final MagicDamage damage=new MagicDamage(source,creature,3,false);
|
||||
game.doAction(new MagicDealDamageAction(damage));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private static final MagicTrigger TREVA_THE_RENEWER=new MagicTrigger(MagicTriggerType.WhenDamageIsDealt,"Treva, the Renewer") {
|
||||
|
||||
@Override
|
||||
|
@ -3807,9 +3899,11 @@ public class TriggerDefinitions {
|
|||
GUARD_GOMAZOA,
|
||||
GUARDIAN_SERAPH,
|
||||
GUUL_DRAZ_SPECTER,
|
||||
HAVOC_DEMON,
|
||||
HERO_OF_BLADEHOLD,
|
||||
HUNGRY_SPRIGGAN,
|
||||
HYPNOTIC_SPECTER,
|
||||
JUNIPER_ORDER_RANGER,
|
||||
KAERVEK_THE_MERCILESS,
|
||||
KAZUUL_TYRANT_OF_THE_CLIFFS,
|
||||
KEENING_BANSHEE,
|
||||
|
@ -3844,6 +3938,7 @@ public class TriggerDefinitions {
|
|||
NULLTREAD_GARGANTUAN,
|
||||
PELAKKA_WURM1,
|
||||
PELAKKA_WURM2,
|
||||
PERILOUS_MYR,
|
||||
PERIMETER_CAPTAIN,
|
||||
OROS_THE_AVENGER,
|
||||
PHYREXIAN_VATMOTHER,
|
||||
|
@ -3877,6 +3972,7 @@ public class TriggerDefinitions {
|
|||
TAUREAN_MAULER,
|
||||
TENEB_THE_HARVESTER,
|
||||
THIEVING_MAGPIE,
|
||||
THUNDER_DRAGON,
|
||||
TREVA_THE_RENEWER,
|
||||
TRYGON_PREDATOR,
|
||||
TUKTUK_THE_EXPLORER,
|
||||
|
|
|
@ -53,6 +53,7 @@ public class MagicManaCost {
|
|||
public static final MagicManaCost ONE_BLUE=MagicManaCost.createCost("{1}{U}");
|
||||
public static final MagicManaCost TWO_BLUE=MagicManaCost.createCost("{2}{U}");
|
||||
public static final MagicManaCost BLUE_BLUE=MagicManaCost.createCost("{U}{U}");
|
||||
public static final MagicManaCost TWO_BLUE_BLUE=MagicManaCost.createCost("{2}{U}{U}");
|
||||
public static final MagicManaCost ONE_GREEN=MagicManaCost.createCost("{1}{G}");
|
||||
public static final MagicManaCost TWO_GREEN=MagicManaCost.createCost("{2}{G}");
|
||||
public static final MagicManaCost TWO_GREEN_GREEN=MagicManaCost.createCost("{2}{G}{G}");
|
||||
|
|
|
@ -43,6 +43,8 @@ public class MagicTargetChoice extends MagicChoice {
|
|||
new MagicTargetChoice(MagicTargetFilter.TARGET_PERMANENT,true,MagicTargetHint.None,"target permanent");
|
||||
public static final MagicTargetChoice TARGET_PERMANENT_YOU_CONTROL=
|
||||
new MagicTargetChoice(MagicTargetFilter.TARGET_PERMANENT_YOU_CONTROL,true,MagicTargetHint.None,"target permanent you control");
|
||||
public static final MagicTargetChoice NEG_TARGET_PERMANENT=
|
||||
new MagicTargetChoice(MagicTargetFilter.TARGET_PERMANENT,true,MagicTargetHint.Negative,"target permanent");
|
||||
public static final MagicTargetChoice TARGET_NONBASIC_LAND=
|
||||
new MagicTargetChoice(MagicTargetFilter.TARGET_NONBASIC_LAND,true,MagicTargetHint.None,"target non basic land");
|
||||
public static final MagicTargetChoice TARGET_NONLAND_PERMANENT=
|
||||
|
|
|
@ -35,6 +35,7 @@ public class MagicStaticLocalVariable implements MagicLocalVariable {
|
|||
private static int goblinChieftain;
|
||||
private static int godheadOfAwe;
|
||||
private static int kinsbaileCavalier;
|
||||
private static int knightExemplar;
|
||||
private static int kulrathKnight;
|
||||
private static int levitation;
|
||||
private static int madrushCyclops;
|
||||
|
@ -99,6 +100,10 @@ public class MagicStaticLocalVariable implements MagicLocalVariable {
|
|||
if (count>0&&permanent.hasSubType(MagicSubType.Goblin)) {
|
||||
both+=getOtherCount(goblinChieftain,permanent,count);
|
||||
}
|
||||
count=controller.getCount(knightExemplar);
|
||||
if (count>0&&permanent.hasSubType(MagicSubType.Knight)) {
|
||||
both+=getOtherCount(knightExemplar,permanent,count);
|
||||
}
|
||||
count=controller.getCount(eleshNorn);
|
||||
both+=getOtherCount(eleshNorn,permanent,count)*2;
|
||||
both-=opponent.getCount(eleshNorn)*2;
|
||||
|
@ -165,6 +170,9 @@ public class MagicStaticLocalVariable implements MagicLocalVariable {
|
|||
(controller.getCount(goblinChieftain)>0&&permanent.hasSubType(MagicSubType.Goblin))) {
|
||||
flags|=MagicAbility.Haste.getMask();
|
||||
}
|
||||
if (getOtherCount(knightExemplar,permanent,controller)>0&&permanent.hasSubType(MagicSubType.Knight)) {
|
||||
flags|=MagicAbility.Indestructible.getMask();
|
||||
}
|
||||
if (game.getOtherPlayerCount(kulrathKnight,controller)>0&&permanent.hasCounters()) {
|
||||
flags|=MagicAbility.CannotAttackOrBlock.getMask();
|
||||
}
|
||||
|
@ -228,6 +236,7 @@ public class MagicStaticLocalVariable implements MagicLocalVariable {
|
|||
goblinChieftain=definitions.getCard("Goblin Chieftain").getIndex();
|
||||
godheadOfAwe=definitions.getCard("Godhead of Awe").getIndex();
|
||||
kinsbaileCavalier=definitions.getCard("Kinsbaile Cavalier").getIndex();
|
||||
knightExemplar=definitions.getCard("Knight Exemplar").getIndex();
|
||||
kulrathKnight=definitions.getCard("Kulrath Knight").getIndex();
|
||||
levitation=definitions.getCard("Levitation").getIndex();
|
||||
madrushCyclops=definitions.getCard("Madrush Cyclops").getIndex();
|
||||
|
|
|
@ -118,20 +118,26 @@ public class TestGameBuilder {
|
|||
addToGraveyard(player,"Mogg Fanatic",2);
|
||||
addToGraveyard(opponent,"Island",2);
|
||||
addToHand(opponent,"Zephyr Sprite",3);
|
||||
addToHand(player,"Lightning Helix",1);
|
||||
addToHand(player,"Lightning Greaves",1);
|
||||
addToHand(player,"Barbed Battlegear",1);
|
||||
addToHand(player,"Go for the Throat",1);
|
||||
addToHand(player,"Cumber Stone",1);
|
||||
addToHand(player,"Phyrexian Digester",1);
|
||||
addToHand(player,"Suture Priest",1);
|
||||
addToHand(player,"Elesh Norn, Grand Cenobite",1);
|
||||
|
||||
addToHand(player,"Vulshok Battlegear",1);
|
||||
addToHand(player,"Vindicate",1);
|
||||
addToHand(player,"Dragon Fodder",1);
|
||||
addToHand(player,"Juniper Order Ranger",1);
|
||||
addToHand(player,"Knight Exemplar",1);
|
||||
addToHand(player,"Silver Knight",1);
|
||||
addToHand(player,"Silvos, Rogue Elemental",1);
|
||||
addToHand(player,"Visara the Dreadful",1);
|
||||
addToHand(player,"Havoc Demon",1);
|
||||
addToHand(player,"Thunder Dragon",1);
|
||||
addToHand(player,"Arcanis the Omnipotent",1);
|
||||
addToHand(player,"Perilous Myr",1);
|
||||
|
||||
createPermanent(game,player,"Watchwolf",false,1);
|
||||
createPermanent(game,player,"Bonesplitter",false,1);
|
||||
createPermanent(game,player,"Rupture Spire",false,7);
|
||||
createPermanent(game,opponent,"Bloodrock Cyclops",false,1);
|
||||
createPermanent(game,opponent,"Suture Priest",false,1);
|
||||
createPermanent(game,opponent,"Silver Knight",false,1);
|
||||
|
||||
return game;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue