package web.servlets;
import javax.servlet.http.HttpServletRequest;
import org.scotlandyard.engine.Game;
import org.scotlandyard.engine.GameException;
import org.scotlandyard.engine.Player;
import org.scotlandyard.engine.Token;
import org.scotlandyard.engine.constants.TransportationMethod;
import org.scotlandyard.engine.json.JsonFactory;
import org.scotlandyard.impl.engine.GameEngine;
public class MovePlayer extends AbstractServlet implements IRequestProcessor {
@Override
public Object getOutput(HttpServletRequest request, GameEngine engine)
throws Exception {
final String playerEmail = engine.getUsers().get(getSessionId()).getEmail();
final String gameId=request.getParameter("gameId");
final String positionReg=request.getParameter("positionReq");
final String transportationMethod=request.getParameter("transportationMethod");
final Game game = engine.getLobby().getGame(gameId);
if(game.isPlayable()==false){
throw new GameException("the game is still not playable.");
}
String position = game.getPlayerPosition(playerEmail);
Player player=game.getPlayer(playerEmail);
Token token = player.getTokens(game.getIdentifier())
.get(TransportationMethod.valueOf(transportationMethod));
token.consumeTicket();
player.useTokenToMove(game.getIdentifier(), token, positionReg);
return JsonFactory.toJson(position);
}
@Override
public void validateRequest(HttpServletRequest request, GameEngine engine)
throws Exception {
}
}