mirror of
https://github.com/correl/mage.git
synced 2025-03-17 09:16:26 -09:00
Some fixes to prevent null pointer exceptions.
This commit is contained in:
parent
ad2f5a4d46
commit
1ccd2a1b04
3 changed files with 20 additions and 20 deletions
|
@ -45,7 +45,6 @@ import mage.constants.Zone;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.events.GameEvent;
|
import mage.game.events.GameEvent;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.players.PlayerList;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -103,31 +102,30 @@ class ZursWeirdingReplacementEffect extends ReplacementEffectImpl {
|
||||||
Card card = player.getLibrary().getFromTop(game);
|
Card card = player.getLibrary().getFromTop(game);
|
||||||
if (card != null) {
|
if (card != null) {
|
||||||
// reveals it instead
|
// reveals it instead
|
||||||
player.revealCards(sourceObject.getIdName() + " next draw of " + player.getName() + " (" + game.getTurnNum()+"|"+game.getPhase().getType() +")", new CardsImpl(card), game);
|
player.revealCards(sourceObject.getIdName() + " next draw of " + player.getName() + " (" + game.getTurnNum() + "|" + game.getPhase().getType() + ")", new CardsImpl(card), game);
|
||||||
|
|
||||||
// Then any other player may pay 2 life. If a player does, put that card into its owner's graveyard
|
// Then any other player may pay 2 life. If a player does, put that card into its owner's graveyard
|
||||||
PlayerList playerList = game.getPlayerList().copy();
|
String message = "Pay 2 life to put " + card.getLogName() + " into graveyard?";
|
||||||
playerList.setCurrent(player.getId());
|
for (UUID playerId : game.getState().getPlayersInRange(player.getId(), game)) {
|
||||||
Player currentPlayer = playerList.getNext(game);
|
if (playerId.equals(player.getId())) {
|
||||||
String message = new StringBuilder("Pay 2 life to put ").append(card.getLogName()).append(" into graveyard?").toString();
|
continue;
|
||||||
while (!currentPlayer.getId().equals(player.getId())) {
|
}
|
||||||
if (currentPlayer.canPayLifeCost() &&
|
Player otherPlayer = game.getPlayer(playerId);
|
||||||
currentPlayer.getLife() >= 2 &&
|
if (otherPlayer.canPayLifeCost()
|
||||||
currentPlayer.chooseUse(Outcome.Benefit, message, source, game)) {
|
&& otherPlayer.getLife() >= 2
|
||||||
currentPlayer.loseLife(2, game);
|
&& otherPlayer.chooseUse(Outcome.Benefit, message, source, game)) {
|
||||||
|
otherPlayer.loseLife(2, game);
|
||||||
player.moveCards(card, Zone.GRAVEYARD, source, game);
|
player.moveCards(card, Zone.GRAVEYARD, source, game);
|
||||||
// game.getState().getRevealed().reset();
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
currentPlayer = playerList.getNext(game);
|
|
||||||
}
|
|
||||||
|
|
||||||
// game.getState().getRevealed().reset();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean checksEventType(GameEvent event, Game game) {
|
public boolean checksEventType(GameEvent event, Game game) {
|
||||||
return event.getType() == GameEvent.EventType.DRAW_CARD;
|
return event.getType() == GameEvent.EventType.DRAW_CARD;
|
||||||
|
|
|
@ -93,7 +93,7 @@ class DeadlockTrapCantActivateEffect extends RestrictionEffect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean applies(Permanent permanent, Ability source, Game game) {
|
public boolean applies(Permanent permanent, Ability source, Game game) {
|
||||||
return getTargetPointer().getFirst(game, source).equals(permanent.getId());
|
return permanent.getId().equals(getTargetPointer().getFirst(game, source));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -100,9 +100,11 @@ class ForkInTheRoadEffect extends OneShotEffect {
|
||||||
if (target.getTargets().size() > 0) {
|
if (target.getTargets().size() > 0) {
|
||||||
Cards revealed = new CardsImpl();
|
Cards revealed = new CardsImpl();
|
||||||
for (UUID cardId : target.getTargets()) {
|
for (UUID cardId : target.getTargets()) {
|
||||||
Card card = controller.getLibrary().getCard(cardId, game);
|
Card card = game.getCard(cardId);
|
||||||
|
if (card != null) {
|
||||||
revealed.add(card);
|
revealed.add(card);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
controller.revealCards(sourceObject.getIdName(), revealed, game);
|
controller.revealCards(sourceObject.getIdName(), revealed, game);
|
||||||
if (target.getTargets().size() > 0) {
|
if (target.getTargets().size() > 0) {
|
||||||
TargetCard target2 = new TargetCard(Zone.LIBRARY, filter);
|
TargetCard target2 = new TargetCard(Zone.LIBRARY, filter);
|
||||||
|
|
Loading…
Add table
Reference in a new issue