private void ShowHeroInfo(Hero hero) { HeroHead.Source = hero.Image; HeroInfo.Text = string.Format("{0}\n生命值:{1}\n攻击力:{2}", hero.Name, hero.Hp, hero.Attack); HeroCards.Children.Clear(); foreach (var c in hero.Cards) { for (int i = 0; i < c.Number; ++i) { CardView cardView = CardView.CreateFromCard(c.Card); HeroCards.Children.Add(cardView); } } }
private void RefreshCardPanel() { CardStackPanel.Children.Clear(); int k = 0; StackPanel currentStackPanel = null; foreach (var c in GameEngine.Instance.Runtime.Cards) { if (c.Selected >= c.Number) { continue; //不显示挑选了的 } if (k % CommonSettings.HOST_CARD_IN_ONE_LINE == 0) { k = 0; currentStackPanel = new StackPanel() { Orientation = Orientation.Horizontal }; CardStackPanel.Children.Add(currentStackPanel); } RuntimeCard card = c; CardView cardView = CardView.CreateFromCard(card.Card, c.Number - c.Selected); currentStackPanel.Children.Add(cardView); cardView.MouseLeftButtonDown += (s, e) => { if (GameEngine.Instance.Runtime.SelectCardCount < 15) { if (card.Selected < card.Card.Max) { card.Selected++; this.Dispatcher.BeginInvoke(() => { this.RefreshCardPanel(); this.RefreshCurrentCardPanel(); }); } else { MessageBox.Show("此类卡牌你最多带" + card.Card.Max + "个"); } } else { MessageBox.Show("你最多只能挑选15张上场手牌"); } }; k++; } }
/// <summary> /// 刷新手牌显示 /// </summary> /// <param name="player"></param> /// <param name="cardPanel"></param> /// <param name="isBack">是否显示背面</param> private void RefreshHandleCards(GamePlayer player, StackPanel cardPanel, bool isBack) { cardPanel.Children.Clear(); foreach (var card in player.HandleCard) { CardView view = null; if (!isBack) { view = CardView.CreateFromCard(card); } else { view = CardView.CreateBack(); } cardPanel.Children.Add(view); } }
public void RefreshCurrentCardPanel() { int count = GameEngine.Instance.Runtime.SelectCardCount; this.SelectCardCountText.Text = count.ToString(); if (count < 15) { this.SelectCardCountText.Text += "(需要15个)"; } this.CurrentCardStackPanel.Children.Clear(); int k = 0; StackPanel currentStackPanel = null; foreach (var c in GameEngine.Instance.Runtime.Cards) { if (c.Selected == 0) { continue; } if (k % CommonSettings.HOST_CARD_IN_ONE_LINE == 0) { k = 0; currentStackPanel = new StackPanel() { Orientation = Orientation.Horizontal }; CurrentCardStackPanel.Children.Add(currentStackPanel); } RuntimeCard card = c; CardView cardView = CardView.CreateFromCard(card.Card, c.Selected); currentStackPanel.Children.Add(cardView); cardView.MouseLeftButtonDown += (s, e) => { card.Selected--; this.Dispatcher.BeginInvoke(() => { this.RefreshCardPanel(); this.RefreshCurrentCardPanel(); }); }; k++; } }