mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
* remove warnings
* remove messagebox when computer plays first * Mulligan input message now reads who is going first (if you go first you are asked to play or draw yet before mulligan)
This commit is contained in:
@@ -22,7 +22,6 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import forge.Card;
|
||||
import forge.Singletons;
|
||||
import forge.game.GameState;
|
||||
import forge.game.phase.CombatUtil;
|
||||
import forge.game.player.Player;
|
||||
|
||||
@@ -18,10 +18,8 @@
|
||||
package forge.control.input;
|
||||
|
||||
import forge.Card;
|
||||
import forge.Singletons;
|
||||
import forge.game.GameState;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.zone.Zone;
|
||||
import forge.game.zone.ZoneType;
|
||||
import forge.view.ButtonUtil;
|
||||
|
||||
|
||||
@@ -44,24 +44,25 @@ public class InputConfirmMulligan extends InputSyncronizedBase {
|
||||
boolean keepHand = false;
|
||||
final boolean isCommander;
|
||||
final List<Card> selected = new ArrayList<Card>();
|
||||
final private Player startingPlayer;
|
||||
|
||||
public InputConfirmMulligan(Player humanPlayer, boolean commander) {
|
||||
public InputConfirmMulligan(Player humanPlayer, Player startsGame, boolean commander) {
|
||||
super(humanPlayer);
|
||||
isCommander = commander;
|
||||
startingPlayer = startsGame;
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
@Override
|
||||
public final void showMessage() {
|
||||
GameState game = player.getGame();
|
||||
Player startingPlayer = game.getPhaseHandler().getPlayerTurn();
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if( startingPlayer == player ) {
|
||||
sb.append("You are going first.\n");
|
||||
sb.append("You are going first!\n\n");
|
||||
} else {
|
||||
sb.append(startingPlayer.getName()).append(" is going first. ");
|
||||
sb.append("You are going ").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n");
|
||||
sb.append(startingPlayer.getName()).append(" is going first.\n");
|
||||
sb.append("You are going ").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n");
|
||||
}
|
||||
|
||||
if ( isCommander ) {
|
||||
|
||||
@@ -1484,7 +1484,7 @@ public class GameAction {
|
||||
do {
|
||||
for (int i = 0; i < whoCanMulligan.size(); i++) {
|
||||
Player p = whoCanMulligan.get(i);
|
||||
List<Card> toMulligan = p.canMulligan() ? p.getController().getCardsToMulligan(isCommander) : null;
|
||||
List<Card> toMulligan = p.canMulligan() ? p.getController().getCardsToMulligan(isCommander, firstPlayer) : null;
|
||||
if ( toMulligan != null ) {
|
||||
if( !isCommander ) {
|
||||
toMulligan = new ArrayList<Card>(p.getCardsIn(ZoneType.Hand));
|
||||
|
||||
@@ -20,8 +20,6 @@ import forge.game.player.LobbyPlayer;
|
||||
import forge.game.player.LobbyPlayerHuman;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.player.PlayerStatistics;
|
||||
import forge.game.player.PlayerType;
|
||||
import forge.gui.GuiDialog;
|
||||
import forge.gui.framework.EDocID;
|
||||
import forge.gui.framework.SDisplayUtil;
|
||||
import forge.gui.match.CMatchUI;
|
||||
@@ -144,7 +142,7 @@ public class MatchController {
|
||||
public void startRound() {
|
||||
|
||||
currentGame = new GameState(players, gameType, this);
|
||||
|
||||
|
||||
try {
|
||||
attachUiToMatch(this, FControl.SINGLETON_INSTANCE.getLobby().getGuiPlayer());
|
||||
|
||||
@@ -155,9 +153,9 @@ public class MatchController {
|
||||
} catch (Exception e) {
|
||||
BugReporter.reportException(e);
|
||||
}
|
||||
|
||||
final Player firstPlayer = determineFirstTurnPlayer(getLastGameOutcome(), currentGame);
|
||||
|
||||
final Player firstPlayer = determineFirstTurnPlayer(getLastGameOutcome(), currentGame);
|
||||
|
||||
currentGame.getInputQueue().clearInput();
|
||||
if(currentGame.getType() == GameType.Planechase)
|
||||
firstPlayer.initPlane();
|
||||
@@ -233,17 +231,13 @@ public class MatchController {
|
||||
// per player observers were set in CMatchUI.SINGLETON_INSTANCE.initMatch
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: Write javadoc for this method.
|
||||
*/
|
||||
public void replayRound() {
|
||||
gamesPlayed.remove(gamesPlayed.size() - 1);
|
||||
startRound();
|
||||
}
|
||||
|
||||
public void replay() {
|
||||
public void clearGamesPlayed() {
|
||||
gamesPlayed.clear();
|
||||
startRound();
|
||||
}
|
||||
|
||||
public void clearLastGame() {
|
||||
gamesPlayed.remove(gamesPlayed.size() - 1);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -375,9 +369,6 @@ public class MatchController {
|
||||
}
|
||||
|
||||
boolean willPlay = goesFirst.getController().getWillPlayOnFirstTurn(message);
|
||||
if ( goesFirst.getLobbyPlayer().getType() == PlayerType.COMPUTER ) {
|
||||
GuiDialog.message(message + "\nComputer Going First");
|
||||
}
|
||||
goesFirst = willPlay ? goesFirst : goesFirst.getOpponent();
|
||||
game.getPhaseHandler().setPlayerTurn(goesFirst);
|
||||
return goesFirst;
|
||||
|
||||
@@ -3,7 +3,6 @@ package forge.game.ai;
|
||||
import java.util.List;
|
||||
|
||||
import forge.Card;
|
||||
import forge.Singletons;
|
||||
import forge.control.input.InputBase;
|
||||
import forge.game.GameState;
|
||||
import forge.game.phase.CombatUtil;
|
||||
|
||||
@@ -35,7 +35,6 @@ import forge.CardPredicates;
|
||||
import forge.Command;
|
||||
import forge.Constant;
|
||||
import forge.GameEntity;
|
||||
import forge.Singletons;
|
||||
import forge.card.CardType;
|
||||
import forge.card.MagicColor;
|
||||
import forge.card.ability.ApiType;
|
||||
|
||||
@@ -53,7 +53,6 @@ import forge.card.spellability.SpellAbility;
|
||||
import forge.card.spellability.Target;
|
||||
import forge.card.staticability.StaticAbility;
|
||||
import forge.card.trigger.TriggerType;
|
||||
import forge.control.FControl;
|
||||
import forge.game.GameActionUtil;
|
||||
import forge.game.GameState;
|
||||
import forge.game.GlobalRuleChange;
|
||||
|
||||
@@ -139,5 +139,5 @@ public abstract class PlayerController {
|
||||
|
||||
public abstract String chooseSomeType(String kindOfType, String aiLogic, List<String> validTypes, List<String> invalidTypes);
|
||||
public abstract boolean confirmReplacementEffect(ReplacementEffect replacementEffect, SpellAbility effectSA, String question);
|
||||
public abstract List<Card> getCardsToMulligan(boolean isCommander);
|
||||
public abstract List<Card> getCardsToMulligan(boolean isCommander, Player firstPlayer);
|
||||
}
|
||||
|
||||
@@ -288,7 +288,7 @@ public class PlayerControllerAi extends PlayerController {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Card> getCardsToMulligan(boolean isCommander) {
|
||||
public List<Card> getCardsToMulligan(boolean isCommander, Player firstPlayer) {
|
||||
if( !ComputerUtil.wantMulligan(player) )
|
||||
return null;
|
||||
|
||||
|
||||
@@ -469,8 +469,8 @@ public class PlayerControllerHuman extends PlayerController {
|
||||
|
||||
|
||||
@Override
|
||||
public List<Card> getCardsToMulligan(boolean isCommander) {
|
||||
final InputConfirmMulligan inp = new InputConfirmMulligan(player, isCommander);
|
||||
public List<Card> getCardsToMulligan(boolean isCommander, Player firstPlayer) {
|
||||
final InputConfirmMulligan inp = new InputConfirmMulligan(player, firstPlayer, isCommander);
|
||||
player.getGame().getInputQueue().setInputAndWait(inp);
|
||||
return inp.isKeepHand() ? null : inp.getSelectedCards();
|
||||
}
|
||||
|
||||
@@ -85,7 +85,8 @@ public class ControlWinLose {
|
||||
public void actionOnRestart() {
|
||||
SOverlayUtils.hideOverlay();
|
||||
saveOptions();
|
||||
match.replay();
|
||||
match.clearGamesPlayed();
|
||||
match.startRound();
|
||||
}
|
||||
|
||||
/** Action performed when "quit" button is pressed in default win/lose UI. */
|
||||
|
||||
@@ -33,7 +33,6 @@ import forge.Card;
|
||||
import forge.CardLists;
|
||||
import forge.CardPredicates.Presets;
|
||||
import forge.Command;
|
||||
import forge.Singletons;
|
||||
import forge.deck.Deck;
|
||||
import forge.game.GameState;
|
||||
import forge.game.phase.CombatUtil;
|
||||
|
||||
Reference in New Issue
Block a user