private async Task YourDefensePile_BoardClickedAsync()
        {
            if (_gameContainer !.OtherTurn > 0)
            {
                return;
            }
            if (_mainGame !.SingleInfo !.MainHandList.HasSelectedObject() == false)
            {
                return;
            }
            if (_mainGame.SingleInfo.DefenseList.HasSelectedObject() == true)
            {
                await UIPlatform.ShowMessageAsync("Cannot choose any defense cards on the board to add more defense cards");

                return;
            }
            var tempDefenseList = _mainGame.SingleInfo.MainHandList.GetSelectedItems();

            if (await _mainGame.CanPlayDefenseCardsAsync(tempDefenseList) == false)
            {
                return;
            }
            if (_mainGame.BasicData !.MultiPlayer == true)
            {
                await _mainGame.Network !.SendAllAsync("addtodefense", tempDefenseList.GetDeckListFromObjectList());
            }
            tempDefenseList.UnselectAllObjects();
            await _mainGame.AddCardsToDefensePileAsync(tempDefenseList); //hopefully this is correct.
        }
        private async Task MainDefense1_BoardClickedAsync()
        {
            if (_gameContainer !.OtherTurn == 0)
            {
                throw new BasicBlankException("Should not have allowed the click for main defense because not the other turn to defend themselves");
            }
            if (_mainGame !.SingleInfo !.MainHandList.HasSelectedObject() == false && _mainGame.SingleInfo.DefenseList.HasSelectedObject() == false)
            {
                await UIPlatform.ShowMessageAsync("Must choose at least a card from defense or at least a card from hand");

                return;
            }
            if (_mainGame.SingleInfo.MainHandList.HasSelectedObject() && _mainGame.SingleInfo.DefenseList.HasSelectedObject())
            {
                await UIPlatform.ShowMessageAsync("Cannot choose cards from both from hand and from defense piles");

                return;
            }
            bool fromHand;
            DeckRegularDict <RegularSimpleCard> tempDefenseList;

            if (_mainGame.SingleInfo.MainHandList.HasSelectedObject())
            {
                fromHand        = true;
                tempDefenseList = _mainGame.SingleInfo.MainHandList.GetSelectedItems();
            }
            else
            {
                fromHand        = false;
                tempDefenseList = _mainGame.SingleInfo.DefenseList.GetSelectedItems();
                if (tempDefenseList.Any(items => items.Color == EnumColorList.Red))
                {
                    throw new BasicBlankException("No red attack cards should have even been put to defense pile");
                }
            }
            if (await _mainGame.CanPlayDefenseCardsAsync(tempDefenseList) == false)
            {
                return;
            }
            if (_model.MainDefense1 !.CanAddDefenseCards(tempDefenseList) == false)
            {
                await UIPlatform.ShowMessageAsync("This defense is not enough to prevent a goal from the attacker");

                return;
            }
            if (_mainGame.BasicData !.MultiPlayer == true)
            {
                var deckList = tempDefenseList.GetDeckListFromObjectList();
                if (fromHand == true)
                {
                    await _mainGame.Network !.SendAllAsync("defensehand", deckList);
                }
                else
                {
                    await _mainGame.Network !.SendAllAsync("defenseboard", deckList);
                }
            }
            tempDefenseList.UnselectAllObjects();
            await _mainGame.PlayDefenseCardsAsync(tempDefenseList, fromHand);
        }
 private Task YourDefensePile_ObjectClickedAsync(RegularSimpleCard thisObject, int index)
 {
     if (_mainGame !.SingleInfo !.MainHandList.HasSelectedObject() == true)
     {
         return(Task.CompletedTask);
     }
     thisObject.IsSelected = !thisObject.IsSelected;
     return(Task.CompletedTask);
 }