moved static ability into individual cards
parent
7709f87825
commit
a6563fa1dd
|
@ -0,0 +1,26 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
|
||||||
|
public class Akroma_s_Memorial {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags |
|
||||||
|
MagicAbility.Flying.getMask() |
|
||||||
|
MagicAbility.FirstStrike.getMask() |
|
||||||
|
MagicAbility.Vigilance.getMask() |
|
||||||
|
MagicAbility.Trample.getMask() |
|
||||||
|
MagicAbility.Haste.getMask() |
|
||||||
|
MagicAbility.ProtectionFromBlack.getMask() |
|
||||||
|
MagicAbility.ProtectionFromRed.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -15,9 +15,22 @@ import magic.model.event.MagicPayManaCostEvent;
|
||||||
import magic.model.event.MagicPermanentActivation;
|
import magic.model.event.MagicPermanentActivation;
|
||||||
import magic.model.event.MagicTiming;
|
import magic.model.event.MagicTiming;
|
||||||
import magic.model.target.MagicRegenerateTargetPicker;
|
import magic.model.target.MagicRegenerateTargetPicker;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
public class Asceticism {
|
public class Asceticism {
|
||||||
|
|
||||||
|
public static final MagicStatic S1 = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.CannotBeTheTarget.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public static final MagicPermanentActivation A1 = new MagicPermanentActivation(
|
public static final MagicPermanentActivation A1 = new MagicPermanentActivation(
|
||||||
new MagicCondition[]{MagicManaCost.ONE_GREEN.getCondition()},
|
new MagicCondition[]{MagicManaCost.ONE_GREEN.getCondition()},
|
||||||
new MagicActivationHints(MagicTiming.Pump,true),
|
new MagicActivationHints(MagicTiming.Pump,true),
|
||||||
|
|
|
@ -7,8 +7,38 @@ import magic.model.action.MagicChangeLifeAction;
|
||||||
import magic.model.event.MagicEvent;
|
import magic.model.event.MagicEvent;
|
||||||
import magic.model.stack.MagicItemOnStack;
|
import magic.model.stack.MagicItemOnStack;
|
||||||
import magic.model.trigger.MagicWhenTargetedTrigger;
|
import magic.model.trigger.MagicWhenTargetedTrigger;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
public class Ashenmoor_Liege {
|
public class Ashenmoor_Liege {
|
||||||
|
public static final MagicStatic S1 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_BLACK_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_RED_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public static final MagicWhenTargetedTrigger T = new MagicWhenTargetedTrigger() {
|
public static final MagicWhenTargetedTrigger T = new MagicWhenTargetedTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicItemOnStack target) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicItemOnStack target) {
|
||||||
|
|
|
@ -3,16 +3,23 @@ package magic.card;
|
||||||
import magic.model.MagicCounterType;
|
import magic.model.MagicCounterType;
|
||||||
import magic.model.MagicGame;
|
import magic.model.MagicGame;
|
||||||
import magic.model.MagicPlayer;
|
import magic.model.MagicPlayer;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
import magic.model.MagicPermanent;
|
import magic.model.MagicPermanent;
|
||||||
import magic.model.action.MagicChangeCountersAction;
|
import magic.model.action.MagicChangeCountersAction;
|
||||||
import magic.model.action.MagicPermanentAction;
|
import magic.model.action.MagicPermanentAction;
|
||||||
|
import magic.model.action.MagicAddStaticAction;
|
||||||
import magic.model.choice.MagicMayChoice;
|
import magic.model.choice.MagicMayChoice;
|
||||||
import magic.model.choice.MagicTargetChoice;
|
import magic.model.choice.MagicTargetChoice;
|
||||||
import magic.model.event.MagicEvent;
|
import magic.model.event.MagicEvent;
|
||||||
import magic.model.target.MagicBecomeTargetPicker;
|
import magic.model.target.MagicBecomeTargetPicker;
|
||||||
import magic.model.trigger.MagicAtUpkeepTrigger;
|
import magic.model.trigger.MagicAtUpkeepTrigger;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
public class Aven_Mimeomancer {
|
public class Aven_Mimeomancer {
|
||||||
|
|
||||||
public static final MagicAtUpkeepTrigger T = new MagicAtUpkeepTrigger() {
|
public static final MagicAtUpkeepTrigger T = new MagicAtUpkeepTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer data) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer data) {
|
||||||
|
@ -31,11 +38,52 @@ public class Aven_Mimeomancer {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void executeEvent(final MagicGame game,final MagicEvent event,final Object data[],final Object[] choiceResults) {
|
public void executeEvent(
|
||||||
|
final MagicGame game,
|
||||||
|
final MagicEvent event,
|
||||||
|
final Object data[],
|
||||||
|
final Object[] choiceResults) {
|
||||||
if (MagicMayChoice.isYesChoice(choiceResults[0])) {
|
if (MagicMayChoice.isYesChoice(choiceResults[0])) {
|
||||||
event.processTargetPermanent(game,choiceResults,1,new MagicPermanentAction() {
|
event.processTargetPermanent(game,choiceResults,1,new MagicPermanentAction() {
|
||||||
public void doAction(final MagicPermanent creature) {
|
public void doAction(final MagicPermanent creature) {
|
||||||
game.doAction(new MagicChangeCountersAction(creature,MagicCounterType.Feather,1,true));
|
game.doAction(new MagicChangeCountersAction(creature,MagicCounterType.Feather,1,true));
|
||||||
|
game.doAction(new MagicAddStaticAction(creature, new MagicStatic(
|
||||||
|
MagicLayer.SetPT,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(
|
||||||
|
final MagicGame game,
|
||||||
|
final MagicPermanent permanent,
|
||||||
|
final MagicPowerToughness pt) {
|
||||||
|
pt.power = 3;
|
||||||
|
pt.toughness = 1;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean accept(
|
||||||
|
final MagicGame game,
|
||||||
|
final MagicPermanent source,
|
||||||
|
final MagicPermanent target) {
|
||||||
|
return target.getId() == creature.getId() && target.getCounters(MagicCounterType.Feather) > 0;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
game.doAction(new MagicAddStaticAction(creature, new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(
|
||||||
|
final MagicGame game,
|
||||||
|
final MagicPermanent permanent,
|
||||||
|
final long flags) {
|
||||||
|
return flags | MagicAbility.Flying.getMask();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean accept(
|
||||||
|
final MagicGame game,
|
||||||
|
final MagicPermanent source,
|
||||||
|
final MagicPermanent target) {
|
||||||
|
return target.getId() == creature.getId() && target.getCounters(MagicCounterType.Feather) > 0;
|
||||||
|
}
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,9 +13,36 @@ import magic.model.choice.MagicTargetChoice;
|
||||||
import magic.model.event.MagicEvent;
|
import magic.model.event.MagicEvent;
|
||||||
import magic.model.stack.MagicCardOnStack;
|
import magic.model.stack.MagicCardOnStack;
|
||||||
import magic.model.trigger.MagicWhenSpellIsPlayedTrigger;
|
import magic.model.trigger.MagicWhenSpellIsPlayedTrigger;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
public class Balefire_Liege {
|
public class Balefire_Liege {
|
||||||
|
public static final MagicStatic S1 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_RED_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_WHITE_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
public static final MagicWhenSpellIsPlayedTrigger T = new MagicWhenSpellIsPlayedTrigger() {
|
public static final MagicWhenSpellIsPlayedTrigger T = new MagicWhenSpellIsPlayedTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicCardOnStack data) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicCardOnStack data) {
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
|
||||||
|
public class Bellowing_Tanglewurm {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_GREEN_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.Intimidate.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
|
||||||
|
public class Bloodmark_Mentor {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_RED_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.FirstStrike.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Boartusk_Liege {
|
||||||
|
public static final MagicStatic S1 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_RED_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_GREEN_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -4,12 +4,43 @@ import magic.data.TokenCardDefinitions;
|
||||||
import magic.model.MagicGame;
|
import magic.model.MagicGame;
|
||||||
import magic.model.MagicPermanent;
|
import magic.model.MagicPermanent;
|
||||||
import magic.model.MagicPlayer;
|
import magic.model.MagicPlayer;
|
||||||
|
import magic.model.MagicSubType;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
import magic.model.action.MagicPlayTokenAction;
|
import magic.model.action.MagicPlayTokenAction;
|
||||||
import magic.model.event.MagicEvent;
|
import magic.model.event.MagicEvent;
|
||||||
import magic.model.trigger.MagicWhenComesIntoPlayTrigger;
|
import magic.model.trigger.MagicWhenComesIntoPlayTrigger;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
|
||||||
public class Captain_of_the_Watch {
|
public class Captain_of_the_Watch {
|
||||||
|
public static final MagicStatic S1 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_SOLDIER_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_SOLDIER_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.Vigilance.getMask();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public static final MagicWhenComesIntoPlayTrigger T = new MagicWhenComesIntoPlayTrigger() {
|
public static final MagicWhenComesIntoPlayTrigger T = new MagicWhenComesIntoPlayTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicPlayer player) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicPlayer player) {
|
||||||
|
|
|
@ -21,8 +21,24 @@ import magic.model.event.MagicPayManaCostTapEvent;
|
||||||
import magic.model.event.MagicPermanentActivation;
|
import magic.model.event.MagicPermanentActivation;
|
||||||
import magic.model.event.MagicTiming;
|
import magic.model.event.MagicTiming;
|
||||||
import magic.model.target.MagicGraveyardTargetPicker;
|
import magic.model.target.MagicGraveyardTargetPicker;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
public class Cemetery_Reaper {
|
public class Cemetery_Reaper {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_ZOMBIE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
public static final MagicPermanentActivation A = new MagicPermanentActivation(
|
public static final MagicPermanentActivation A = new MagicPermanentActivation(
|
||||||
new MagicCondition[]{MagicCondition.CAN_TAP_CONDITION,MagicManaCost.TWO_BLACK.getCondition()},
|
new MagicCondition[]{MagicCondition.CAN_TAP_CONDITION,MagicManaCost.TWO_BLACK.getCondition()},
|
||||||
new MagicActivationHints(MagicTiming.Token),
|
new MagicActivationHints(MagicTiming.Token),
|
||||||
|
|
|
@ -7,9 +7,37 @@ import magic.model.MagicPlayer;
|
||||||
import magic.model.action.MagicPlayTokenAction;
|
import magic.model.action.MagicPlayTokenAction;
|
||||||
import magic.model.event.MagicEvent;
|
import magic.model.event.MagicEvent;
|
||||||
import magic.model.trigger.MagicAtUpkeepTrigger;
|
import magic.model.trigger.MagicAtUpkeepTrigger;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
|
||||||
public class Creakwood_Liege {
|
public class Creakwood_Liege {
|
||||||
|
public static final MagicStatic S1 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_BLACK_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_GREEN_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
public static final MagicAtUpkeepTrigger T = new MagicAtUpkeepTrigger() {
|
public static final MagicAtUpkeepTrigger T = new MagicAtUpkeepTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer data) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer data) {
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Cumber_Stone {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOUR_OPPONENT_CONTROLS) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.power -= 1;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.MagicSubType;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Death_Baron {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean accept(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return filter.accept(game, source.getController(), target) &&
|
||||||
|
(target.hasSubType(MagicSubType.Skeleton) ||
|
||||||
|
(source != target && target.hasSubType(MagicSubType.Zombie)));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -15,9 +15,36 @@ import magic.model.stack.MagicCardOnStack;
|
||||||
import magic.model.target.MagicDestroyTargetPicker;
|
import magic.model.target.MagicDestroyTargetPicker;
|
||||||
import magic.model.target.MagicTapTargetPicker;
|
import magic.model.target.MagicTapTargetPicker;
|
||||||
import magic.model.trigger.MagicWhenSpellIsPlayedTrigger;
|
import magic.model.trigger.MagicWhenSpellIsPlayedTrigger;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
public class Deathbringer_Liege {
|
public class Deathbringer_Liege {
|
||||||
|
public static final MagicStatic S1 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_BLACK_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_WHITE_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
public static final MagicWhenSpellIsPlayedTrigger T = new MagicWhenSpellIsPlayedTrigger() {
|
public static final MagicWhenSpellIsPlayedTrigger T = new MagicWhenSpellIsPlayedTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicCardOnStack data) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicCardOnStack data) {
|
||||||
|
|
|
@ -4,14 +4,38 @@ import magic.model.MagicGame;
|
||||||
import magic.model.MagicPermanent;
|
import magic.model.MagicPermanent;
|
||||||
import magic.model.MagicPlayer;
|
import magic.model.MagicPlayer;
|
||||||
import magic.model.MagicType;
|
import magic.model.MagicType;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
import magic.model.action.MagicSacrificeAction;
|
import magic.model.action.MagicSacrificeAction;
|
||||||
import magic.model.choice.MagicTargetChoice;
|
import magic.model.choice.MagicTargetChoice;
|
||||||
import magic.model.event.MagicEvent;
|
import magic.model.event.MagicEvent;
|
||||||
import magic.model.event.MagicSacrificePermanentEvent;
|
import magic.model.event.MagicSacrificePermanentEvent;
|
||||||
import magic.model.trigger.MagicAtUpkeepTrigger;
|
import magic.model.trigger.MagicAtUpkeepTrigger;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
|
||||||
public class Eldrazi_Monument {
|
public class Eldrazi_Monument {
|
||||||
|
public static final MagicStatic S1 = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags |
|
||||||
|
MagicAbility.Flying.getMask() |
|
||||||
|
MagicAbility.Indestructible.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public static final MagicAtUpkeepTrigger T = new MagicAtUpkeepTrigger() {
|
public static final MagicAtUpkeepTrigger T = new MagicAtUpkeepTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer data) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer data) {
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Elesh_Norn__Grand_Cenobite {
|
||||||
|
public static final MagicStatic S1 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(2);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOUR_OPPONENT_CONTROLS) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(-2);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -14,8 +14,20 @@ import magic.model.event.MagicPermanentActivation;
|
||||||
import magic.model.event.MagicSacrificeEvent;
|
import magic.model.event.MagicSacrificeEvent;
|
||||||
import magic.model.event.MagicTiming;
|
import magic.model.event.MagicTiming;
|
||||||
import magic.model.target.MagicPumpTargetPicker;
|
import magic.model.target.MagicPumpTargetPicker;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
public class Fires_of_Yavimaya {
|
public class Fires_of_Yavimaya {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.Haste.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
public static final MagicPermanentActivation A = new MagicPermanentActivation(
|
public static final MagicPermanentActivation A = new MagicPermanentActivation(
|
||||||
MagicCondition.NONE,
|
MagicCondition.NONE,
|
||||||
new MagicActivationHints(MagicTiming.Pump),
|
new MagicActivationHints(MagicTiming.Pump),
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Glen_Elendra_Liege {
|
||||||
|
public static final MagicStatic S1 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_BLACK_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_BLUE_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Glory_of_Warfare {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
if (game.hasTurn(permanent.getController())) {
|
||||||
|
pt.power += 2;
|
||||||
|
} else {
|
||||||
|
pt.toughness += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Goblin_Chieftain {
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_GOBLIN_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.Haste.getMask();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public static final MagicStatic S1 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_GOBLIN_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -18,8 +18,8 @@ public class Godhead_of_Awe {
|
||||||
pt.toughness = 1;
|
pt.toughness = 1;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean accept(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
return source != target && filter.accept(game, source.getController(), target);
|
return source != target;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Honor_of_the_Pure {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_WHITE_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Kinsbaile_Cavalier {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_KNIGHT_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.DoubleStrike.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Knight_Exemplar {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_KNIGHT_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_KNIGHT_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.Indestructible.getMask();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Kulrath_Knight {
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOUR_OPPONENT_CONTROLS) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.CannotAttackOrBlock.getMask();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return target.hasCounters();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Levitation {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.Flying.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Lord_of_the_Unreal {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_ILLUSION_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_ILLUSION_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.CannotBeTheTarget.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Madrush_Cyclops {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.Haste.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -4,6 +4,7 @@ import magic.model.MagicAbility;
|
||||||
import magic.model.MagicGame;
|
import magic.model.MagicGame;
|
||||||
import magic.model.MagicPayedCost;
|
import magic.model.MagicPayedCost;
|
||||||
import magic.model.MagicPermanent;
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
import magic.model.MagicSource;
|
import magic.model.MagicSource;
|
||||||
import magic.model.action.MagicPermanentAction;
|
import magic.model.action.MagicPermanentAction;
|
||||||
import magic.model.action.MagicSetAbilityAction;
|
import magic.model.action.MagicSetAbilityAction;
|
||||||
|
@ -15,8 +16,23 @@ import magic.model.event.MagicPermanentActivation;
|
||||||
import magic.model.event.MagicTapEvent;
|
import magic.model.event.MagicTapEvent;
|
||||||
import magic.model.event.MagicTiming;
|
import magic.model.event.MagicTiming;
|
||||||
import magic.model.target.MagicUnblockableTargetPicker;
|
import magic.model.target.MagicUnblockableTargetPicker;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
public class Merfolk_Sovereign {
|
public class Merfolk_Sovereign {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_MERFOLK_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
public static final MagicPermanentActivation A = new MagicPermanentActivation(
|
public static final MagicPermanentActivation A = new MagicPermanentActivation(
|
||||||
new MagicCondition[]{MagicCondition.CAN_TAP_CONDITION},
|
new MagicCondition[]{MagicCondition.CAN_TAP_CONDITION},
|
||||||
new MagicActivationHints(MagicTiming.Attack),
|
new MagicActivationHints(MagicTiming.Attack),
|
||||||
|
|
|
@ -9,11 +9,38 @@ import magic.model.event.MagicEvent;
|
||||||
import magic.model.target.MagicTarget;
|
import magic.model.target.MagicTarget;
|
||||||
import magic.model.target.MagicTargetFilter;
|
import magic.model.target.MagicTargetFilter;
|
||||||
import magic.model.trigger.MagicAtUpkeepTrigger;
|
import magic.model.trigger.MagicAtUpkeepTrigger;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
public class Murkfiend_Liege {
|
public class Murkfiend_Liege {
|
||||||
|
public static final MagicStatic S1 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_GREEN_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_BLUE_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
public static final MagicAtUpkeepTrigger T = new MagicAtUpkeepTrigger() {
|
public static final MagicAtUpkeepTrigger T = new MagicAtUpkeepTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer data) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer data) {
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Razorjaw_Oni {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_BLACK_CREATURE) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.CannotBlock.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -13,8 +13,36 @@ import magic.model.event.MagicEvent;
|
||||||
import magic.model.event.MagicPermanentActivation;
|
import magic.model.event.MagicPermanentActivation;
|
||||||
import magic.model.event.MagicTapEvent;
|
import magic.model.event.MagicTapEvent;
|
||||||
import magic.model.event.MagicTiming;
|
import magic.model.event.MagicTiming;
|
||||||
|
import magic.model.MagicPowerToughness;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
public class Tolsimir_Wolfblood {
|
public class Tolsimir_Wolfblood {
|
||||||
|
public static final MagicStatic S1 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_GREEN_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
public static final MagicStatic S2 = new MagicStatic(
|
||||||
|
MagicLayer.ModPT,
|
||||||
|
MagicTargetFilter.TARGET_WHITE_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
pt.add(1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
|
return source != target;
|
||||||
|
}
|
||||||
|
};
|
||||||
public static final MagicPermanentActivation A = new MagicPermanentActivation(
|
public static final MagicPermanentActivation A = new MagicPermanentActivation(
|
||||||
new MagicCondition[]{MagicCondition.CAN_TAP_CONDITION},
|
new MagicCondition[]{MagicCondition.CAN_TAP_CONDITION},
|
||||||
new MagicActivationHints(MagicTiming.Token),
|
new MagicActivationHints(MagicTiming.Token),
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
|
||||||
|
public class True_Conviction {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags |
|
||||||
|
MagicAbility.DoubleStrike.getMask() |
|
||||||
|
MagicAbility.LifeLink.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -5,8 +5,20 @@ import magic.model.MagicPermanent;
|
||||||
import magic.model.event.MagicEvent;
|
import magic.model.event.MagicEvent;
|
||||||
import magic.model.event.MagicTapEvent;
|
import magic.model.event.MagicTapEvent;
|
||||||
import magic.model.trigger.MagicWhenOtherComesIntoPlayTrigger;
|
import magic.model.trigger.MagicWhenOtherComesIntoPlayTrigger;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
public class Urabrask_the_Hidden {
|
public class Urabrask_the_Hidden {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.Haste.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
public static final MagicWhenOtherComesIntoPlayTrigger T = new MagicWhenOtherComesIntoPlayTrigger() {
|
public static final MagicWhenOtherComesIntoPlayTrigger T = new MagicWhenOtherComesIntoPlayTrigger() {
|
||||||
@Override
|
@Override
|
||||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent otherPermanent) {
|
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent otherPermanent) {
|
||||||
|
|
|
@ -16,8 +16,8 @@ public class Veteran_Armorer {
|
||||||
pt.toughness += 1;
|
pt.toughness += 1;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean accept(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||||
return source != target && filter.accept(game, source.getController(), target);
|
return source != target;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
package magic.card;
|
||||||
|
|
||||||
|
import magic.model.MagicGame;
|
||||||
|
import magic.model.MagicPermanent;
|
||||||
|
import magic.model.MagicLayer;
|
||||||
|
import magic.model.MagicAbility;
|
||||||
|
import magic.model.mstatic.MagicStatic;
|
||||||
|
import magic.model.target.MagicTargetFilter;
|
||||||
|
|
||||||
|
public class Windbrisk_Raptor {
|
||||||
|
public static final MagicStatic S = new MagicStatic(
|
||||||
|
MagicLayer.Ability,
|
||||||
|
MagicTargetFilter.TARGET_ATTACKING_CREATURE_YOU_CONTROL) {
|
||||||
|
@Override
|
||||||
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
|
||||||
|
return flags | MagicAbility.LifeLink.getMask();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -20,236 +20,41 @@ import java.util.EnumSet;
|
||||||
public class MagicStaticLocalVariable extends MagicDummyLocalVariable {
|
public class MagicStaticLocalVariable extends MagicDummyLocalVariable {
|
||||||
|
|
||||||
private static final MagicLocalVariable INSTANCE=new MagicStaticLocalVariable();
|
private static final MagicLocalVariable INSTANCE=new MagicStaticLocalVariable();
|
||||||
|
|
||||||
|
public static final MagicLocalVariable getInstance() {
|
||||||
|
return INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
private static int akromasMemorial;
|
|
||||||
private static int angelicShield;
|
|
||||||
private static int asceticism;
|
|
||||||
private static int ashenmoorLiege;
|
|
||||||
private static int balefireLiege;
|
|
||||||
private static int bellowingTanglewurm;
|
|
||||||
private static int bloodmarkMentor;
|
|
||||||
private static int boartuskLiege;
|
|
||||||
private static int captainOfTheWatch;
|
|
||||||
private static int cemeteryReaper;
|
|
||||||
private static int creakwoodLiege;
|
|
||||||
private static int cumberStone;
|
|
||||||
private static int deathBaron;
|
|
||||||
private static int deathbringerLiege;
|
|
||||||
private static int eldraziMonument;
|
|
||||||
private static int eleshNorn;
|
|
||||||
private static int firesOfYavimaya;
|
|
||||||
private static int glenElendraLiege;
|
|
||||||
private static int gloriousAnthem;
|
|
||||||
private static int gloryOfWarfare;
|
|
||||||
private static int goblinChieftain;
|
|
||||||
private static int godheadOfAwe;
|
|
||||||
private static int honorOfThePure;
|
|
||||||
private static int kinsbaileCavalier;
|
|
||||||
private static int knightExemplar;
|
|
||||||
private static int kulrathKnight;
|
|
||||||
private static int levitation;
|
|
||||||
private static int lordOfTheUnreal;
|
|
||||||
private static int madrushCyclops;
|
|
||||||
private static int merfolkSovereign;
|
|
||||||
private static int murkfiendLiege;
|
|
||||||
private static int razorjawOni;
|
|
||||||
// You can't be target of spells or abilities your opponent controls.
|
// You can't be target of spells or abilities your opponent controls.
|
||||||
private static int spiritOfTheHearth;
|
private static int spiritOfTheHearth;
|
||||||
private static int tolsimirWolfblood;
|
|
||||||
private static int trueConviction;
|
public static void initializeCardDefinitions() {
|
||||||
private static int urabraskTheHidden;
|
final CardDefinitions definitions=CardDefinitions.getInstance();
|
||||||
private static int veteranArmorer;
|
spiritOfTheHearth=definitions.getCard("Spirit of the Hearth").getIndex();
|
||||||
private static int windbriskRaptor;
|
}
|
||||||
|
|
||||||
public static boolean canTarget(final MagicPlayer controller) {
|
public static boolean canTarget(final MagicPlayer controller) {
|
||||||
return controller.getCount(spiritOfTheHearth) == 0;
|
return controller.getCount(spiritOfTheHearth) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int getOtherCount(final int cardDefinitionIndex,final MagicPermanent permanent,final int count) {
|
@Override
|
||||||
return permanent.getCardDefinition().getIndex() != cardDefinitionIndex ? count : count - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int getOtherCount(final int cardDefinitionIndex,final MagicPermanent permanent,final MagicPlayer controller) {
|
|
||||||
final int count = controller.getCount(cardDefinitionIndex);
|
|
||||||
return count == 0 ? 0 : getOtherCount(cardDefinitionIndex,permanent,count);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
|
||||||
|
|
||||||
final MagicPlayer controller=permanent.getController();
|
|
||||||
final MagicPlayer opponent=game.getOpponent(controller);
|
|
||||||
|
|
||||||
for (final MagicPermanentStatic mpstatic : game.getStatics()) {
|
for (final MagicPermanentStatic mpstatic : game.getStatics()) {
|
||||||
final MagicStatic mstatic = mpstatic.getStatic();
|
final MagicStatic mstatic = mpstatic.getStatic();
|
||||||
if (mstatic.accept(game, mpstatic.getPermanent(), permanent)) {
|
if (mstatic.accept(game, mpstatic.getPermanent(),permanent)) {
|
||||||
mstatic.getPowerToughness(game, permanent, pt);
|
mstatic.getPowerToughness(game, permanent, pt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// Power and toughness change.
|
|
||||||
if (permanent.getCounters(MagicCounterType.Feather)>0) {
|
|
||||||
pt.power=3;
|
|
||||||
pt.toughness=1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Power or toughness increase.
|
|
||||||
//pt.toughness += controller.getCount(angelicShield);
|
|
||||||
//pt.toughness += getOtherCount(veteranArmorer,permanent,controller);
|
|
||||||
int count = controller.getCount(gloryOfWarfare);
|
|
||||||
if (count > 0) {
|
|
||||||
if (game.hasTurn(controller)) {
|
|
||||||
pt.power += count * 2;
|
|
||||||
} else {
|
|
||||||
pt.toughness += count * 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pt.power -= opponent.getCount(cumberStone);
|
|
||||||
|
|
||||||
// Power and toughness increase.
|
|
||||||
int both = permanent.getCounters(MagicCounterType.PlusOne)-permanent.getCounters(MagicCounterType.MinusOne);
|
|
||||||
|
|
||||||
both += controller.getCount(eldraziMonument);
|
|
||||||
//both += controller.getCount(gloriousAnthem);
|
|
||||||
|
|
||||||
count = controller.getCount(captainOfTheWatch);
|
|
||||||
if (count > 0 && permanent.hasSubType(MagicSubType.Soldier)) {
|
|
||||||
both += getOtherCount(captainOfTheWatch,permanent,count);
|
|
||||||
}
|
|
||||||
count = controller.getCount(deathBaron);
|
|
||||||
if (count > 0 ) {
|
|
||||||
if (permanent.hasSubType(MagicSubType.Skeleton)) {
|
|
||||||
both += controller.getCount(deathBaron);
|
|
||||||
}
|
|
||||||
if (count > 0 && permanent.hasSubType(MagicSubType.Zombie)) {
|
|
||||||
both += getOtherCount(deathBaron,permanent,count);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
count = controller.getCount(cemeteryReaper);
|
|
||||||
if (count > 0 && permanent.hasSubType(MagicSubType.Zombie)) {
|
|
||||||
both += getOtherCount(cemeteryReaper,permanent,count);
|
|
||||||
}
|
|
||||||
count = controller.getCount(goblinChieftain);
|
|
||||||
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(lordOfTheUnreal);
|
|
||||||
if (count > 0 && permanent.hasSubType(MagicSubType.Illusion)) {
|
|
||||||
both += controller.getCount(lordOfTheUnreal);
|
|
||||||
}
|
|
||||||
count = controller.getCount(merfolkSovereign);
|
|
||||||
if (count > 0 && permanent.hasSubType(MagicSubType.Merfolk)) {
|
|
||||||
both += getOtherCount(merfolkSovereign,permanent,count);
|
|
||||||
}
|
|
||||||
count = controller.getCount(eleshNorn);
|
|
||||||
both += getOtherCount(eleshNorn,permanent,count) * 2;
|
|
||||||
both -= opponent.getCount(eleshNorn) * 2;
|
|
||||||
|
|
||||||
final int colorFlags=permanent.getColorFlags();
|
|
||||||
if (MagicColor.Black.hasColor(colorFlags)) {
|
|
||||||
both += getOtherCount(ashenmoorLiege,permanent,controller);
|
|
||||||
both += getOtherCount(creakwoodLiege,permanent,controller);
|
|
||||||
both += getOtherCount(deathbringerLiege,permanent,controller);
|
|
||||||
both += getOtherCount(glenElendraLiege,permanent,controller);
|
|
||||||
}
|
|
||||||
if (MagicColor.Blue.hasColor(colorFlags)) {
|
|
||||||
both += getOtherCount(glenElendraLiege,permanent,controller);
|
|
||||||
both += getOtherCount(murkfiendLiege,permanent,controller);
|
|
||||||
}
|
|
||||||
if (MagicColor.Green.hasColor(colorFlags)) {
|
|
||||||
both += getOtherCount(boartuskLiege,permanent,controller);
|
|
||||||
both += getOtherCount(creakwoodLiege,permanent,controller);
|
|
||||||
both += getOtherCount(murkfiendLiege,permanent,controller);
|
|
||||||
both += getOtherCount(tolsimirWolfblood,permanent,controller);
|
|
||||||
}
|
|
||||||
if (MagicColor.Red.hasColor(colorFlags)) {
|
|
||||||
both += getOtherCount(ashenmoorLiege,permanent,controller);
|
|
||||||
both += getOtherCount(boartuskLiege,permanent,controller);
|
|
||||||
both += getOtherCount(balefireLiege,permanent,controller);
|
|
||||||
}
|
|
||||||
if (MagicColor.White.hasColor(colorFlags)) {
|
|
||||||
both += getOtherCount(balefireLiege,permanent,controller);
|
|
||||||
both += getOtherCount(deathbringerLiege,permanent,controller);
|
|
||||||
both += getOtherCount(tolsimirWolfblood,permanent,controller);
|
|
||||||
both += controller.getCount(honorOfThePure);
|
|
||||||
}
|
|
||||||
|
|
||||||
pt.power += both;
|
|
||||||
pt.toughness += both;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,long flags) {
|
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,long flags) {
|
||||||
if (permanent.isCreature()) {
|
for (final MagicPermanentStatic mpstatic : game.getStatics()) {
|
||||||
final MagicPlayer controller=permanent.getController();
|
final MagicStatic mstatic = mpstatic.getStatic();
|
||||||
|
if (mstatic.accept(game, mpstatic.getPermanent(), permanent)) {
|
||||||
for (final MagicPermanentStatic mpstatic : game.getStatics()) {
|
flags = mstatic.getAbilityFlags(game, permanent, flags);
|
||||||
final MagicStatic mstatic = mpstatic.getStatic();
|
|
||||||
if (mstatic.accept(game, mpstatic.getPermanent(), permanent)) {
|
|
||||||
flags = mstatic.getAbilityFlags(game, permanent, flags);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (controller.getCount(akromasMemorial)>0) {
|
|
||||||
flags|=MagicAbility.Flying.getMask() |
|
|
||||||
MagicAbility.FirstStrike.getMask()|
|
|
||||||
MagicAbility.Vigilance.getMask()|
|
|
||||||
MagicAbility.Trample.getMask()|
|
|
||||||
MagicAbility.Haste.getMask()|
|
|
||||||
MagicAbility.ProtectionFromBlack.getMask()|
|
|
||||||
MagicAbility.ProtectionFromRed.getMask();
|
|
||||||
}
|
|
||||||
if (controller.getCount(eldraziMonument)>0) {
|
|
||||||
flags|=MagicAbility.Flying.getMask() |
|
|
||||||
MagicAbility.Indestructible.getMask();
|
|
||||||
}
|
|
||||||
if (controller.getCount(trueConviction)>0) {
|
|
||||||
flags|=MagicAbility.DoubleStrike.getMask() |
|
|
||||||
MagicAbility.LifeLink.getMask();
|
|
||||||
}
|
|
||||||
if (controller.getCount(asceticism) > 0 ||
|
|
||||||
(controller.getCount(lordOfTheUnreal) > 0 && permanent.hasSubType(MagicSubType.Illusion))) {
|
|
||||||
flags |= MagicAbility.CannotBeTheTarget.getMask();
|
|
||||||
}
|
|
||||||
if (controller.getCount(bellowingTanglewurm)>0&&MagicColor.Green.hasColor(permanent.getColorFlags())) {
|
|
||||||
flags|=MagicAbility.Intimidate.getMask();
|
|
||||||
}
|
|
||||||
if (controller.getCount(bloodmarkMentor)>0&&MagicColor.Red.hasColor(permanent.getColorFlags())) {
|
|
||||||
flags|=MagicAbility.FirstStrike.getMask();
|
|
||||||
}
|
|
||||||
if (controller.getCount(captainOfTheWatch)>0&&permanent.hasSubType(MagicSubType.Soldier)) {
|
|
||||||
flags|=MagicAbility.Vigilance.getMask();
|
|
||||||
}
|
|
||||||
if (controller.getCount(firesOfYavimaya)>0||
|
|
||||||
controller.getCount(madrushCyclops)>0||
|
|
||||||
controller.getCount(urabraskTheHidden)>0||
|
|
||||||
(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();
|
|
||||||
}
|
|
||||||
if (controller.getCount(levitation)>0||permanent.getCounters(MagicCounterType.Feather)>0) {
|
|
||||||
flags|=MagicAbility.Flying.getMask();
|
|
||||||
}
|
|
||||||
if ((controller.getCount(kinsbaileCavalier)>0&&permanent.hasSubType(MagicSubType.Knight))) {
|
|
||||||
flags|=MagicAbility.DoubleStrike.getMask();
|
|
||||||
}
|
|
||||||
if (game.getCount(razorjawOni)>0&&MagicColor.Black.hasColor(permanent.getColorFlags())) {
|
|
||||||
flags|=MagicAbility.CannotBlock.getMask();
|
|
||||||
}
|
|
||||||
if (controller.getCount(windbriskRaptor)>0&&permanent.isAttacking()) {
|
|
||||||
flags|=MagicAbility.LifeLink.getMask();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -262,50 +67,4 @@ public class MagicStaticLocalVariable extends MagicDummyLocalVariable {
|
||||||
}
|
}
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final MagicLocalVariable getInstance() {
|
|
||||||
return INSTANCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void initializeCardDefinitions() {
|
|
||||||
final CardDefinitions definitions=CardDefinitions.getInstance();
|
|
||||||
akromasMemorial=definitions.getCard("Akroma's Memorial").getIndex();
|
|
||||||
angelicShield=definitions.getCard("Angelic Shield").getIndex();
|
|
||||||
asceticism=definitions.getCard("Asceticism").getIndex();
|
|
||||||
ashenmoorLiege=definitions.getCard("Ashenmoor Liege").getIndex();
|
|
||||||
balefireLiege=definitions.getCard("Balefire Liege").getIndex();
|
|
||||||
bellowingTanglewurm=definitions.getCard("Bellowing Tanglewurm").getIndex();
|
|
||||||
bloodmarkMentor=definitions.getCard("Bloodmark Mentor").getIndex();
|
|
||||||
boartuskLiege=definitions.getCard("Boartusk Liege").getIndex();
|
|
||||||
captainOfTheWatch=definitions.getCard("Captain of the Watch").getIndex();
|
|
||||||
cemeteryReaper=definitions.getCard("Cemetery Reaper").getIndex();
|
|
||||||
creakwoodLiege=definitions.getCard("Creakwood Liege").getIndex();
|
|
||||||
cumberStone=definitions.getCard("Cumber Stone").getIndex();
|
|
||||||
deathBaron=definitions.getCard("Death Baron").getIndex();
|
|
||||||
deathbringerLiege=definitions.getCard("Deathbringer Liege").getIndex();
|
|
||||||
eldraziMonument=definitions.getCard("Eldrazi Monument").getIndex();
|
|
||||||
eleshNorn=definitions.getCard("Elesh Norn, Grand Cenobite").getIndex();
|
|
||||||
firesOfYavimaya=definitions.getCard("Fires of Yavimaya").getIndex();
|
|
||||||
glenElendraLiege=definitions.getCard("Glen Elendra Liege").getIndex();
|
|
||||||
gloriousAnthem=definitions.getCard("Glorious Anthem").getIndex();
|
|
||||||
gloryOfWarfare=definitions.getCard("Glory of Warfare").getIndex();
|
|
||||||
goblinChieftain=definitions.getCard("Goblin Chieftain").getIndex();
|
|
||||||
godheadOfAwe=definitions.getCard("Godhead of Awe").getIndex();
|
|
||||||
honorOfThePure=definitions.getCard("Honor of the Pure").getIndex();
|
|
||||||
kinsbaileCavalier=definitions.getCard("Kinsbaile Cavalier").getIndex();
|
|
||||||
knightExemplar=definitions.getCard("Knight Exemplar").getIndex();
|
|
||||||
kulrathKnight=definitions.getCard("Kulrath Knight").getIndex();
|
|
||||||
levitation=definitions.getCard("Levitation").getIndex();
|
|
||||||
lordOfTheUnreal=definitions.getCard("Lord of the Unreal").getIndex();
|
|
||||||
madrushCyclops=definitions.getCard("Madrush Cyclops").getIndex();
|
|
||||||
merfolkSovereign=definitions.getCard("Merfolk Sovereign").getIndex();
|
|
||||||
murkfiendLiege=definitions.getCard("Murkfiend Liege").getIndex();
|
|
||||||
razorjawOni=definitions.getCard("Razorjaw Oni").getIndex();
|
|
||||||
spiritOfTheHearth=definitions.getCard("Spirit of the Hearth").getIndex();
|
|
||||||
tolsimirWolfblood=definitions.getCard("Tolsimir Wolfblood").getIndex();
|
|
||||||
trueConviction=definitions.getCard("True Conviction").getIndex();
|
|
||||||
urabraskTheHidden=definitions.getCard("Urabrask the Hidden").getIndex();
|
|
||||||
veteranArmorer=definitions.getCard("Veteran Armorer").getIndex();
|
|
||||||
windbriskRaptor=definitions.getCard("Windbrisk Raptor").getIndex();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ class TestStatics extends TestGameBuilder {
|
||||||
createPermanent(game,P,"Phyrexian Crusader",false,3);
|
createPermanent(game,P,"Phyrexian Crusader",false,3);
|
||||||
addToHand(P,"Glorious Anthem",2);
|
addToHand(P,"Glorious Anthem",2);
|
||||||
addToHand(P,"Godhead of Awe",2);
|
addToHand(P,"Godhead of Awe",2);
|
||||||
|
addToHand(P,"Tolsimir Wolfblood",1);
|
||||||
|
|
||||||
|
|
||||||
P = opponent;
|
P = opponent;
|
||||||
|
|
Loading…
Reference in New Issue