Closed #168 : Enhance priority hot keys

This commit is contained in:
magenoxx 2013-03-29 17:18:12 +04:00
parent a1e16942cd
commit 05191e8793
20 changed files with 475 additions and 151 deletions

View file

@ -28,10 +28,6 @@
package mage.server;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
import mage.MageException;
import mage.cards.decks.DeckCardLists;
import mage.game.GameException;
@ -57,6 +53,11 @@ import mage.view.*;
import mage.view.ChatMessage.MessageColor;
import org.apache.log4j.Logger;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
//import mage.interfaces.Server;
@ -569,6 +570,40 @@ public class MageServerImpl implements MageServer {
});
}
@Override
public void passPriorityUntilNextYourTurn(final UUID gameId, final String sessionId) throws MageException {
execute("passPriorityUntilNextYourTurn", sessionId, new Action() {
@Override
public void execute() {
UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId();
GameManager.getInstance().passPriorityUntilNextYourTurn(gameId, userId);
}
});
}
@Override
public void passTurnPriority(final UUID gameId, final String sessionId) throws MageException {
execute("passTurnPriority", sessionId, new Action() {
@Override
public void execute() {
UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId();
GameManager.getInstance().passTurnPriority(gameId, userId);
}
});
}
@Override
public void restorePriority(final UUID gameId, final String sessionId) throws MageException {
execute("restorePriority", sessionId, new Action() {
@Override
public void execute() {
UUID userId = SessionManager.getInstance().getSession(sessionId).getUserId();
GameManager.getInstance().restorePriority(gameId, userId);
}
});
}
@Override
public boolean watchTable(final String sessionId, final UUID roomId, final UUID tableId) throws MageException {
return executeWithResult("setUserData", sessionId, new ActionWithBooleanResult() {

View file

@ -28,13 +28,6 @@
package mage.server.game;
import java.io.*;
import java.util.*;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.zip.GZIPOutputStream;
import mage.Constants.Zone;
import mage.MageException;
import mage.abilities.Ability;
@ -62,6 +55,14 @@ import mage.view.GameView;
import mage.view.PermanentView;
import org.apache.log4j.Logger;
import java.io.*;
import java.util.*;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.zip.GZIPOutputStream;
/**
*
@ -254,6 +255,18 @@ public class GameController implements GameCallback {
game.concede(getPlayerId(userId));
}
public void passPriorityUntilNextYourTurn(UUID userId) {
game.passPriorityUntilNextYourTurn(getPlayerId(userId));
}
public void passTurnPriority(UUID userId) {
game.passTurnPriority(getPlayerId(userId));
}
public void restorePriority(UUID userId) {
game.restorePriority(getPlayerId(userId));
}
private void leave(UUID userId) {
game.quit(getPlayerId(userId));
}

View file

@ -28,12 +28,13 @@
package mage.server.game;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import mage.cards.decks.DeckCardLists;
import mage.game.Game;
import mage.view.GameView;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
/**
*
* @author BetaSteward_at_googlemail.com
@ -95,6 +96,21 @@ public class GameManager {
gameControllers.get(gameId).concede(userId);
}
public void passPriorityUntilNextYourTurn(UUID gameId, UUID userId) {
if (gameControllers.containsKey(gameId))
gameControllers.get(gameId).passPriorityUntilNextYourTurn(userId);
}
public void passTurnPriority(UUID gameId, UUID userId) {
if (gameControllers.containsKey(gameId))
gameControllers.get(gameId).passTurnPriority(userId);
}
public void restorePriority(UUID gameId, UUID userId) {
if (gameControllers.containsKey(gameId))
gameControllers.get(gameId).restorePriority(userId);
}
public void watchGame(UUID gameId, UUID userId) {
if (gameControllers.containsKey(gameId))
gameControllers.get(gameId).watch(userId);