private void processControlledPlayers(Player player, GameView gameView) { if (!player.getPlayersUnderYourControl().isEmpty()) { Map<String, SimpleCardsView> handCards = new HashMap<>(); for (UUID controlledPlayerId : player.getPlayersUnderYourControl()) { Player opponent = game.getPlayer(controlledPlayerId); handCards.put(opponent.getName(), new SimpleCardsView(opponent.getHand().getCards(game), true)); } gameView.setOpponentHands(handCards); } }
for (UUID controlled : player.getPlayersUnderYourControl()) { if (gameSessions.containsKey(controlled) && game.getPriorityPlayerId().equals(controlled)) { cancelTimeout();
@Override public void resetControlAfterSpellResolve(UUID topId) { // for Word of Command Spell spell = getSpellOrLKIStack(topId); if (spell != null) { if (spell.getCommandedBy() != null) { UUID commandedBy = spell.getCommandedBy(); UUID spellControllerId = null; if (commandedBy.equals(spell.getControllerId())) { spellControllerId = spell.getSpellAbility().getFirstTarget(); // i.e. resolved spell is Word of Command } else { spellControllerId = spell.getControllerId(); // i.e. resolved spell is the target opponent's spell } if (spellControllerId != null) { Player turnController = getPlayer(commandedBy); if (turnController != null) { Player targetPlayer = getPlayer(spellControllerId); if (targetPlayer != null) { targetPlayer.setGameUnderYourControl(true, false); informPlayers(turnController.getLogName() + " lost control over " + targetPlayer.getLogName()); if (targetPlayer.getTurnControlledBy().equals(turnController.getId())) { turnController.getPlayersUnderYourControl().remove(targetPlayer.getId()); } } } } spell.setCommandedBy(null); } } }
this.playersUnderYourControl.addAll(player.getPlayersUnderYourControl()); this.isGameUnderControl = player.isGameUnderControl();
this.priorityTimeLeft = player.getPriorityTimeLeft(); this.timerActive = (this.hasPriority && player.isGameUnderControl()) || (player.getPlayersUnderYourControl().contains(state.getPriorityPlayerId())) || player.getId().equals(game.getState().getChoosingPlayerId());
|| createdForPlayer.getPlayersUnderYourControl().contains(priorityPlayer.getId()))) { // player controls active players turn this.special = !state.getSpecialActions().getControlledBy(priorityPlayer.getId(), priorityPlayer.isInPayManaMode()).isEmpty();
targetPlayer.setGameUnderYourControl(true, false); if (!targetPlayer.getTurnControlledBy().equals(controller.getId())) { controller.getPlayersUnderYourControl().remove(targetPlayer.getId());