internal bool useRentCard(int RentCard, Guid selectedSet, bool usingDoubleTheRent, int doubleTheRentCard, bool isWildRentCard, Guid targetedPlayer)
 {
     getServiceReady();
     try
     {
         MonopolyDealServiceReference.BoolResponseBox response;
         if (isWildRentCard)
         {
             response = monopolyDealService.playWildRentActionCardOnTurnMD(RentCard, targetedPlayer.boxGuid(), selectedSet.boxGuid(), usingDoubleTheRent, doubleTheRentCard,
                 thisClientGuid.boxGuid(), gameOnServiceGuid.boxGuid(), CurrentPlayFieldModel.thisPlayFieldModelInstanceGuid.boxGuid());
         }
         else
         {
             response = monopolyDealService.playStandardRentActionCardOnTurnMD(RentCard, selectedSet.boxGuid(), usingDoubleTheRent, doubleTheRentCard,
                 thisClientGuid.boxGuid(), gameOnServiceGuid.boxGuid(), CurrentPlayFieldModel.thisPlayFieldModelInstanceGuid.boxGuid());
         }
         addToLog(response.message);
         return response.success;
     }
     catch (Exception ex)
     {
         addToLog(ex.ToString());
         monopolyDealService.Close();
     }
     return false;
 }
 internal bool slyDeal(MonopolyDealServiceReference.ActionCard Card, Guid targetedPlayer, MonopolyDealServiceReference.PropertyCardSet targetedSet, MonopolyDealServiceReference.Card targetedCard)
 {
     getServiceReady();
     try
     {
         MonopolyDealServiceReference.BoolResponseBox response;
         response = monopolyDealService.playActionCardSlyDealMD(Card.cardID, targetedPlayer.boxGuid(), targetedCard.cardID, targetedSet.guid.boxGuid(),
                thisClientGuid.boxGuid(), gameOnServiceGuid.boxGuid(), CurrentPlayFieldModel.thisPlayFieldModelInstanceGuid.boxGuid());
         addToLog(response.message);
         return response.success;
     }
     catch (Exception ex)
     {
         addToLog(ex.ToString());
         monopolyDealService.Close();
     }
     return false;
 }
 internal bool debtCollector(int cardBeingUsedId, Guid targetPlayerGuid)
 {
     getServiceReady();
     try
     {
         return monopolyDealService.playActionCardDebtCollectorMD(cardBeingUsedId, targetPlayerGuid.boxGuid(), thisClientGuid.boxGuid(), gameOnServiceGuid.boxGuid(), CurrentPlayFieldModel.thisPlayFieldModelInstanceGuid.boxGuid());
     }
     catch (Exception ex)
     {
         addToLog(ex.ToString());
         monopolyDealService.Close();
     }
     return false;
 }
        internal bool moveProperty(int pickedPropertyToMove, Guid oldPropertySet, Guid newPropertySet, bool isCardUp, bool playToExistingSet)
        {
            getServiceReady();
            try
            {
                MonopolyDealServiceReference.BoolResponseBox response = monopolyDealService.movePropertyCardMD(
                    pickedPropertyToMove, isCardUp, playToExistingSet, oldPropertySet.boxGuid(), newPropertySet.boxGuid(),
                    thisClientGuid.boxGuid(), gameOnServiceGuid.boxGuid(), CurrentPlayFieldModel.thisPlayFieldModelInstanceGuid.boxGuid());

                addToLog(response.message);
                return response.success;
            }
            catch (Exception ex)
            {
                addToLog(ex.ToString());
                monopolyDealService.Close();
            }
            return false;
        }
 internal void connectToExistingLobby(Guid guid)
 {
     try
     {
         getServiceReady();
         if (guid.CompareTo(new Guid()) != 0)
         {
             bool success = monopolyDealService.joinExistingGameLobby(guid.boxGuid(), thisClientGuid.boxGuid());
             if (success)
             {
                 gameLobbyGuid = guid;
                 gameOnServiceGuid = guid;
                 addToLog("Connected to game. Guid:" + gameLobbyGuid.ToString());
             }
             else
             {
                 addToLog("Failed to connect to game.");
             }
         }
     }
     catch (Exception ex)
     {
         addToLog(ex.Message);
     }
 }