Пример #1
0
        private void Start()
        {
            rectTransform   = GetComponent <RectTransform>();
            handCardManager = GameObject.Find("Manager").GetComponent <HandCardManager>();
            handCardManager.HandCardEnabled
            .DistinctUntilChanged()
            .Where(_ => !isNextCard)
            .Subscribe(x =>
            {
                _canUse.Value = x;
            })
            .AddTo(this);

            //cardUseProvider = GameObject.Find("Manager").GetComponent<CardUseProvider>();
            //cardUseProvider.OnCardTaken
            handCardManager.OnRearrangeCard
            .Where(x => x.handCardIndex < handCardIndex)
            .Subscribe(takeInfo =>
            {
                RearrangeHandCardAsync(takeInfo, this.GetCancellationTokenOnDestroy()).Forget();
            })
            .AddTo(this);

            handCardManager.OnRearrangeCard
            .Where(_ => !isNextCard && _canUse.Value)
            .Subscribe(takeInfo =>
            {
                if ((int)takeInfo.cardInfo.cardType > (int)this.cardInfo.cardType)
                {
                    _canUse.Value = false;
                }
            })
            .AddTo(this);
        }
        }//手牌控件初始化

        private void ConfirmHandCardButton_Click(object sender, RoutedEventArgs e)
        {
            #region ChangeVisibility
            OriginHandCardGridView.Visibility = Visibility.Collapsed;
            ConfirmHandCardButton.Visibility  = Visibility.Collapsed;
            HandCardGridView.Visibility       = Visibility.Visible;
            CostTextBlock.Visibility          = Visibility.Visible;
            MaxCostTextBlock.Visibility       = Visibility.Visible;
            CurrentCostTextBlock.Visibility   = Visibility.Visible;
            PlayerEndTurnButton.Visibility    = Visibility.Visible;
            LeftCardNum.Visibility            = Visibility.Visible;
            #endregion
            var changeList = OriginHandCardGridView.SelectedItems;
            foreach (var item in changeList)
            {
                Card card = (item as Grid).DataContext as Card;
                if (card.CardType == CardTypes.MinionCard)
                {
                    mainBattlefield.Player.HandCard.Remove(card);
                    HandCardManager.DrawCard(mainBattlefield.Player);
                    HandCardManager.ShuffleIntoDeck((MinionCard)card.CardData, mainBattlefield.Player);
                }
                else
                {
                    mainBattlefield.Player.HandCard.Remove(card);
                    HandCardManager.DrawCard(mainBattlefield.Player);
                    HandCardManager.ShuffleIntoDeck((SpellCard)card.CardData, mainBattlefield.Player);
                }
            }
            PlayerTurn();
        }//换牌按钮点击
Пример #3
0
 public void PlayerTurnInit()
 {
     HandCardManager.DrawCard(player);
     if (maxCost < 10)
     {
         CostPlus();
     }
     currentCost = maxCost;
 }
 private void UpdateHandCardGridView(GridView gridView)
 {
     LeftCardNum.Text = (mainBattlefield.Player.CurrentDeck.MinionCard.Count() + mainBattlefield.Player.CurrentDeck.SpellCard.Count()).ToString() + " cards in deck";
     HandCardManager.UpdateHandCardGirdView(gridView, mainBattlefield.Player);
     foreach (var item in gridView.Items)
     {
         (item as Grid).PointerEntered += Card_PointerEntered;
         (item as Grid).PointerExited  += Card_PointerExited;
     }
 }
 private void HandCardInit()
 {
     #region ChangeVisibility
     OriginHandCardGridView.Visibility = Visibility.Visible;
     ConfirmHandCardButton.Visibility  = Visibility.Visible;
     HandCardGridView.Visibility       = Visibility.Collapsed;
     CurrentCostTextBlock.Visibility   = Visibility.Collapsed;
     PlayerEndTurnButton.Visibility    = Visibility.Collapsed;
     #endregion
     HandCardManager.DrawCard(4, mainBattlefield.Player);
     UpdateHandCardGridView(OriginHandCardGridView);
 }//手牌控件初始化
Пример #6
0
        /// <summary>
        /// 抽牌
        /// </summary>
        /// <param name="value">格式:"int" </param>
        public static void DrawCard(PlayerData player, string value)
        {
            int num = int.Parse(value);

            HandCardManager.DrawCard(num, player);
        }