moved local variables to card specific class

master
melvin 2011-08-10 20:40:17 +08:00
parent 814e5b00b7
commit 46a1b66f04
16 changed files with 471 additions and 9 deletions

View File

@ -0,0 +1,24 @@
package magic.card;
import java.util.Arrays;
import magic.model.event.*;
import magic.model.stack.*;
import magic.model.choice.*;
import magic.model.target.*;
import magic.model.action.*;
import magic.model.trigger.*;
import magic.model.condition.*;
import magic.model.variable.*;
import magic.model.*;
public class Bant_Sureblade {
private static final MagicLocalVariable BANT_SUREBLADE=new MagicBladeLocalVariable(MagicAbility.FirstStrike.getMask());
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.addLocalVariable(BANT_SUREBLADE);
}
};
}

View File

@ -0,0 +1,39 @@
package magic.card;
import java.util.Arrays;
import magic.model.event.*;
import magic.model.stack.*;
import magic.model.choice.*;
import magic.model.target.*;
import magic.model.action.*;
import magic.model.trigger.*;
import magic.model.condition.*;
import magic.model.variable.*;
import magic.model.*;
public class Cairn_Wanderer {
private static final MagicLocalVariable CAIRN_WANDERER=new MagicDummyLocalVariable() {
@Override
public long getAbilityFlags(MagicGame game,MagicPermanent permanent,long flags) {
long newFlags=0;
for (final MagicPlayer player : game.getPlayers()) {
for (final MagicCard card : player.getGraveyard()) {
final MagicCardDefinition cardDefinition=card.getCardDefinition();
if (cardDefinition.isCreature()) {
newFlags|=cardDefinition.getAbilityFlags();
}
}
}
return flags|(newFlags&MagicAbility.CAIRN_WANDERER_FLAGS);
}
};
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.addLocalVariable(CAIRN_WANDERER);
}
};
}

View File

@ -13,9 +13,23 @@ import magic.model.variable.*;
public class Echo_Mage { public class Echo_Mage {
public static final MagicPermanentActivation V615 = new MagicLevelUpActivation("Echo Mage",MagicManaCost.ONE_BLUE,4); private static final MagicLocalVariable ECHO_MAGE=new MagicDummyLocalVariable() {
@Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
final int charges=permanent.getCounters(MagicCounterType.Charge);
if (charges>=4) {
pt.power=2;
pt.toughness=5;
} else if (charges>=2) {
pt.power=2;
pt.toughness=4;
}
}
};
public static final MagicPermanentActivation V617 =new MagicPermanentActivation("Echo Mage", public static final MagicPermanentActivation V615 = new MagicLevelUpActivation("Echo Mage",MagicManaCost.ONE_BLUE,4);
public static final MagicPermanentActivation V617 = new MagicPermanentActivation("Echo Mage",
new MagicCondition[]{ new MagicCondition[]{
MagicCondition.TWO_CHARGE_COUNTERS_CONDITION, MagicCondition.TWO_CHARGE_COUNTERS_CONDITION,
MagicCondition.CAN_TAP_CONDITION,MagicManaCost.BLUE_BLUE.getCondition()}, MagicCondition.CAN_TAP_CONDITION,MagicManaCost.BLUE_BLUE.getCondition()},
@ -57,4 +71,12 @@ public class Echo_Mage {
} }
}; };
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(ECHO_MAGE);
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.setVariablePT();
}
};
} }

View File

@ -0,0 +1,24 @@
package magic.card;
import java.util.Arrays;
import magic.model.event.*;
import magic.model.stack.*;
import magic.model.choice.*;
import magic.model.target.*;
import magic.model.action.*;
import magic.model.trigger.*;
import magic.model.condition.*;
import magic.model.variable.*;
import magic.model.*;
public class Esper_Stormblade {
private static final MagicLocalVariable ESPER_STORMBLADE=new MagicBladeLocalVariable(MagicAbility.Flying.getMask());
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.addLocalVariable(ESPER_STORMBLADE);
}
};
}

View File

@ -0,0 +1,33 @@
package magic.card;
import java.util.Arrays;
import magic.model.event.*;
import magic.model.stack.*;
import magic.model.choice.*;
import magic.model.target.*;
import magic.model.action.*;
import magic.model.trigger.*;
import magic.model.condition.*;
import magic.model.variable.*;
import magic.model.*;
public class Goblin_Gaveleer {
private static final MagicLocalVariable GOBLIN_GAVELEER=new MagicDummyLocalVariable() {
@Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
if (permanent.isEquipped()) {
pt.power+=permanent.getEquipmentPermanents().size()<<1;
}
}
};
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.addLocalVariable(GOBLIN_GAVELEER);
}
};
}

View File

@ -0,0 +1,24 @@
package magic.card;
import java.util.Arrays;
import magic.model.event.*;
import magic.model.stack.*;
import magic.model.choice.*;
import magic.model.target.*;
import magic.model.action.*;
import magic.model.trigger.*;
import magic.model.condition.*;
import magic.model.variable.*;
import magic.model.*;
public class Grixis_Grimblade {
private static final MagicLocalVariable GRIXIS_GRIMBLADE=new MagicBladeLocalVariable(MagicAbility.Deathtouch.getMask());
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.addLocalVariable(GRIXIS_GRIMBLADE);
}
};
}

View File

@ -13,6 +13,24 @@ import magic.model.variable.*;
public class Guul_Draz_Specter { public class Guul_Draz_Specter {
private static final MagicLocalVariable GUUL_DRAZ_SPECTER=new MagicDummyLocalVariable() {
@Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
if (game.getOpponent(permanent.getController()).getHand().isEmpty()) {
pt.power+=3;
pt.toughness+=3;
}
}
};
public static final MagicTrigger V7579 =new MagicSpecterTrigger("Guul Draz Specter",true,false); public static final MagicTrigger V7579 =new MagicSpecterTrigger("Guul Draz Specter",true,false);
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.addLocalVariable(GUUL_DRAZ_SPECTER);
}
};
} }

View File

@ -0,0 +1,38 @@
package magic.card;
import java.util.*;
import magic.model.event.*;
import magic.model.stack.*;
import magic.model.choice.*;
import magic.model.target.*;
import magic.model.action.*;
import magic.model.trigger.*;
import magic.model.condition.*;
import magic.model.*;
import magic.data.*;
import magic.model.variable.*;
public class Guul_Draz_Vampire {
private static final MagicLocalVariable GUUL_DRAZ_VAMPIRE=new MagicDummyLocalVariable() {
@Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
if (game.getOpponent(permanent.getController()).getLife()<=10) {
pt.power+=2;
pt.toughness++;
}
}
@Override
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
return game.getOpponent(permanent.getController()).getLife()<=10?flags|MagicAbility.Intimidate.getMask():flags;
}
};
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.addLocalVariable(GUUL_DRAZ_VAMPIRE);
}
};
}

View File

@ -0,0 +1,24 @@
package magic.card;
import java.util.Arrays;
import magic.model.event.*;
import magic.model.stack.*;
import magic.model.choice.*;
import magic.model.target.*;
import magic.model.action.*;
import magic.model.trigger.*;
import magic.model.condition.*;
import magic.model.variable.*;
import magic.model.*;
public class Jund_Hackblade {
private static final MagicLocalVariable JUND_HACKBLADE=new MagicBladeLocalVariable(MagicAbility.Haste.getMask());
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.addLocalVariable(JUND_HACKBLADE);
}
};
}

View File

@ -0,0 +1,39 @@
package magic.card;
import java.util.Arrays;
import magic.model.event.*;
import magic.model.stack.*;
import magic.model.choice.*;
import magic.model.target.*;
import magic.model.action.*;
import magic.model.trigger.*;
import magic.model.condition.*;
import magic.model.variable.*;
import magic.model.*;
public class Kitesail_Apprentice {
private static final MagicLocalVariable KITESAIL_APPRENTICE=new MagicDummyLocalVariable() {
@Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
if (permanent.isEquipped()) {
pt.power++;
pt.toughness++;
}
}
@Override
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
return permanent.isEquipped()?flags|MagicAbility.Flying.getMask():flags;
}
};
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.addLocalVariable(KITESAIL_APPRENTICE);
}
};
}

View File

@ -0,0 +1,33 @@
package magic.card;
import java.util.*;
import magic.model.event.*;
import magic.model.stack.*;
import magic.model.choice.*;
import magic.model.target.*;
import magic.model.action.*;
import magic.model.trigger.*;
import magic.model.condition.*;
import magic.model.*;
import magic.data.*;
import magic.model.variable.*;
public class Lord_of_Extinction {
private static final MagicLocalVariable LORD_OF_EXTINCTION=new MagicDummyLocalVariable() {
@Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
final int amount=game.getPlayer(0).getGraveyard().size()+game.getPlayer(1).getGraveyard().size();
pt.power=amount;
pt.toughness=amount;
}
};
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(LORD_OF_EXTINCTION);
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.setVariablePT();
}
};
}

View File

@ -13,9 +13,28 @@ import magic.model.variable.*;
public class Lord_of_Shatterskull_Pass { public class Lord_of_Shatterskull_Pass {
public static final MagicPermanentActivation V1260 =new MagicLevelUpActivation("Lord of Shatterskull Pass",MagicManaCost.ONE_RED,6); private static final MagicLocalVariable LORD_OF_SHATTERSKULL_PASS = new MagicDummyLocalVariable() {
@Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
if (permanent.getCounters(MagicCounterType.Charge)>0) {
pt.power=6;
pt.toughness=6;
}
}
};
public static final MagicTrigger V7917 =new MagicTrigger(MagicTriggerType.WhenAttacks,"Lord of Shatterskull Pass") { public static final MagicPermanentActivation V1260 = new MagicLevelUpActivation("Lord of Shatterskull Pass",MagicManaCost.ONE_RED,6);
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(LORD_OF_SHATTERSKULL_PASS);
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.setVariablePT();
}
};
public static final MagicTrigger V7917 = new MagicTrigger(MagicTriggerType.WhenAttacks,"Lord of Shatterskull Pass") {
@Override @Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final Object data) { public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final Object data) {
@ -41,5 +60,4 @@ public class Lord_of_Shatterskull_Pass {
} }
} }
}; };
} }

View File

@ -0,0 +1,25 @@
package magic.card;
import java.util.Arrays;
import magic.model.event.*;
import magic.model.stack.*;
import magic.model.choice.*;
import magic.model.target.*;
import magic.model.action.*;
import magic.model.trigger.*;
import magic.model.condition.*;
import magic.model.variable.*;
import magic.model.*;
public class Naya_Hushblade {
private static final MagicLocalVariable NAYA_HUSHBLADE=new MagicBladeLocalVariable(MagicAbility.Shroud.getMask());
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.addLocalVariable(NAYA_HUSHBLADE);
}
};
}

View File

@ -13,6 +13,39 @@ import magic.model.variable.*;
public class Nirkana_Cutthroat { public class Nirkana_Cutthroat {
public static final MagicPermanentActivation V1413 = new MagicLevelUpActivation("Nirkana Cutthroat",MagicManaCost.TWO_BLACK,3); private static final MagicLocalVariable NIRKANA_CUTTHROAT=new MagicDummyLocalVariable() {
@Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
final int charges=permanent.getCounters(MagicCounterType.Charge);
if (charges>=3) {
pt.power=5;
pt.toughness=4;
} else if (charges>=1) {
pt.power=4;
pt.toughness=3;
}
}
@Override
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
final int charges=permanent.getCounters(MagicCounterType.Charge);
if (charges>=3) {
return flags|MagicAbility.FirstStrike.getMask()|MagicAbility.Deathtouch.getMask();
} else if (charges>=1) {
return flags|MagicAbility.Deathtouch.getMask();
}
return flags;
}
};
public static final MagicPermanentActivation V1413 = new MagicLevelUpActivation("Nirkana Cutthroat",MagicManaCost.TWO_BLACK,3);
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(NIRKANA_CUTTHROAT);
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.setVariablePT();
}
};
} }

View File

@ -0,0 +1,35 @@
package magic.card;
import java.util.Arrays;
import magic.model.event.*;
import magic.model.stack.*;
import magic.model.choice.*;
import magic.model.target.*;
import magic.model.action.*;
import magic.model.trigger.*;
import magic.model.condition.*;
import magic.model.variable.*;
import magic.model.*;
public class Ruthless_Cullblade {
private static final MagicLocalVariable RUTHLESS_CULLBLADE=new MagicDummyLocalVariable() {
@Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
if (game.getOpponent(permanent.getController()).getLife()<=10) {
pt.power+=2;
pt.toughness++;
}
}
};
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.addLocalVariable(RUTHLESS_CULLBLADE);
}
};
}

View File

@ -13,6 +13,39 @@ import magic.model.variable.*;
public class Student_of_Warfare { public class Student_of_Warfare {
public static final MagicPermanentActivation V1891 = new MagicLevelUpActivation("Student of Warfare",MagicManaCost.WHITE,7); private static final MagicLocalVariable STUDENT_OF_WARFARE=new MagicDummyLocalVariable() {
@Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
final int charges=permanent.getCounters(MagicCounterType.Charge);
if (charges>=7) {
pt.power=4;
pt.toughness=4;
} else if (charges>=2) {
pt.power=3;
pt.toughness=3;
}
}
@Override
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
final int charges=permanent.getCounters(MagicCounterType.Charge);
if (charges>=7) {
return flags|MagicAbility.DoubleStrike.getMask();
} else if (charges>=2) {
return flags|MagicAbility.FirstStrike.getMask();
}
return flags;
}
};
public static final MagicPermanentActivation V1891 = new MagicLevelUpActivation("Student of Warfare",MagicManaCost.WHITE,7);
public static final MagicChangeCardDefinition SET = new MagicChangeCardDefinition() {
@Override
public void change(MagicCardDefinition cdef) {
cdef.addLocalVariable(STUDENT_OF_WARFARE);
cdef.addLocalVariable(MagicStaticLocalVariable.getInstance());
cdef.setVariablePT();
}
};
} }