Fix: Dealer button display issue
This commit is contained in:
+47
-24
@@ -496,6 +496,24 @@ public class CasinoGameController {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
java.util.List<Player> opponents = buildOpponents(players);
|
||||||
|
boolean meFound = opponents.size() != players.size();
|
||||||
|
|
||||||
|
LOGGER.info("updatePlayers: total=" + players.size()
|
||||||
|
+ " myPlayerId=" + myPlayerId
|
||||||
|
+ " meFound=" + meFound
|
||||||
|
+ " opponents=" + opponents.size());
|
||||||
|
|
||||||
|
setOpponent(player1Controller, opponents, 0);
|
||||||
|
setOpponent(player2Controller, opponents, 1);
|
||||||
|
setOpponent(player3Controller, opponents, 2);
|
||||||
|
|
||||||
|
safeRefresh(player1Controller);
|
||||||
|
safeRefresh(player2Controller);
|
||||||
|
safeRefresh(player3Controller);
|
||||||
|
}
|
||||||
|
|
||||||
|
private java.util.List<Player> buildOpponents(List<Player> players) {
|
||||||
java.util.List<Player> opponents = new java.util.ArrayList<>();
|
java.util.List<Player> opponents = new java.util.ArrayList<>();
|
||||||
boolean meFound = false;
|
boolean meFound = false;
|
||||||
|
|
||||||
@@ -517,18 +535,7 @@ public class CasinoGameController {
|
|||||||
opponents.addAll(players);
|
opponents.addAll(players);
|
||||||
}
|
}
|
||||||
|
|
||||||
LOGGER.info("updatePlayers: total=" + players.size()
|
return opponents;
|
||||||
+ " myPlayerId=" + myPlayerId
|
|
||||||
+ " meFound=" + meFound
|
|
||||||
+ " opponents=" + opponents.size());
|
|
||||||
|
|
||||||
setOpponent(player1Controller, opponents, 0);
|
|
||||||
setOpponent(player2Controller, opponents, 1);
|
|
||||||
setOpponent(player3Controller, opponents, 2);
|
|
||||||
|
|
||||||
safeRefresh(player1Controller);
|
|
||||||
safeRefresh(player2Controller);
|
|
||||||
safeRefresh(player3Controller);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setOpponent(PlayerStatusController slot, java.util.List<Player> list, int index) {
|
private void setOpponent(PlayerStatusController slot, java.util.List<Player> list, int index) {
|
||||||
@@ -556,30 +563,46 @@ public class CasinoGameController {
|
|||||||
* @param s The current game state containing the dealer index.
|
* @param s The current game state containing the dealer index.
|
||||||
*/
|
*/
|
||||||
private void highlightDealer(GameState s) {
|
private void highlightDealer(GameState s) {
|
||||||
|
if (player1Controller != null) player1Controller.setDealer(false);
|
||||||
player1Controller.setDealer(false);
|
if (player2Controller != null) player2Controller.setDealer(false);
|
||||||
player2Controller.setDealer(false);
|
if (player3Controller != null) player3Controller.setDealer(false);
|
||||||
player3Controller.setDealer(false);
|
|
||||||
|
|
||||||
myDealerIcon.setVisible(false);
|
myDealerIcon.setVisible(false);
|
||||||
|
|
||||||
int dealer = s.dealer;
|
if (s == null || s.players == null || s.players.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (s.dealer < 0 || s.dealer >= s.players.size()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (dealer == DEALER_PLAYER_1) {
|
Player dealerPlayer = s.players.get(s.dealer);
|
||||||
|
if (dealerPlayer == null || dealerPlayer.getId() == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (myPlayerId != null && myPlayerId.equals(dealerPlayer.getId())) {
|
||||||
|
myDealerIcon.setVisible(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
java.util.List<Player> opponents = buildOpponents(s.players);
|
||||||
|
if (opponents.size() > 0 && samePlayer(opponents.get(0), dealerPlayer) && player1Controller != null) {
|
||||||
player1Controller.setDealer(true);
|
player1Controller.setDealer(true);
|
||||||
}
|
}
|
||||||
|
if (opponents.size() > 1 && samePlayer(opponents.get(1), dealerPlayer) && player2Controller != null) {
|
||||||
if (dealer == DEALER_PLAYER_2) {
|
|
||||||
player2Controller.setDealer(true);
|
player2Controller.setDealer(true);
|
||||||
}
|
}
|
||||||
|
if (opponents.size() > 2 && samePlayer(opponents.get(2), dealerPlayer) && player3Controller != null) {
|
||||||
if (dealer == DEALER_PLAYER_3) {
|
|
||||||
player3Controller.setDealer(true);
|
player3Controller.setDealer(true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (dealer == DEALER_MYSELF) {
|
private boolean samePlayer(Player a, Player b) {
|
||||||
myDealerIcon.setVisible(true);
|
if (a == null || b == null || a.getId() == null || b.getId() == null) {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
return a.getId().equals(b.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user