//creating rewuest for changing joker card back (as it is now not a joker) private ChangeJokerBackRequest GenerateJokerChangeBackRequest(PlayingCard jokerCardToRetrieve) { ChangeJokerBackRequest request = new ChangeJokerBackRequest() { PlayerID = MainWindow.PlayerID, PlayerNumber = MainWindow.PlayerNumber, CardToRetrieveJoker = jokerCardToRetrieve, }; return(request); }
private void ChangeCardBackToJoker(ChangeJokerBackRequest request, MainUser control, SynchronizationContext synchCont) { try { IMakaoGameHostService proxy = factory.CreateChannel(); ChangeJokerCardResponse response = proxy.ChangeCardIntoJokerBack(request); if (response.PlayerID == MainWindow.PlayerID) { synchCont.Post(_ => AssignMainControCards(control, response.CurrentPlayerCards), null); } } catch (Exception ex) { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Error($"Error while changing joker back: {ex.Message}."); } }
//request from host to change card what used to be joker, to joker back ChangeJokerCardResponse IMakaoGameHostService.ChangeCardIntoJokerBack(ChangeJokerBackRequest request) { var logger = NLog.LogManager.GetCurrentClassLogger(); logger.Info($"Engine host received request to change joker back from player {request.PlayerNumber}."); bool done = false; PlayerData data = DataPlaceholders.MakaoEngineHostDataPlaceholders.PlayersData.Single(x => x.PlayerNumber == request.PlayerNumber); if (data.PlayerID == request.PlayerID) { try { done = DataPlaceholders.GameStateHolder.EngineInstance.ChangeCardsIntoJockersBack(request.PlayerNumber, request.CardToRetrieveJoker); } catch (Exception ex) { logger.Error($"Error while changing joker into another card: {ex.Message}."); } } return(GenerateJokerChangingResponse(data, done)); }
public void ChangeJokerBackFromAnotherCard(ChangeJokerBackRequest request, MainUser control, SynchronizationContext synchCont) { Task.Run(() => ChangeCardBackToJoker(request, control, synchCont)); }