//Adding host player as new player (without info of avatar) AddNewPlayerResponse IMakaoGameHostService.CreateNewRoomAndHostPlayer(AddNewPlayerRequest request) { InfoSenderClass Sender = new InfoSenderClass(); Sender.DeleteTheRoom(ClientInfoType.ClosedByHost); return(AddPlayerToTheRoom(request, true)); }
//request from client bool IMakaoGameHostService.DeletePlayerFromRoom(LeaveTheRoomRequest request) { (bool playerDeleted, bool playerWasHost) = MakaoEngineHostDataPlaceholders.DeletePlayerFromRoom(request); if (request.ClosedWindowType == LeavingTheRoomWindowType.MainWindow) { if (playerDeleted && playerWasHost) { InfoSenderClass Sender = new InfoSenderClass(); Sender.DeleteTheRoom(ClientInfoType.ClosedByHost); } else if (playerDeleted) { InfoSenderClass Sender = new InfoSenderClass(); Sender.StartSendingInfoABoutChangeInCurrentPlayerList(); } } else { InfoSenderClass Sender = new InfoSenderClass(); Sender.DeleteTheRoom(ClientInfoType.PlayerLeftGame); } return(playerDeleted); }
//save image of player 0 - ony an avatar (to WS) bool IMakaoGameHostService.UploadAvatarImagePlayer(MemoryStream input) { try { //deserialize request SaveAvatarRequest request = (SaveAvatarRequest)AvatarSerializerDeserializer.DeserializeFromStream(input); request.AvatarStream.Position = 0; //check if player exists if (CheckIfPlayerExists(request.PlayerNumber)) { //save image in temporary storage place Image img = System.Drawing.Image.FromStream(request.AvatarStream); img.Save(MakaoEngineHostDataPlaceholders.AvatarsLocation + GetProperAvatarName(request.PlayerNumber), ImageFormat.Png); InfoSenderClass Sender = new InfoSenderClass(); Sender.StartSendingInfoABoutChangeInCurrentPlayerList(); return(true); } else { return(false); } } catch (Exception ex) { //log if it turned to be impossible var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Error("Saving image in the Makao Game Host faulted: " + ex.Message); return(false); } }
//with this method player sends info about the fact, that he is ready to play bool IMakaoGameHostService.ChangePlayerReadinessToPlay(PlayerIsReadyToPlayGameRequest request) { //try to assign the readiness status bool assigned = MakaoEngineHostDataPlaceholders.ChangeReadinessToPlay(request); if (assigned) { //after changing readiness to play of specific player, send info to clients //about changes in current players list InfoSenderClass Sender = new InfoSenderClass(); Sender.SendInfoToClientsAboutChangeOfReadiness(ObtainPlayersReadinessData()); //and check if all players confirmed readiness to play if yes, start //procedure of starting the game Task.Run(() => MakaoEngineHostDataPlaceholders.FireUpStartingNewGameAlgorithm(synchCont)); } return(assigned); }