forked from External/mage
* GUI: added popup menu to view player's outside/sideboard at any time (allows to view only own or computer's sideboards);
This commit is contained in:
parent
eda50cc7b1
commit
28473c7bd0
12 changed files with 265 additions and 165 deletions
|
|
@ -598,6 +598,12 @@ public class GameController implements GameCallback {
|
|||
case VIEW_LIMITED_DECK:
|
||||
viewLimitedDeck(getPlayerId(userId), userId);
|
||||
break;
|
||||
case VIEW_SIDEBOARD:
|
||||
if (data instanceof UUID) {
|
||||
UUID targetPlayerId = (UUID) data;
|
||||
viewSideboard(getPlayerId(userId), userId, targetPlayerId);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
game.sendPlayerAction(playerAction, getPlayerId(userId), data);
|
||||
}
|
||||
|
|
@ -656,13 +662,13 @@ public class GameController implements GameCallback {
|
|||
}
|
||||
}
|
||||
|
||||
private void viewLimitedDeck(UUID userIdRequester, UUID origId) {
|
||||
Player viewLimitedDeckPlayer = game.getPlayer(userIdRequester);
|
||||
private void viewLimitedDeck(UUID playerId, UUID userId) {
|
||||
Player viewLimitedDeckPlayer = game.getPlayer(playerId);
|
||||
if (viewLimitedDeckPlayer != null) {
|
||||
if (viewLimitedDeckPlayer.isHuman()) {
|
||||
for (MatchPlayer p : managerFactory.tableManager().getTable(tableId).getMatch().getPlayers()) {
|
||||
if (p.getPlayer().getId().equals(userIdRequester)) {
|
||||
Optional<User> u = managerFactory.userManager().getUser(origId);
|
||||
if (p.getPlayer().getId().equals(playerId)) {
|
||||
Optional<User> u = managerFactory.userManager().getUser(userId);
|
||||
if (u.isPresent() && p.getDeck() != null) {
|
||||
u.get().ccViewLimitedDeck(p.getDeck(), tableId, requestsOpen, true);
|
||||
}
|
||||
|
|
@ -672,6 +678,18 @@ public class GameController implements GameCallback {
|
|||
}
|
||||
}
|
||||
|
||||
private void viewSideboard(UUID playerId, UUID userId, UUID targetPlayerId) {
|
||||
Player needPlayer = game.getPlayer(playerId);
|
||||
if (needPlayer != null && needPlayer.isHuman()) {
|
||||
for (MatchPlayer p : managerFactory.tableManager().getTable(tableId).getMatch().getPlayers()) {
|
||||
if (p.getPlayer().getId().equals(playerId)) {
|
||||
Optional<User> u = managerFactory.userManager().getUser(userId);
|
||||
u.ifPresent(user -> user.ccViewSideboard(tableId, game.getId(), targetPlayerId));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void cheat(UUID userId, UUID playerId, DeckCardLists deckList) {
|
||||
try {
|
||||
Deck deck = Deck.load(deckList, false, false);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue