private void UpdateCardDisplay() { ttcCard.ICard = null; if (this.ICard != null) { if (this.ICard is DominionBase.Cards.Universal.Dummy) { lName.Background = Brushes.BlueViolet; lName.MinWidth = 10; this.Title = " "; tbName.Text = String.Empty; ttcCard.ICard = null; return; } if (this.CardVisibility == DominionBase.Piles.Visibility.All) { DominionBase.Cards.Category category = this.ICard.Category; if (this.ICard is DominionBase.Cards.Card) { category = ((DominionBase.Cards.Card) this.ICard).PhysicalCategory; } lName.Background = Caching.BrushRepository.GetBackgroundBrush(category); lName.Foreground = Caching.BrushRepository.GetForegroundBrush(category); if ((category & DominionBase.Cards.Category.Reaction) == DominionBase.Cards.Category.Reaction) { tbName.Effect = Caching.DropShadowRepository.GetDSE(8, Colors.White, 1d); } this.Title = this.ICard.Name; ttcCard.ICard = this.ICard; } else { lName.Background = Brushes.Transparent; Caching.ImageRepository repo = Caching.ImageRepository.Acquire(); if (repo != null && imName != null) { switch (this.ICard.CardBack) { case DominionBase.Cards.CardBack.Standard: imName.Source = repo.GetBitmapImage("back", "small"); break; case DominionBase.Cards.CardBack.Red: imName.Source = repo.GetBitmapImage("back_red", "small"); break; } } Caching.ImageRepository.Release(); imName.Width = lName.MinWidth; imName.Height = 12; } } }
public static Brush GetForegroundBrush(DominionBase.Cards.Category cardType) { if ((cardType & DominionBase.Cards.Category.Attack) == DominionBase.Cards.Category.Attack) { return(Brushes.Firebrick); } if ((cardType & DominionBase.Cards.Category.Curse) == DominionBase.Cards.Category.Curse) { return(Brushes.Snow); } return(Brushes.Black); }
private void UpdateCardDisplay() { if (this.ICard != null) { DominionBase.Cards.Category category = this.ICard.Category; if (this.ICard is DominionBase.Cards.Card) { category = ((DominionBase.Cards.Card) this.ICard).PhysicalCategory; } lName.Background = Caching.BrushRepository.GetBackgroundBrush(category); lName.Foreground = Caching.BrushRepository.GetForegroundBrush(category); if ((category & DominionBase.Cards.Category.Reaction) == DominionBase.Cards.Category.Reaction) { tbName.Effect = Caching.DropShadowRepository.GetDSE(8, Colors.White, 1d); } this.Title = this.ICard.Name; } ttcCard.ICard = this.ICard; if (this.IsOrdered) { if (this.Order > 0) { lOrdinal.Visibility = System.Windows.Visibility.Visible; } else { lOrdinal.Visibility = System.Windows.Visibility.Hidden; } tbOrdinal.Text = Utilities.Ordinal(this.Order); } else { lOrdinal.Visibility = System.Windows.Visibility.Collapsed; } }
public static Brush GetBackgroundBrush(DominionBase.Cards.Category cardType) { if (!_BGBrushCache.ContainsKey(cardType)) { Color topColor = Colors.Transparent; Color bottomColor = Colors.Transparent; List <String> cardTypes = new List <String>(); if ((cardType & DominionBase.Cards.Category.Action) == DominionBase.Cards.Category.Action) { topColor = Color.FromRgb(231, 231, 231); } if ((cardType & DominionBase.Cards.Category.Curse) == DominionBase.Cards.Category.Curse) { topColor = Color.FromRgb(129, 0, 127); } if ((cardType & DominionBase.Cards.Category.Duration) == DominionBase.Cards.Category.Duration) { topColor = Color.FromRgb(248, 119, 35); } if ((cardType & DominionBase.Cards.Category.Ruins) == DominionBase.Cards.Category.Ruins) { topColor = Color.FromRgb(162, 123, 23); } if ((cardType & DominionBase.Cards.Category.Shelter) == DominionBase.Cards.Category.Shelter) { if (topColor == Colors.Transparent) { topColor = Color.FromRgb(232, 98, 87); } else { bottomColor = Color.FromRgb(232, 98, 87); } } if ((cardType & DominionBase.Cards.Category.Treasure) == DominionBase.Cards.Category.Treasure) { if (topColor == Colors.Transparent) { topColor = Color.FromRgb(247, 214, 98); } else { bottomColor = Color.FromRgb(247, 214, 98); } } if ((cardType & DominionBase.Cards.Category.Victory) == DominionBase.Cards.Category.Victory) { if (topColor == Colors.Transparent) { topColor = Color.FromRgb(144, 238, 144); } else { bottomColor = Color.FromRgb(144, 238, 144); } } if ((cardType & DominionBase.Cards.Category.Reaction) == DominionBase.Cards.Category.Reaction) { if (topColor == Colors.Transparent || (topColor.R == 231 && topColor.G == 231 && topColor.B == 231)) { topColor = Color.FromRgb(64, 103, 224); } else { bottomColor = Color.FromRgb(64, 103, 224); } } if (topColor == Colors.Transparent) { topColor = bottomColor; } if (bottomColor == Colors.Transparent) { bottomColor = topColor; } GradientStop gs1 = new GradientStop(topColor, 0.0); GradientStop gs2 = new GradientStop(topColor, 0.35); GradientStop gs3 = new GradientStop(bottomColor, 0.65); GradientStop gs4 = new GradientStop(bottomColor, 1.0); _BGBrushCache[cardType] = new LinearGradientBrush(new GradientStopCollection() { gs1, gs2, gs3, gs4 }, 90.0); } if (_BGBrushCache[cardType].CanFreeze) { _BGBrushCache[cardType].Freeze(); } return(_BGBrushCache[cardType]); }
private void UpdateCardDisplay() { spExtraStuff.Visibility = System.Windows.Visibility.Visible; spExtraStuff.Children.Clear(); this.Tokens.ForEach(t => spExtraStuff.Children.Add(new Controls.ucTokenIcon { Token = t, Size = CardSize.Text })); if (spExtraStuff.Children.Count == 0) { spExtraStuff.Visibility = System.Windows.Visibility.Collapsed; } Size stackOffset = new Size(); switch (this.CardSize) { case NET_WPF.CardSize.Text: break; case NET_WPF.CardSize.SmallText: dpName.Height = 16; lCount.Margin = new Thickness(0); lName.Padding = new Thickness(0); lName.Margin = new Thickness(0, 0, 2, 0); this.Padding = new Thickness(0); break; case NET_WPF.CardSize.Small: stackOffset = new Size(12, 6); break; case NET_WPF.CardSize.Medium: stackOffset = new Size(24, 10); break; } lCount.Visibility = System.Windows.Visibility.Collapsed; if (_CardCollection.Count() > 4 || (gImages.Visibility == System.Windows.Visibility.Collapsed && _CardCollection.Count() > 1)) { lCount.Visibility = System.Windows.Visibility.Visible; if (IsCardsVisible && PileVisibility == DominionBase.Piles.Visibility.All) { lCount.Content = String.Format("{0}x", _CardCollection.Count()); } stackOffset.Width = 0.75 * stackOffset.Width; } //else if (this.CardSize == NET_WPF.CardSize.SmallText) //{ // lCount.Visibility = System.Windows.Visibility.Collapsed; //} if (_CardCollection.Count() > 6 && stackOffset.Height > 0) { float verticalScale = 56f / (_CardCollection.Count() - 1); stackOffset = new Size((int)(0.625 * stackOffset.Width * verticalScale / stackOffset.Height), (int)verticalScale); } if (this.PileVisibility != DominionBase.Piles.Visibility.All) { stackOffset.Width = 0; } for (int index = 0; index < _CardCollection.Count(); index++) { DominionBase.ICard card = _CardCollection.ElementAt(index); if (card == null) { continue; } if (IsCardsVisible && PileVisibility == DominionBase.Piles.Visibility.All || PileVisibility == DominionBase.Piles.Visibility.Top) { DominionBase.Cards.Category category = card.Category; if (card is DominionBase.Cards.Card) { category = ((DominionBase.Cards.Card)card).PhysicalCategory; } lName.Background = Caching.BrushRepository.GetBackgroundBrush(category); lName.Foreground = Caching.BrushRepository.GetForegroundBrush(category); if ((category & DominionBase.Cards.Category.Reaction) == DominionBase.Cards.Category.Reaction) { tbName.Effect = Caching.DropShadowRepository.GetDSE(8, Colors.White, 1d); } } if (gImages.Visibility == System.Windows.Visibility.Visible) { Image newImage = new Image(); Caching.ImageRepository repo = Caching.ImageRepository.Acquire(); switch (this.CardSize) { case NET_WPF.CardSize.Small: if (IsCardsVisible && (PileVisibility == DominionBase.Piles.Visibility.All || PileVisibility == DominionBase.Piles.Visibility.Top) && card.CardType != DominionBase.Cards.Universal.TypeClass.Dummy) { newImage.Source = repo.GetBitmapImage(card.Name.Replace(" ", "").Replace("'", ""), "small"); } else { switch (card.CardBack) { case DominionBase.Cards.CardBack.Standard: newImage.Source = repo.GetBitmapImage("back", "small"); break; case DominionBase.Cards.CardBack.Red: newImage.Source = repo.GetBitmapImage("back_red", "small"); break; } } break; case NET_WPF.CardSize.Medium: if (IsCardsVisible && (PileVisibility == DominionBase.Piles.Visibility.All || PileVisibility == DominionBase.Piles.Visibility.Top) && card.CardType != DominionBase.Cards.Universal.TypeClass.Dummy) { newImage.Source = repo.GetBitmapImage(card.Name.Replace(" ", "").Replace("'", ""), "medium"); } else { switch (card.CardBack) { case DominionBase.Cards.CardBack.Standard: newImage.Source = repo.GetBitmapImage("back", "medium"); break; case DominionBase.Cards.CardBack.Red: newImage.Source = repo.GetBitmapImage("back_red", "medium"); break; } } break; } Caching.ImageRepository.Release(); if (newImage.Source != null) { newImage.Width = newImage.Source.Width; newImage.Height = newImage.Source.Height; } newImage.HorizontalAlignment = HorizontalAlignment.Left; newImage.VerticalAlignment = VerticalAlignment.Top; newImage.Margin = new Thickness(index * stackOffset.Width, index * stackOffset.Height, 0, 0); newImage.Tag = card; gImages.Children.Insert(gImages.Children.Count - 1, newImage); } } this.Title = String.Empty; if (_CardCollection.Count() > 0 && IsCardsVisible) { if (PileVisibility == DominionBase.Piles.Visibility.All || PileVisibility == DominionBase.Piles.Visibility.Top) { DominionBase.ICard card = _CardCollection.Last(); if (card != null) { this.Title = card.Name; ttcCard.ICard = card; } } } UpdateGlowEffectAll(); if (!IsCardsVisible || PileVisibility == DominionBase.Piles.Visibility.None) { int count = _CardCollection.Count(); if (this.ExactCount || count <= 1) { this.Title = StringUtility.Plural("Card", count); } } }