package magic.model.action;
import magic.model.MagicGame;
import magic.model.MagicPermanent;
import magic.model.trigger.MagicPermanentTrigger;
import magic.model.trigger.MagicTrigger;
public class AddTriggerAction extends MagicAction {
private final MagicPermanent permanent;
private final MagicTrigger<?> trigger;
private MagicPermanentTrigger permanentTrigger;
public AddTriggerAction(final MagicPermanent aPermanent,final MagicTrigger<?> aTrigger) {
permanent = aPermanent;
trigger = aTrigger;
}
public AddTriggerAction(final MagicTrigger<?> trigger) {
this(MagicPermanent.NONE, trigger);
}
@Override
public void doAction(final MagicGame game) {
if (permanent == MagicPermanent.NONE || permanent.isValid()) {
permanentTrigger=game.addTrigger(permanent,trigger);
}
}
@Override
public void undoAction(final MagicGame game) {
if (permanentTrigger != null) {
game.removeTrigger(permanentTrigger);
}
}
@Override
public String toString() {
return getClass().getSimpleName()+" ("+permanent+','+trigger+')';
}
}