mirror of
https://github.com/magefree/mage.git
synced 2025-12-23 20:11:59 -08:00
Fixed some possible null pointer exceptions.
This commit is contained in:
parent
663c6fe1e9
commit
7e9d285a49
4 changed files with 28 additions and 16 deletions
|
|
@ -167,8 +167,9 @@ class CurseOfEchoesEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public String getText(Mode mode) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("Copy target ").append(mode.getTargets().get(0).getTargetName()).append(". You may choose new targets for the copy");
|
||||
return sb.toString();
|
||||
if (mode.getTargets().size() > 0) {
|
||||
return "Copy target " + mode.getTargets().get(0).getTargetName() + ". You may choose new targets for the copy";
|
||||
}
|
||||
return "No target";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -165,6 +165,7 @@ public class ClashEffect extends OneShotEffect implements MageSingleton {
|
|||
// decide to put the cards on top or on the buttom of library in turn order beginning with the active player in turn order
|
||||
PlayerList playerList = game.getPlayerList().copy();
|
||||
playerList.setCurrent(game.getActivePlayerId());
|
||||
Player nextPlayer;
|
||||
do {
|
||||
Player current = playerList.getCurrent(game);
|
||||
if (cardController != null && current.getId().equals(controller.getId())) {
|
||||
|
|
@ -173,7 +174,8 @@ public class ClashEffect extends OneShotEffect implements MageSingleton {
|
|||
if (cardOpponent != null && current.getId().equals(opponent.getId())) {
|
||||
topOpponent = current.chooseUse(Outcome.Detriment, "Put " + cardOpponent.getLogName() + " back on top of your library? (otherwise it goes to bottom)", source, game);
|
||||
}
|
||||
} while (!playerList.getNext(game).getId().equals(game.getActivePlayerId()));
|
||||
nextPlayer = playerList.getNext(game);
|
||||
} while (nextPlayer != null && !nextPlayer.getId().equals(game.getActivePlayerId()));
|
||||
// put the cards back to library
|
||||
if (cardController != null) {
|
||||
controller.moveCardToLibraryWithInfo(cardController, source.getSourceId(), game, Zone.LIBRARY, topController, true);
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ import mage.abilities.effects.OneShotEffect;
|
|||
import mage.constants.Outcome;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.permanent.PermanentToken;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -39,6 +41,8 @@ import mage.game.permanent.Permanent;
|
|||
*/
|
||||
public class TransformSourceEffect extends OneShotEffect {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(TransformSourceEffect.class);
|
||||
|
||||
private boolean withoutTrigger;
|
||||
private boolean fromDayToNight;
|
||||
|
||||
|
|
@ -82,7 +86,11 @@ public class TransformSourceEffect extends OneShotEffect {
|
|||
}
|
||||
if (!game.isSimulation()) {
|
||||
if (fromDayToNight) {
|
||||
game.informPlayers(permanent.getIdName() + " transforms into " + permanent.getSecondCardFace().getIdName());
|
||||
if (permanent.getSecondCardFace() != null) {
|
||||
game.informPlayers(permanent.getIdName() + " transforms into " + permanent.getSecondCardFace().getIdName());
|
||||
} else {
|
||||
logger.error("Can't get SecondCardFace " + permanent.getName() + " Token: " + (permanent instanceof PermanentToken ? "Yes" : "No"));
|
||||
}
|
||||
} else {
|
||||
game.informPlayers(permanent.getSecondCardFace().getIdName() + " transforms into " + permanent.getIdName());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
/*
|
||||
* Copyright 2011 BetaSteward_at_googlemail.com. All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are
|
||||
* permitted provided that the following conditions are met:
|
||||
*
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
*
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
|
||||
|
|
@ -20,12 +20,11 @@
|
|||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*
|
||||
* The views and conclusions contained in the software and documentation are those of the
|
||||
* authors and should not be interpreted as representing official policies, either expressed
|
||||
* or implied, of BetaSteward_at_googlemail.com.
|
||||
*/
|
||||
|
||||
package mage.game.draft;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -69,12 +68,12 @@ public class DraftPlayer {
|
|||
public void prepareDeck() {
|
||||
if (!hiddenCards.isEmpty()) {
|
||||
Set<Card> cardsToDeck = new HashSet<>();
|
||||
for(Card card: deck.getSideboard()) {
|
||||
for (Card card : deck.getSideboard()) {
|
||||
if (!hiddenCards.contains(card.getId())) {
|
||||
cardsToDeck.add(card);
|
||||
}
|
||||
}
|
||||
for(Card card: cardsToDeck) {
|
||||
for (Card card : cardsToDeck) {
|
||||
deck.getSideboard().remove(card);
|
||||
deck.getCards().add(card);
|
||||
}
|
||||
|
|
@ -90,7 +89,7 @@ public class DraftPlayer {
|
|||
if (hiddenCards != null) {
|
||||
this.hiddenCards = hiddenCards;
|
||||
}
|
||||
synchronized(booster) {
|
||||
synchronized (booster) {
|
||||
booster.remove(card);
|
||||
}
|
||||
picking = false;
|
||||
|
|
@ -101,13 +100,15 @@ public class DraftPlayer {
|
|||
// booster = set.createBooster();
|
||||
// }
|
||||
// }
|
||||
|
||||
public void setBooster(List<Card> booster) {
|
||||
this.booster = booster;
|
||||
}
|
||||
|
||||
public List<Card> getBooster() {
|
||||
synchronized(booster) {
|
||||
if (booster == null) {
|
||||
return null;
|
||||
}
|
||||
synchronized (booster) {
|
||||
return new ArrayList<>(booster);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue