Ejemplo n.º 1
0
 public void toggleIsPlayerArchenemy() {
   if (screen.hasVariant(GameType.Archenemy)) {
     setIsArchenemy(screen.lastArchenemy == index);
   } else {
     setIsArchenemy(screen.hasVariant(GameType.ArchenemyRumble));
   }
   screen.updateLayoutForVariants();
 }
Ejemplo n.º 2
0
 private void createAvatar() {
   String[] currentPrefs = prefs.getPref(FPref.UI_AVATARS).split(",");
   if (index < currentPrefs.length) {
     setAvatarIndex(Integer.parseInt(currentPrefs[index]));
   } else {
     setAvatarIndex(AvatarSelector.getRandomAvatar(screen.getUsedAvatars()));
   }
   avatarLabel.setCommand(avatarCommand);
 }
Ejemplo n.º 3
0
        @Override
        public void handleEvent(FEvent e) {
          boolean toggled = humanAiSwitch.isToggled();
          if (allowNetworking) {
            setIsReady(toggled);
            screen.setReady(index, toggled);
          } else {
            type = toggled ? LobbySlotType.AI : LobbySlotType.LOCAL;
            onIsAiChanged(toggled);

            LobbySlot slot = screen.getLobby().getSlot(index);
            slot.setType(type);

            // update may edit in-case it changed as a result of the AI change
            setMayEdit(screen.getLobby().mayEdit(index));
            setAvatarIndex(slot.getAvatarIndex());
            setPlayerName(slot.getName());
          }
        }
Ejemplo n.º 4
0
 @Override
 public void handleEvent(FEvent e) {
   @SuppressWarnings("unchecked")
   FComboBox<Object> cb = (FComboBox<Object>) e.getSource();
   if (cb.getSelectedIndex() == -1) {
     return;
   }
   if (screen.hasVariant(GameType.Archenemy)) {
     String sel = (String) cb.getSelectedItem();
     if (sel.contains("Archenemy")) {
       screen.lastArchenemy = index;
       for (PlayerPanel pp : screen.getPlayerPanels()) {
         int i = pp.index;
         int team = i == screen.lastArchenemy ? 0 : 1;
         pp.setArchenemyTeam(team);
         pp.toggleIsPlayerArchenemy();
       }
     }
   }
 }
Ejemplo n.º 5
0
  public void updateVariantControlsVisibility() {
    boolean isCommanderApplied = false;
    boolean isTinyLeadersApplied = false;
    boolean isPlanechaseApplied = false;
    boolean isVanguardApplied = false;
    boolean isArchenemyApplied = false;
    boolean archenemyVisiblity = false;
    boolean isDeckBuildingAllowed = mayEdit;

    for (GameType variant : screen.getLobby().getAppliedVariants()) {
      switch (variant) {
        case Archenemy:
          isArchenemyApplied = true;
          if (isArchenemy()) {
            archenemyVisiblity = true;
          }
          break;
        case ArchenemyRumble:
          archenemyVisiblity = true;
          break;
        case Commander:
          isCommanderApplied = true;
          isDeckBuildingAllowed = false; // Commander deck replaces basic deck, so hide that
          break;
        case TinyLeaders:
          isTinyLeadersApplied = true;
          isDeckBuildingAllowed = false; // Tiny Leaders deck replaces basic deck, so hide that
          break;
        case Planechase:
          isPlanechaseApplied = true;
          break;
        case Vanguard:
          isVanguardApplied = true;
          break;
        default:
          if (variant.isAutoGenerated()) {
            isDeckBuildingAllowed = false;
          }
          break;
      }
    }

    btnDeck.setVisible(isDeckBuildingAllowed);
    btnCommanderDeck.setVisible(isCommanderApplied && mayEdit);
    btnTinyLeadersDeck.setVisible(isTinyLeadersApplied && mayEdit);

    btnSchemeDeck.setVisible(archenemyVisiblity && mayEdit);

    cbTeam.setVisible(!isArchenemyApplied);
    cbArchenemyTeam.setVisible(isArchenemyApplied);

    btnPlanarDeck.setVisible(isPlanechaseApplied && mayEdit);
    btnVanguardAvatar.setVisible(isVanguardApplied && mayEdit);
  }
Ejemplo n.º 6
0
  private void createNameEditor() {
    String name;
    if (index == 0) {
      name = FModel.getPreferences().getPref(FPref.PLAYER_NAME);
      if (name.isEmpty()) {
        name = "Human";
      }
    } else {
      name = NameGenerator.getRandomName("Any", "Any", screen.getPlayerNames());
    }

    txtPlayerName.setText(name);
    txtPlayerName.setFont(LABEL_FONT);
    txtPlayerName.setChangedHandler(nameChangedHandler);
  }
Ejemplo n.º 7
0
  public void setMayEdit(boolean mayEdit0) {
    if (mayEdit == mayEdit0) {
      return;
    }
    mayEdit = mayEdit0;
    avatarLabel.setEnabled(mayEdit);
    txtPlayerName.setEnabled(mayEdit);
    nameRandomiser.setEnabled(mayEdit);
    humanAiSwitch.setEnabled(mayEdit);
    updateVariantControlsVisibility();

    // if panel has height already, ensure height updated to account for button visibility changes
    if (getHeight() > 0) {
      screen.getPlayersScroll().revalidate();
    }
  }
Ejemplo n.º 8
0
 @Override
 public void handleEvent(FEvent e) {
   final Object source = e.getSource();
   if (source instanceof FTextField) { // the text box
     FTextField nField = (FTextField) source;
     String newName = nField.getText().trim();
     if (index == 0
         && !StringUtils.isBlank(newName)
         && StringUtils.isAlphanumericSpace(newName)
         && prefs.getPref(FPref.PLAYER_NAME) != newName) {
       prefs.setPref(FPref.PLAYER_NAME, newName);
       prefs.save();
       if (allowNetworking) {
         screen.firePlayerChangeListener(index);
       }
     }
   }
 }
Ejemplo n.º 9
0
        @Override
        public void handleEvent(FEvent e) {
          AvatarSelector.show(
              getPlayerName(),
              avatarIndex,
              screen.getUsedAvatars(),
              new Callback<Integer>() {
                @Override
                public void run(Integer result) {
                  setAvatarIndex(result);

                  if (index < 2) {
                    screen.updateAvatarPrefs();
                  }
                  if (allowNetworking) {
                    screen.firePlayerChangeListener(index);
                  }
                }
              });
        }