replace MagicPermanentState.PreventAllDamage with MagicIfDamageWouldBeDealtTrigger.PreventDamageDealtTo
parent
ed9c31d31b
commit
b34dc48b11
|
@ -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
|
||||
));
|
||||
}
|
||||
});
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
[
|
||||
MagicIfDamageWouldBeDealtTrigger.PreventDamageDealtToDealtBy
|
||||
MagicIfDamageWouldBeDealtTrigger.PreventCombatDamageDealtToDealtBy
|
||||
]
|
||||
|
|
|
@ -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
|
||||
));
|
||||
}
|
||||
});
|
||||
|
|
|
@ -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
|
||||
));
|
||||
}
|
||||
});
|
||||
|
|
|
@ -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", "")
|
||||
;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue