ConnectionManager/serverMethods.js

/**
* Методы для общения с сервером
* @namespace serverMethods
*/

/* exported serverMethods */
var serverMethods = {

	sendAction: function(field, card){
		var actions = actionHandler.possibleActions;

		if(!actions){
			return null;
		}

		for(var ai = 0; ai < actions.length; ai++){
			var action = actions[ai];
			if(action.cid == card.id && field.id == action.field){
				ui.rope.stop();
				//actionHandler.reset();
				connection.proxy.recieveCompleteAction(action);
				return action;
			}
		}
		return null;
	},

	sendButtonAction: function(type){

		var actions = actionHandler.possibleActions;

		if(!actions || !actions.length){
			return;
		}

		var actionTypes = actions.map(function(a){return a.type;});
		if(~actionTypes.indexOf(type)){
			var action = {type: type};
			actionHandler.reset();
			connection.proxy.recieveCompleteAction(action);
		}
	},

	sendResponse: function(){
		if(connection.serverWaiting){
			connection.serverWaiting = false;
			connection.proxy.recieveResponse();
		}
	},
	
	reconnect: function(){
		connection.proxy.requestGameInfo();
	},

	concede: function(){
		connection.proxy.concedeClient();
	},

	restoreClientName: function(){
		var oldName = gameOptions.get('profile_name');
		if(oldName){
			connection.proxy.changeClientName(oldName);
		}
		else{
			ui.cornerButtons.getByName('name').show();
			ui.modalManager.openModal('name');
		}
	},

	tryJoiningLinkedQueue: function(){
		var qid = location.hash.substring(1);
		if(qid.length > 0 && game.state.currentSync != 'queue' && game.state.currentSync != 'play'){
			connection.proxy.joinCustomQueue(qid);
		}
	}
};