use boolean to track whether trigger/static was added by action
parent
98c28b1f85
commit
42191ad01c
|
@ -9,6 +9,7 @@ public class AddStaticAction extends MagicAction {
|
|||
private final MagicPermanent permanent;
|
||||
private final MagicStatic mstatic;
|
||||
private final boolean force;
|
||||
private boolean done;
|
||||
|
||||
private AddStaticAction(final MagicPermanent aPermanent, final MagicStatic aStatic, final boolean aForce) {
|
||||
permanent = aPermanent;
|
||||
|
@ -31,6 +32,7 @@ public class AddStaticAction extends MagicAction {
|
|||
@Override
|
||||
public void doAction(final MagicGame game) {
|
||||
if (permanent == MagicPermanent.NONE || permanent.isValid() || force) {
|
||||
done = true;
|
||||
game.addStatic(permanent, mstatic);
|
||||
game.setStateCheckRequired();
|
||||
}
|
||||
|
@ -38,7 +40,7 @@ public class AddStaticAction extends MagicAction {
|
|||
|
||||
@Override
|
||||
public void undoAction(final MagicGame game) {
|
||||
if (permanent == MagicPermanent.NONE || permanent.isValid() || force) {
|
||||
if (done) {
|
||||
game.removeStatic(permanent, mstatic);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ public class AddTriggerAction extends MagicAction {
|
|||
private final MagicPermanent permanent;
|
||||
private final MagicTrigger<?> trigger;
|
||||
private final boolean force;
|
||||
private boolean done;
|
||||
|
||||
private AddTriggerAction(final MagicPermanent aPermanent,final MagicTrigger<?> aTrigger,final boolean aForce) {
|
||||
permanent = aPermanent;
|
||||
|
@ -32,13 +33,14 @@ public class AddTriggerAction extends MagicAction {
|
|||
@Override
|
||||
public void doAction(final MagicGame game) {
|
||||
if (permanent == MagicPermanent.NONE || permanent.isValid() || force) {
|
||||
game.addTrigger(permanent,trigger);
|
||||
done = true;
|
||||
game.addTrigger(permanent, trigger);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void undoAction(final MagicGame game) {
|
||||
if (permanent == MagicPermanent.NONE || permanent.isValid() || force) {
|
||||
if (done) {
|
||||
game.removeTrigger(permanent, trigger);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ public class AddTurnTriggerAction extends MagicAction {
|
|||
|
||||
private final MagicPermanent permanent;
|
||||
private final MagicTrigger<?> trigger;
|
||||
private MagicPermanentTrigger permanentTrigger;
|
||||
private boolean done;
|
||||
|
||||
public AddTurnTriggerAction(final MagicPermanent aPermanent,final MagicTrigger<?> aTrigger) {
|
||||
permanent = aPermanent;
|
||||
|
@ -23,14 +23,15 @@ public class AddTurnTriggerAction extends MagicAction {
|
|||
@Override
|
||||
public void doAction(final MagicGame game) {
|
||||
if (permanent == MagicPermanent.NONE || permanent.isValid()) {
|
||||
permanentTrigger=game.addTurnTrigger(permanent,trigger);
|
||||
done = true;
|
||||
game.addTurnTrigger(permanent, trigger);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void undoAction(final MagicGame game) {
|
||||
if (permanentTrigger != null) {
|
||||
game.removeTrigger(permanentTrigger);
|
||||
if (done) {
|
||||
game.removeTrigger(permanent, trigger);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue