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;
                }
            }
        }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
        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;
            }
        }
Exemplo n.º 4
0
        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);
                }
            }
        }