reset ActivationPriority when opponents plays something

master
melvin 2011-10-02 11:31:46 +08:00
parent f46b3bf3fd
commit 1e186a60fe
2 changed files with 12 additions and 5 deletions

View File

@ -87,8 +87,8 @@ public abstract class MagicActivation implements MagicEventAction, Comparable<Ma
return id >= actpri.getActivationId();
}
void changeActivationPriority(final MagicGame game,final MagicSource source) {
final MagicActivationPriority actpri = source.getController().getActivationPriority();
void changeActivationPriority(final MagicGame game,final MagicPlayer player) {
final MagicActivationPriority actpri = player.getActivationPriority();
actpri.setPriority(priority);
actpri.setActivationId(id);
}

View File

@ -48,9 +48,16 @@ public class MagicPriorityEvent extends MagicEvent {
if (activation.usesStack()) {
game.setPriorityPassed(false);
}
final MagicSource source=playChoiceResult.source;
activation.changeActivationPriority(game,source);
for (final MagicEvent costEvent : activation.getCostEvent(source)) {
final MagicSource source = playChoiceResult.source;
final MagicPlayer player = source.getController();
// set activation/priority of controller
activation.changeActivationPriority(game,player);
// reset activation/priority of opponent
game.getOpponent(player).getActivationPriority().clear();
for (final MagicEvent costEvent : activation.getCostEvent(source)) {
game.addEvent(costEvent);
}
final MagicEvent activationEvent=activation.getEvent(source);