mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
Refactor creation of Gui and AI lobby players into GamePlayerUtil
Fix so gui player name updated Fix so multiple human players receive separate LobbyPlayerHuman instances
This commit is contained in:
@@ -35,7 +35,6 @@ import forge.interfaces.IButton;
|
||||
import forge.interfaces.IGuiBase;
|
||||
import forge.item.PaperCard;
|
||||
import forge.match.input.InputQueue;
|
||||
import forge.player.LobbyPlayerHuman;
|
||||
import forge.properties.ForgeConstants;
|
||||
import forge.screens.match.FControl;
|
||||
import forge.screens.match.views.VPlayerPanel;
|
||||
@@ -443,32 +442,6 @@ public class GuiMobile implements IGuiBase {
|
||||
Gdx.net.openURI(url);
|
||||
}
|
||||
|
||||
private final LobbyPlayer guiPlayer = new LobbyPlayerHuman("Human", this);
|
||||
@Override
|
||||
public LobbyPlayer getGuiPlayer() {
|
||||
return guiPlayer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LobbyPlayer getAiPlayer(String name) {
|
||||
return FControl.getAiPlayer(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LobbyPlayer createAiPlayer() {
|
||||
return FControl.getAiPlayer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public LobbyPlayer createAiPlayer(String name, int avatarIndex) {
|
||||
return FControl.getAiPlayer(name, avatarIndex);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LobbyPlayer getQuestPlayer() {
|
||||
return getGuiPlayer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAudioClip createAudioClip(String filename) {
|
||||
return AudioClip.createClip(ForgeConstants.SOUND_DIR + filename);
|
||||
|
||||
@@ -29,6 +29,7 @@ import forge.item.PaperCard;
|
||||
import forge.itemmanager.CardManager;
|
||||
import forge.itemmanager.DeckManager;
|
||||
import forge.model.FModel;
|
||||
import forge.player.GamePlayerUtil;
|
||||
import forge.properties.ForgePreferences;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
import forge.screens.FScreen;
|
||||
@@ -294,8 +295,8 @@ public class ConstructedScreen extends LaunchScreen {
|
||||
for (int i = 0; i < getNumPlayers(); i++) {
|
||||
PlayerPanel playerPanel = playerPanels.get(i);
|
||||
String name = getPlayerName(i);
|
||||
LobbyPlayer lobbyPlayer = playerPanel.isPlayerAI() ? GuiBase.getInterface().createAiPlayer(name,
|
||||
getPlayerAvatar(i)) : GuiBase.getInterface().getGuiPlayer();
|
||||
LobbyPlayer lobbyPlayer = playerPanel.isPlayerAI() ? GamePlayerUtil.createAiPlayer(name,
|
||||
getPlayerAvatar(i)) : GamePlayerUtil.getGuiPlayer(name, i);
|
||||
RegisteredPlayer rp = playerPanel.deckChooser.getPlayer();
|
||||
|
||||
if (appliedVariants.isEmpty()) {
|
||||
|
||||
@@ -26,6 +26,7 @@ import forge.gauntlet.GauntletData;
|
||||
import forge.gauntlet.GauntletIO;
|
||||
import forge.gauntlet.GauntletUtil;
|
||||
import forge.model.FModel;
|
||||
import forge.player.GamePlayerUtil;
|
||||
import forge.quest.QuestUtil;
|
||||
import forge.screens.LaunchScreen;
|
||||
import forge.screens.settings.SettingsScreen;
|
||||
@@ -270,8 +271,8 @@ public class GauntletScreen extends LaunchScreen {
|
||||
protected boolean buildLaunchParams(LaunchParams launchParams) {
|
||||
final GauntletData gauntlet = FModel.getGauntletData();
|
||||
launchParams.gameType = GameType.Gauntlet;
|
||||
launchParams.players.add(new RegisteredPlayer(gauntlet.getUserDeck()).setPlayer(GuiBase.getInterface().getGuiPlayer()));
|
||||
launchParams.players.add(new RegisteredPlayer(gauntlet.getDecks().get(gauntlet.getCompleted())).setPlayer(GuiBase.getInterface().createAiPlayer()));
|
||||
launchParams.players.add(new RegisteredPlayer(gauntlet.getUserDeck()).setPlayer(GamePlayerUtil.getGuiPlayer()));
|
||||
launchParams.players.add(new RegisteredPlayer(gauntlet.getDecks().get(gauntlet.getCompleted())).setPlayer(GamePlayerUtil.createAiPlayer()));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@ import forge.Forge;
|
||||
import forge.Graphics;
|
||||
import forge.GuiBase;
|
||||
import forge.LobbyPlayer;
|
||||
import forge.ai.AiProfileUtil;
|
||||
import forge.ai.LobbyPlayerAi;
|
||||
import forge.assets.FImage;
|
||||
import forge.assets.FSkin;
|
||||
@@ -49,6 +48,7 @@ import forge.game.zone.ZoneType;
|
||||
import forge.match.input.InputPlaybackControl;
|
||||
import forge.match.input.InputQueue;
|
||||
import forge.model.FModel;
|
||||
import forge.player.GamePlayerUtil;
|
||||
import forge.player.PlayerControllerHuman;
|
||||
import forge.properties.ForgePreferences;
|
||||
import forge.properties.ForgePreferences.FPref;
|
||||
@@ -65,7 +65,6 @@ import forge.toolbox.FDisplayObject;
|
||||
import forge.toolbox.FOptionPane;
|
||||
import forge.util.Callback;
|
||||
import forge.util.GuiDisplayUtil;
|
||||
import forge.util.MyRandom;
|
||||
import forge.util.NameGenerator;
|
||||
import forge.util.WaitCallback;
|
||||
import forge.view.CardView;
|
||||
@@ -841,29 +840,9 @@ public class FControl {
|
||||
String aiName = NameGenerator.getRandomName("Any", "Generic", playerName);
|
||||
return aiName;
|
||||
}
|
||||
|
||||
public final static LobbyPlayer getAiPlayer() { return getAiPlayer(getRandomName()); }
|
||||
public final static LobbyPlayer getAiPlayer(String name) {
|
||||
int avatarCount = GuiBase.getInterface().getAvatarCount();
|
||||
return getAiPlayer(name, avatarCount == 0 ? 0 : MyRandom.getRandom().nextInt(avatarCount));
|
||||
}
|
||||
public final static LobbyPlayer getAiPlayer(String name, int avatarIndex) {
|
||||
LobbyPlayerAi player = new LobbyPlayerAi(name);
|
||||
|
||||
// TODO: implement specific AI profiles for quest mode.
|
||||
String lastProfileChosen = FModel.getPreferences().getPref(FPref.UI_CURRENT_AI_PROFILE);
|
||||
player.setRotateProfileEachGame(lastProfileChosen.equals(AiProfileUtil.AI_PROFILE_RANDOM_DUEL));
|
||||
if(lastProfileChosen.equals(AiProfileUtil.AI_PROFILE_RANDOM_MATCH)) {
|
||||
lastProfileChosen = AiProfileUtil.getRandomProfile();
|
||||
System.out.println(String.format("AI profile %s was chosen for the lobby player %s.", lastProfileChosen, player.getName()));
|
||||
}
|
||||
player.setAiProfile(lastProfileChosen);
|
||||
player.setAvatarIndex(avatarIndex);
|
||||
return player;
|
||||
}
|
||||
|
||||
public final static LobbyPlayer getGuiPlayer() {
|
||||
return GuiBase.getInterface().getGuiPlayer();
|
||||
return GamePlayerUtil.getGuiPlayer();
|
||||
}
|
||||
|
||||
public static FImage getPlayerAvatar(final PlayerView p) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package forge.screens.match.views;
|
||||
|
||||
import forge.GuiBase;
|
||||
import forge.LobbyPlayer;
|
||||
import forge.assets.FSkinImage;
|
||||
import forge.deck.Deck;
|
||||
@@ -10,6 +9,7 @@ import forge.game.player.Player;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.menu.FDropDownMenu;
|
||||
import forge.menu.FMenuItem;
|
||||
import forge.player.GamePlayerUtil;
|
||||
import forge.screens.match.FControl;
|
||||
import forge.screens.settings.SettingsScreen;
|
||||
import forge.toolbox.FEvent;
|
||||
@@ -48,7 +48,7 @@ public class VGameMenu extends FDropDownMenu {
|
||||
addItem(new FMenuItem("Deck List", FSkinImage.DECKLIST, new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
final LobbyPlayer guiPlayer = GuiBase.getInterface().getGuiPlayer();
|
||||
final LobbyPlayer guiPlayer = GamePlayerUtil.getGuiPlayer();
|
||||
final Deck deck = FControl.getGameView().getDeck(guiPlayer);
|
||||
if (deck != null) {
|
||||
FDeckViewer.show(deck);
|
||||
|
||||
@@ -6,12 +6,12 @@ import java.util.List;
|
||||
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
|
||||
|
||||
import forge.Graphics;
|
||||
import forge.GuiBase;
|
||||
import forge.assets.FSkinColor;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.assets.FSkinImage;
|
||||
import forge.assets.FSkinColor.Colors;
|
||||
import forge.card.MagicColor;
|
||||
import forge.player.GamePlayerUtil;
|
||||
import forge.screens.match.FControl;
|
||||
import forge.toolbox.FDisplayObject;
|
||||
import forge.view.PlayerView;
|
||||
@@ -81,7 +81,7 @@ public class VManaPool extends VDisplayArea {
|
||||
|
||||
@Override
|
||||
public boolean tap(float x, float y, int count) {
|
||||
if (player.getLobbyPlayer() == GuiBase.getInterface().getGuiPlayer()) {
|
||||
if (player.getLobbyPlayer() == GamePlayerUtil.getGuiPlayer()) {
|
||||
FControl.getGameView().useMana(colorCode);
|
||||
}
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user