replace MagicPermanentState.PreventAllDamage with MagicIfDamageWouldBeDealtTrigger.PreventDamageDealtTo

master
melvin 2013-11-08 10:46:02 +08:00
parent ed9c31d31b
commit b34dc48b11
7 changed files with 18 additions and 11 deletions

View File

@ -41,7 +41,7 @@ def TARGET_ATTACKING_CREATURE_YOU_CONTROL = new MagicTargetChoice(
game.doAction(new MagicUntapAction(creature));
game.doAction(new MagicAddTurnTriggerAction(
creature,
MagicIfDamageWouldBeDealtTrigger.PreventDamageDealtToDealtBy
MagicIfDamageWouldBeDealtTrigger.PreventCombatDamageDealtToDealtBy
));
}
});

View File

@ -1,3 +1,3 @@
[
MagicIfDamageWouldBeDealtTrigger.PreventDamageDealtToDealtBy
MagicIfDamageWouldBeDealtTrigger.PreventCombatDamageDealtToDealtBy
]

View File

@ -36,9 +36,9 @@ def CREATURE_POWER_5_OR_MORE = new MagicPermanentFilterImpl() {
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, new MagicPermanentAction() {
public void doAction(final MagicPermanent creature) {
game.doAction(MagicChangeStateAction.Set(
game.doAction(new MagicAddTurnTriggerAction(
creature,
MagicPermanentState.PreventAllDamage
MagicIfDamageWouldBeDealtTrigger.PreventDamageDealtTo
));
}
});

View File

@ -17,9 +17,9 @@
event.processTargetPermanent(game,new MagicPermanentAction() {
public void doAction(final MagicPermanent creature) {
game.doAction(new MagicGainAbilityAction(creature,MagicAbility.Flying));
game.doAction(MagicChangeStateAction.Set(
game.doAction(new MagicAddTurnTriggerAction(
creature,
MagicPermanentState.PreventAllDamage
MagicIfDamageWouldBeDealtTrigger.PreventDamageDealtTo
));
}
});

View File

@ -16,7 +16,6 @@ public enum MagicPermanentState {
CannotAttack("can't attack",""),
NoCombatDamage("assigns no combat damage",""),
MustPayEchoCost("echo",""),
PreventAllDamage("prevent all damage that would be dealt this turn",""),
Monstrous("monstrous", "")
;

View File

@ -44,8 +44,7 @@ public class MagicDealDamageAction extends MagicAction {
if (target.isPermanent()) {
final MagicPermanent targetPermanent = (MagicPermanent)target;
if (targetPermanent.hasProtectionFrom(damage.getSource()) ||
targetPermanent.hasState(MagicPermanentState.PreventAllDamage)) {
if (targetPermanent.hasProtectionFrom(damage.getSource())) {
return 0;
}
}

View File

@ -21,12 +21,21 @@ public abstract class MagicIfDamageWouldBeDealtTrigger extends MagicTrigger<Magi
return MagicTriggerType.IfDamageWouldBeDealt;
}
public static final MagicIfDamageWouldBeDealtTrigger PreventDamageDealtToDealtBy = new MagicIfDamageWouldBeDealtTrigger(MagicTrigger.PREVENT_DAMAGE) {
public static final MagicIfDamageWouldBeDealtTrigger PreventCombatDamageDealtToDealtBy = new MagicIfDamageWouldBeDealtTrigger(MagicTrigger.PREVENT_DAMAGE) {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
if (damage.isCombat() &&
(damage.getTarget() == permanent || damage.getSource() == permanent)) {
// Replacement effect. Generates no event or action.
damage.prevent();
}
return MagicEvent.NONE;
}
};
public static final MagicIfDamageWouldBeDealtTrigger PreventDamageDealtTo = new MagicIfDamageWouldBeDealtTrigger(MagicTrigger.PREVENT_DAMAGE) {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
if (damage.getTarget() == permanent) {
damage.prevent();
}
return MagicEvent.NONE;