mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
- When a game is restarted, set lands played back to 0.
This commit is contained in:
@@ -25,12 +25,15 @@ import forge.card.trigger.TriggerType;
|
||||
import forge.control.input.InputControl;
|
||||
import forge.control.input.InputMulligan;
|
||||
import forge.deck.Deck;
|
||||
import forge.deck.DeckSection;
|
||||
import forge.game.phase.PhaseHandler;
|
||||
import forge.game.phase.PhaseType;
|
||||
import forge.game.player.LobbyPlayer;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.zone.PlayerZone;
|
||||
import forge.game.zone.ZoneType;
|
||||
import forge.gui.GuiChoose;
|
||||
import forge.gui.GuiUtils;
|
||||
import forge.gui.match.views.VAntes;
|
||||
import forge.item.CardPrinted;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
@@ -43,10 +46,7 @@ import forge.util.MyRandom;
|
||||
* All of these methods can and should be static.
|
||||
*/
|
||||
public class GameNew {
|
||||
private static void prepareSingleLibrary(final Player player, final Deck deck, final Map<Player, List<String>> removedAnteCards, final List<String> rAICards, boolean canRandomFoil) {
|
||||
final Random generator = MyRandom.getRandom();
|
||||
boolean useAnte = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE);
|
||||
|
||||
private static void prepareFirstGameLibrary(Player player, Deck deck, Map<Player, List<String>> removedAnteCards, List<String> rAICards, boolean canRandomFoil, Random generator, boolean useAnte) {
|
||||
PlayerZone library = player.getZone(ZoneType.Library);
|
||||
for (final Entry<CardPrinted, Integer> stackOfCards : deck.getMain()) {
|
||||
final CardPrinted cardPrinted = stackOfCards.getKey();
|
||||
@@ -85,6 +85,49 @@ public class GameNew {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean sideboardAndPrepareLibrary(final Player player, final Deck deck, boolean canRandomFoil, Random generator, boolean useAnte) {
|
||||
final GameType gameType = Singletons.getModel().getMatch().getGameType();
|
||||
boolean hasSideboard = gameType.equals(GameType.Draft) || gameType.equals(GameType.Sealed);
|
||||
|
||||
PlayerZone library = player.getZone(ZoneType.Library);
|
||||
DeckSection sideboard = deck.getSideboard();
|
||||
int sideboardSize = sideboard.countAll();
|
||||
|
||||
if (hasSideboard || sideboardSize == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player.isComputer()) {
|
||||
// Here is where the AI could sideboard, but needs to gather hints during the first game about what to SB
|
||||
return false;
|
||||
} else {
|
||||
// Human Sideboarding
|
||||
List<Card> newDeck = GuiChoose.getOrderChoices("Sideboarding", "Deck to Play", sideboardSize,
|
||||
sideboard.toForgeCardList(), deck.getMain().toForgeCardList(), null);
|
||||
|
||||
for (Card c : newDeck) {
|
||||
library.add(c);
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private static void prepareSingleLibrary(final Player player, final Deck deck, final Map<Player, List<String>> removedAnteCards, final List<String> rAICards, boolean canRandomFoil) {
|
||||
final Random generator = MyRandom.getRandom();
|
||||
boolean useAnte = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_ANTE);
|
||||
|
||||
if (Singletons.getModel().getMatch().getPlayedGames().size() == 0) {
|
||||
prepareFirstGameLibrary(player, deck, removedAnteCards, rAICards, canRandomFoil, generator, useAnte);
|
||||
} else {
|
||||
if (!sideboardAndPrepareLibrary(player, deck, canRandomFoil, generator, useAnte)) {
|
||||
prepareFirstGameLibrary(player, deck, removedAnteCards, rAICards, canRandomFoil, generator, useAnte);
|
||||
}
|
||||
//
|
||||
}
|
||||
|
||||
|
||||
// Shuffling
|
||||
// Ai may cheat
|
||||
@@ -187,6 +230,7 @@ public class GameNew {
|
||||
for( Entry<Player, PlayerStartConditions> p : playersConditions.entrySet() ) {
|
||||
final Player player = p.getKey();
|
||||
player.setStartingLife(p.getValue().getStartingLife());
|
||||
player.setNumLandsPlayed(0);
|
||||
// what if I call it for AI player?
|
||||
PlayerZone bf = player.getZone(ZoneType.Battlefield);
|
||||
Iterable<Card> onTable = p.getValue().getCardsOnTable();
|
||||
|
||||
Reference in New Issue
Block a user