コード例 #1
0
ファイル: CSubmenuWinston.java プロジェクト: diab0l/mtg-forge
  private void startGame(final GameType gameType) {
    final DeckProxy humanDeck = VSubmenuWinston.SINGLETON_INSTANCE.getLstDecks().getSelectedItem();
    final int aiIndex = 0;

    if (humanDeck == null) {
      FOptionPane.showErrorDialog(
          "No deck selected for human.\n(You may need to build a new deck)", "No Deck");
      return;
    }

    if (FModel.getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) {
      final String errorMessage =
          gameType.getDeckFormat().getDeckConformanceProblem(humanDeck.getDeck());
      if (null != errorMessage) {
        FOptionPane.showErrorDialog(
            "Your deck " + errorMessage + " Please edit or choose a different deck.",
            "Invalid Deck");
        return;
      }
    }

    SwingUtilities.invokeLater(
        new Runnable() {
          @Override
          public void run() {
            SOverlayUtils.startGameOverlay();
            SOverlayUtils.showOverlay();
          }
        });

    final DeckGroup opponentDecks = FModel.getDecks().getWinston().get(humanDeck.getName());
    final Deck aiDeck = opponentDecks.getAiDecks().get(aiIndex);
    if (aiDeck == null) {
      throw new IllegalStateException("Draft: Computer deck is null!");
    }

    final List<RegisteredPlayer> starter = new ArrayList<RegisteredPlayer>();
    final RegisteredPlayer human =
        new RegisteredPlayer(humanDeck.getDeck()).setPlayer(GamePlayerUtil.getGuiPlayer());
    starter.add(human);
    starter.add(new RegisteredPlayer(aiDeck).setPlayer(GamePlayerUtil.createAiPlayer()));

    final HostedMatch hostedMatch = GuiBase.getInterface().hostMatch();
    hostedMatch.startMatch(
        GameType.Winston, null, starter, human, GuiBase.getInterface().getNewGuiGame());

    SwingUtilities.invokeLater(
        new Runnable() {
          @Override
          public void run() {
            SOverlayUtils.hideOverlay();
          }
        });
  }
コード例 #2
0
ファイル: GamePlayerUtil.java プロジェクト: DeretsunGit/forge
 public static RegisteredPlayer getGuiRegisteredPlayer(Game game) {
   LobbyPlayer guiPlayer = GuiBase.getInterface().getGuiPlayer();
   for (RegisteredPlayer player : game.getMatch().getPlayers()) {
     if (player.getPlayer() == guiPlayer) {
       return player;
     }
   }
   return null;
 }
コード例 #3
0
  VSubmenuQuestDraft() {

    SkinImage avatar = FSkin.getAvatars().get(GuiBase.getInterface().getAvatarCount() - 1);

    matchups[0] =
        new PnlMatchup(
            PnlMatchup.LineDirection.DOWN, PnlMatchup.LineSide.RIGHT, PnlMatchup.BoxSize.SMALL);
    matchups[0].setPlayerOne("Undetermined", avatar);
    matchups[0].setPlayerTwo("Undetermined", avatar);

    matchups[1] =
        new PnlMatchup(
            PnlMatchup.LineDirection.UP, PnlMatchup.LineSide.RIGHT, PnlMatchup.BoxSize.SMALL);
    matchups[1].setPlayerOne("Undetermined", avatar);
    matchups[1].setPlayerTwo("Undetermined", avatar);

    matchups[2] =
        new PnlMatchup(
            PnlMatchup.LineDirection.DOWN, PnlMatchup.LineSide.RIGHT, PnlMatchup.BoxSize.SMALL);
    matchups[2].setPlayerOne("Undetermined", avatar);
    matchups[2].setPlayerTwo("Undetermined", avatar);

    matchups[3] =
        new PnlMatchup(
            PnlMatchup.LineDirection.UP, PnlMatchup.LineSide.RIGHT, PnlMatchup.BoxSize.SMALL);
    matchups[3].setPlayerOne("Undetermined", avatar);
    matchups[3].setPlayerTwo("Undetermined", avatar);

    matchups[4] =
        new PnlMatchup(
            PnlMatchup.LineDirection.DOWN, PnlMatchup.LineSide.BOTH, PnlMatchup.BoxSize.MEDIUM);
    matchups[4].setPlayerOne("Undetermined", avatar);
    matchups[4].setPlayerTwo("Undetermined", avatar);

    matchups[5] =
        new PnlMatchup(
            PnlMatchup.LineDirection.UP, PnlMatchup.LineSide.BOTH, PnlMatchup.BoxSize.MEDIUM);
    matchups[5].setPlayerOne("Undetermined", avatar);
    matchups[5].setPlayerTwo("Undetermined", avatar);

    matchups[6] =
        new PnlMatchup(
            PnlMatchup.LineDirection.STRAIGHT, PnlMatchup.LineSide.BOTH, PnlMatchup.BoxSize.LARGE);
    matchups[6].setPlayerOne("Undetermined", avatar);
    matchups[6].setPlayerTwo("Undetermined", avatar);

    matchups[7] =
        new PnlMatchup(
            PnlMatchup.LineDirection.STRAIGHT,
            PnlMatchup.LineSide.LEFT,
            PnlMatchup.BoxSize.LARGE_SINGLE,
            true);
    matchups[7].setPlayerOne("Undetermined", avatar);
    matchups[7].setPlayerTwo("Undetermined", avatar);

    pnlDeckImage = new ProportionalPanel(FSkin.getImage(FSkinProp.IMG_QUEST_DRAFT_DECK), 680, 475);

    final String constraints = "h 30px!, gap 0 0 0 10px";
    pnlStats.setLayout(new MigLayout("insets 0, gap 0, wrap, hidemode 0"));
    pnlStats.add(lblPastResults, "h 30px!, gap 0 0 0 25px");
    pnlStats.add(lblFirst, constraints);
    pnlStats.add(lblSecond, constraints);
    pnlStats.add(lblThird, constraints);
    pnlStats.add(lblFourth, constraints);
    pnlStats.add(lblTokens, "h 30px!, gap 0 0 50px 10px, ax center");
    pnlStats.add(btnSpendToken, "w 150px!, h 40px!, ax center");
    pnlStats.setOpaque(false);

    btnSpendToken.setToolTipText("Creates a new tournament that can be played immediately.");
  }