public Models.Response messageProcessor(Models.Message message, Socket socket) { if (message.Type == "ClientMessage") { Models.ClientMessage cm = message.Value.ToObject <Models.ClientMessage>(); return(clientCommandProcessor(cm, socket)); } else if (message.Type == "GameMessage") { Models.GameMessage gm = message.Value.ToObject <Models.GameMessage>(); return(gameCommandProcessor(gm, socket)); } return(null); }
private Models.Response gameCommandProcessor(Models.GameMessage message, Socket sender) { Models.Response response; switch (message.Command) { case "PLAYASMANA": response = ctrlOnGoingGame.processPlayAsMana(message, sender); break; case "SETPHASE": response = ctrlOnGoingGame.processSetPhase(message, sender); break; case "ENDTURN": response = ctrlOnGoingGame.processEndTurn(message, sender); break; case "STARTTURN": response = ctrlOnGoingGame.processStartTurn(message, sender); break; case "DRAWCARD": response = ctrlOnGoingGame.processDrawCard(message, sender); break; case "SUMMON": response = ctrlOnGoingGame.processSummon(message, sender); break; case "ATTACKSAFEGUARDS": response = ctrlOnGoingGame.processAttackSafeguards(message, sender); break; case "BROKENSAFEGUARDS": response = ctrlOnGoingGame.processBrokenSafeguards(message, sender); break; case "YOUBROKEGUARD": response = ctrlOnGoingGame.processYouBrokeGuard(message, sender); break; case "ATTACKCREATURE": response = ctrlOnGoingGame.processAttackCreature(message, sender); break; case "BATTLE": response = ctrlOnGoingGame.processDoBattle(message, sender); break; case "SENDTO": response = ctrlOnGoingGame.processSendTo(message, sender); break; case "ATTACKOPPONENT": response = ctrlOnGoingGame.processAttackOpponent(message, sender); break; case "ISURRENDER": response = ctrlOnGoingGame.processISurrender(message, sender); break; case "DECKTOMANA": response = ctrlOnGoingGame.processDeckToMana(message, sender); break; case "INGAMECHATMESSAGE": response = ctrlOnGoingGame.processInGameChatMessage(message, sender); break; default: response = null; break; } if (response != null) { response.Type = 2; } return(response); }
// ACTIONS TAKEN AFTER RECEIVING DATA FROM CLIENTS // private static void processResponseMessage(Models.Response response) { try { if (response != null) { if (response.Type == 1) { Models.ClientMessage cm; if (response.responseCommandToSender != null) { cm = new Models.ClientMessage( response.responseCommandToSender, response.commandStringArgumentsToSender, response.commandIntArgumentsToSender, response.CardCollection ); send(Models.Message.Serialize(Models.Message.FromValue(cm)), response.sender); } if (response.responseCommandToSockets != null) { cm = new Models.ClientMessage( response.responseCommandToSockets, response.commandIntArgumentsToSockets, response.commandStringArgumentsToSockets ); foreach (Socket s in response.socketsToNotify) { send(Models.Message.Serialize(Models.Message.FromValue(cm)), s); } } } else { Models.GameMessage gm; if (response.responseCommandToSender != null) { gm = new Models.GameMessage( response.responseCommandToSender, response.commandStringArgumentsToSender, response.commandIntArgumentsToSender); send(Models.Message.Serialize(Models.Message.FromValue(gm)), response.sender); } if (response.responseCommandToSockets != null) { gm = new Models.GameMessage( response.responseCommandToSockets, response.commandStringArgumentsToSockets, response.commandIntArgumentsToSockets ); foreach (Socket s in response.socketsToNotify) { send(Models.Message.Serialize(Models.Message.FromValue(gm)), s); } } } } } catch (Exception e) { logger.Log(e.ToString()); } }