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.MagicTiming;
|
||||
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 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(
|
||||
new MagicCondition[]{MagicManaCost.ONE_GREEN.getCondition()},
|
||||
new MagicActivationHints(MagicTiming.Pump,true),
|
||||
|
|
|
@ -7,8 +7,38 @@ import magic.model.action.MagicChangeLifeAction;
|
|||
import magic.model.event.MagicEvent;
|
||||
import magic.model.stack.MagicItemOnStack;
|
||||
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 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() {
|
||||
@Override
|
||||
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.MagicGame;
|
||||
import magic.model.MagicPlayer;
|
||||
import magic.model.MagicAbility;
|
||||
import magic.model.MagicPermanent;
|
||||
import magic.model.action.MagicChangeCountersAction;
|
||||
import magic.model.action.MagicPermanentAction;
|
||||
import magic.model.action.MagicAddStaticAction;
|
||||
import magic.model.choice.MagicMayChoice;
|
||||
import magic.model.choice.MagicTargetChoice;
|
||||
import magic.model.event.MagicEvent;
|
||||
import magic.model.target.MagicBecomeTargetPicker;
|
||||
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 static final MagicAtUpkeepTrigger T = new MagicAtUpkeepTrigger() {
|
||||
@Override
|
||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer data) {
|
||||
|
@ -31,11 +38,52 @@ public class Aven_Mimeomancer {
|
|||
}
|
||||
|
||||
@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])) {
|
||||
event.processTargetPermanent(game,choiceResults,1,new MagicPermanentAction() {
|
||||
public void doAction(final MagicPermanent creature) {
|
||||
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.stack.MagicCardOnStack;
|
||||
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 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() {
|
||||
@Override
|
||||
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.MagicPermanent;
|
||||
import magic.model.MagicPlayer;
|
||||
import magic.model.MagicSubType;
|
||||
import magic.model.MagicPowerToughness;
|
||||
import magic.model.action.MagicPlayTokenAction;
|
||||
import magic.model.event.MagicEvent;
|
||||
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 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() {
|
||||
@Override
|
||||
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.MagicTiming;
|
||||
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 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(
|
||||
new MagicCondition[]{MagicCondition.CAN_TAP_CONDITION,MagicManaCost.TWO_BLACK.getCondition()},
|
||||
new MagicActivationHints(MagicTiming.Token),
|
||||
|
|
|
@ -7,9 +7,37 @@ import magic.model.MagicPlayer;
|
|||
import magic.model.action.MagicPlayTokenAction;
|
||||
import magic.model.event.MagicEvent;
|
||||
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 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() {
|
||||
@Override
|
||||
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.MagicTapTargetPicker;
|
||||
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 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() {
|
||||
@Override
|
||||
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.MagicPlayer;
|
||||
import magic.model.MagicType;
|
||||
import magic.model.MagicLayer;
|
||||
import magic.model.MagicPowerToughness;
|
||||
import magic.model.action.MagicSacrificeAction;
|
||||
import magic.model.choice.MagicTargetChoice;
|
||||
import magic.model.event.MagicEvent;
|
||||
import magic.model.event.MagicSacrificePermanentEvent;
|
||||
import magic.model.trigger.MagicAtUpkeepTrigger;
|
||||
|
||||
import magic.model.target.MagicTargetFilter;
|
||||
import magic.model.mstatic.MagicStatic;
|
||||
import magic.model.MagicAbility;
|
||||
|
||||
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() {
|
||||
@Override
|
||||
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.MagicTiming;
|
||||
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 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(
|
||||
MagicCondition.NONE,
|
||||
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;
|
||||
}
|
||||
@Override
|
||||
public boolean accept(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||
return source != target && filter.accept(game, source.getController(), target);
|
||||
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent 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.MagicPayedCost;
|
||||
import magic.model.MagicPermanent;
|
||||
import magic.model.MagicPowerToughness;
|
||||
import magic.model.MagicSource;
|
||||
import magic.model.action.MagicPermanentAction;
|
||||
import magic.model.action.MagicSetAbilityAction;
|
||||
|
@ -15,8 +16,23 @@ import magic.model.event.MagicPermanentActivation;
|
|||
import magic.model.event.MagicTapEvent;
|
||||
import magic.model.event.MagicTiming;
|
||||
import magic.model.target.MagicUnblockableTargetPicker;
|
||||
import magic.model.MagicLayer;
|
||||
import magic.model.mstatic.MagicStatic;
|
||||
import magic.model.target.MagicTargetFilter;
|
||||
|
||||
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(
|
||||
new MagicCondition[]{MagicCondition.CAN_TAP_CONDITION},
|
||||
new MagicActivationHints(MagicTiming.Attack),
|
||||
|
|
|
@ -9,11 +9,38 @@ import magic.model.event.MagicEvent;
|
|||
import magic.model.target.MagicTarget;
|
||||
import magic.model.target.MagicTargetFilter;
|
||||
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;
|
||||
|
||||
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() {
|
||||
@Override
|
||||
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.MagicTapEvent;
|
||||
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 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(
|
||||
new MagicCondition[]{MagicCondition.CAN_TAP_CONDITION},
|
||||
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.MagicTapEvent;
|
||||
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 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() {
|
||||
@Override
|
||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent otherPermanent) {
|
||||
|
|
|
@ -16,8 +16,8 @@ public class Veteran_Armorer {
|
|||
pt.toughness += 1;
|
||||
}
|
||||
@Override
|
||||
public boolean accept(final MagicGame game,final MagicPermanent source,final MagicPermanent target) {
|
||||
return source != target && filter.accept(game, source.getController(), target);
|
||||
public boolean condition(final MagicGame game,final MagicPermanent source,final MagicPermanent 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();
|
||||
}
|
||||
};
|
||||
}
|
|
@ -21,235 +21,40 @@ public class MagicStaticLocalVariable extends MagicDummyLocalVariable {
|
|||
|
||||
private static final MagicLocalVariable INSTANCE=new MagicStaticLocalVariable();
|
||||
|
||||
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;
|
||||
public static final MagicLocalVariable getInstance() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
// You can't be target of spells or abilities your opponent controls.
|
||||
private static int spiritOfTheHearth;
|
||||
private static int tolsimirWolfblood;
|
||||
private static int trueConviction;
|
||||
private static int urabraskTheHidden;
|
||||
private static int veteranArmorer;
|
||||
private static int windbriskRaptor;
|
||||
|
||||
public static void initializeCardDefinitions() {
|
||||
final CardDefinitions definitions=CardDefinitions.getInstance();
|
||||
spiritOfTheHearth=definitions.getCard("Spirit of the Hearth").getIndex();
|
||||
}
|
||||
|
||||
public static boolean canTarget(final MagicPlayer controller) {
|
||||
return controller.getCount(spiritOfTheHearth) == 0;
|
||||
}
|
||||
|
||||
private static int getOtherCount(final int cardDefinitionIndex,final MagicPermanent permanent,final int count) {
|
||||
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) {
|
||||
|
||||
final MagicPlayer controller=permanent.getController();
|
||||
final MagicPlayer opponent=game.getOpponent(controller);
|
||||
|
||||
for (final MagicPermanentStatic mpstatic : game.getStatics()) {
|
||||
final MagicStatic mstatic = mpstatic.getStatic();
|
||||
if (mstatic.accept(game, mpstatic.getPermanent(),permanent)) {
|
||||
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
|
||||
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,long flags) {
|
||||
if (permanent.isCreature()) {
|
||||
final MagicPlayer controller=permanent.getController();
|
||||
|
||||
for (final MagicPermanentStatic mpstatic : game.getStatics()) {
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -262,50 +67,4 @@ public class MagicStaticLocalVariable extends MagicDummyLocalVariable {
|
|||
}
|
||||
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);
|
||||
addToHand(P,"Glorious Anthem",2);
|
||||
addToHand(P,"Godhead of Awe",2);
|
||||
addToHand(P,"Tolsimir Wolfblood",1);
|
||||
|
||||
|
||||
P = opponent;
|
||||
|
|
Loading…
Reference in New Issue