* Blinding Beam - Fixed that the players creatures don't untap effect lasted until end of game instead until the next untap phase of target player.

This commit is contained in:
LevelX2 2013-08-28 15:12:38 +02:00
parent d7b7f6c234
commit f4c0412c8c
2 changed files with 15 additions and 8 deletions

View file

@ -45,6 +45,7 @@ import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType;
import mage.game.permanent.Permanent;
import mage.game.turn.Step;
import mage.players.Player;
import mage.target.TargetPlayer;
import mage.target.common.TargetCreaturePermanent;
@ -146,6 +147,17 @@ class BlindingBeamEffect2 extends ReplacementEffectImpl<BlindingBeamEffect2> {
return true;
}
@Override
public boolean isInactive(Ability source, Game game) {
if (game.getPhase().getStep().getType() == PhaseStep.UNTAP && game.getStep().getStepPart() == Step.StepPart.PRE)
{
if (game.getActivePlayerId().equals(targetPlayerId) || game.getPlayer(source.getControllerId()).hasReachedNextTurnAfterLeaving()) {
return true;
}
}
return false;
}
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
// replace untap event of creatures of target player
@ -155,12 +167,6 @@ class BlindingBeamEffect2 extends ReplacementEffectImpl<BlindingBeamEffect2> {
return true;
}
}
// discard effect at end of next untap step of target player
if (event.getType().equals(EventType.UNTAP_STEP_POST)) {
if (targetPlayerId.equals(event.getPlayerId())) {
discard();
}
}
return false;
}

View file

@ -37,6 +37,7 @@ import mage.game.permanent.Permanent;
import mage.target.Target;
import java.util.UUID;
import mage.util.CardUtil;
/**
* @author BetaSteward_at_googlemail.com
@ -81,9 +82,9 @@ public class TapTargetEffect extends OneShotEffect<TapTargetEffect> {
Target target = mode.getTargets().get(0);
if (target.getMaxNumberOfTargets() > 1) {
if (target.getMaxNumberOfTargets() == target.getNumberOfTargets()) {
return "tap " + target.getNumberOfTargets() + " target " + target.getTargetName() + "s";
return "tap " + CardUtil.numberToText(target.getNumberOfTargets()) + " target " + target.getTargetName() + "s";
} else {
return "tap up to " + target.getMaxNumberOfTargets() + " target " + target.getTargetName() + "s";
return "tap up to " + CardUtil.numberToText(target.getMaxNumberOfTargets()) + " target " + target.getTargetName() + "s";
}
} else if (target.getMaxNumberOfTargets() == 0){
return "tap X target " + mode.getTargets().get(0).getTargetName();