added WhenTargeted trigger

master
melvin 2011-07-06 17:00:19 +08:00
parent 0c7b4b015e
commit 185873d2ac
2 changed files with 10 additions and 3 deletions

View File

@ -2,6 +2,8 @@ package magic.model.action;
import magic.model.MagicGame;
import magic.model.event.MagicEvent;
import magic.model.trigger.MagicTriggerType;
import magic.model.choice.MagicTargetChoice;
public class MagicExecuteFirstEventAction extends MagicAction {
@ -9,15 +11,19 @@ public class MagicExecuteFirstEventAction extends MagicAction {
private MagicEvent firstEvent;
public MagicExecuteFirstEventAction(final Object choiceResults[]) {
this.choiceResults=choiceResults;
}
@Override
public void doAction(final MagicGame game) {
firstEvent=game.getEvents().removeFirst();
game.executeEvent(firstEvent,choiceResults);
if (firstEvent.getChoice() instanceof MagicTargetChoice) {
final MagicTargetChoice tchoice = (MagicTargetChoice)firstEvent.getChoice();
if (tchoice.isTargeted()) {
game.executeTrigger(MagicTriggerType.WhenTargeted, firstEvent.getSource());
}
}
}
@Override
@ -25,4 +31,4 @@ public class MagicExecuteFirstEventAction extends MagicAction {
game.getEvents().addFirst(firstEvent);
}
}
}

View File

@ -11,6 +11,7 @@ public enum MagicTriggerType {
WhenOtherPutIntoGraveyardFromPlay, // permanent
WhenAttacks, // permanent
WhenBlocks, // permanent
WhenTargeted, // permanent
IfDamageWouldBeDealt, // damage
;