Exemplo n.º 1
0
        public void Draw(Graphics g)
        {
            int y = 8 + Row * 65;
            int x = 8 + Col * 65;

            String rank = string.Format("{0}/{1}", _currentRank, _maxRank);
            Font   font = new Font("Verdana", 8);

            Brush brush;

            if (_currentRank == _maxRank)
            {
                brush = Brushes.Yellow;
            }
            else if (_talentTree.TotalPoints() >= _row * 5 && (_prereq == null || _prereq._currentRank == _prereq._maxRank))
            {
                brush = Brushes.Lime;
            }
            else
            {
                brush = Brushes.White;
            }

            //It seems that the recent armory update changed the size of the talent icons from 43x43 down to 31x31!
            //This results in talent icons that are too small for the current layout :/
            //The simplest fix is to scale the (new) talent icons from 31x31 up to 43x43 via DrawImage().
            g.DrawImage(_icon, x, y, 44, 44);
            g.DrawImageUnscaled(_overlay, x, y);
            g.DrawString(rank, font, brush, x + 31, y + 39);

            if (_prereq != null)
            {
                Image arrowImage = null;
                int   preRow     = _row - _prereq.Row;
                int   preCol     = _col - _prereq.Col;
                int   color;
                if (_currentRank == _maxRank)
                {
                    color = 2;
                }
                else if (_talentTree.TotalPoints() >= _row * 5 && (_prereq == null || _prereq._currentRank == _prereq._maxRank))
                {
                    color = 1;
                }
                else
                {
                    color = 0;
                }

                int offsetX = 0;
                int offsetY = 0;

                if (preCol == 0)
                {
                    if (preRow == 1)
                    {
                        if (color == 2)
                        {
                            arrowImage = Properties.Resources.down_1_yellow;
                        }
                        else if (color == 1)
                        {
                            arrowImage = Properties.Resources.down_1_green;
                        }
                        else
                        {
                            arrowImage = Properties.Resources.down_1_grey;
                        }
                    }
                    else if (preRow == 2)
                    {
                        if (color == 2)
                        {
                            arrowImage = Properties.Resources.down_2_yellow;
                        }
                        else if (color == 1)
                        {
                            arrowImage = Properties.Resources.down_2_green;
                        }
                        else
                        {
                            arrowImage = Properties.Resources.down_2_grey;
                        }
                    }
                    else if (preRow == 3)
                    {
                        if (color == 2)
                        {
                            arrowImage = Properties.Resources.down_3_yellow;
                        }
                        else if (color == 1)
                        {
                            arrowImage = Properties.Resources.down_3_green;
                        }
                        else
                        {
                            arrowImage = Properties.Resources.down_3_grey;
                        }
                    }
                    else if (preRow == 4)
                    {
                        if (color == 2)
                        {
                            arrowImage = Properties.Resources.down_4_yellow;
                        }
                        else if (color == 1)
                        {
                            arrowImage = Properties.Resources.down_4_green;
                        }
                        else
                        {
                            arrowImage = Properties.Resources.down_4_grey;
                        }
                    }
                    offsetX = 13;
                    offsetY = 47 - (preRow * 65);
                }
                else if (preCol == -1)
                {
                    if (preRow == 0)
                    {
                        if (color == 0)
                        {
                            arrowImage = Properties.Resources.across_left_grey;
                        }
                        else if (color == 1)
                        {
                            arrowImage = Properties.Resources.across_left_green;
                        }
                        else
                        {
                            arrowImage = Properties.Resources.across_left_yellow;
                        }
                        offsetX = 43;
                        offsetY = 14;
                    }
                    else if (preRow == 1)
                    {
                        if (color == 0)
                        {
                            arrowImage = Properties.Resources.down_left_grey;
                        }
                        else if (color == 1)
                        {
                            arrowImage = Properties.Resources.down_left_green;
                        }
                        else
                        {
                            arrowImage = Properties.Resources.down_left_yellow;
                        }
                        offsetX = 14;
                        offsetY = -45;
                    }
                    else if (preRow == 2)
                    {
                        if (color == 0)
                        {
                            arrowImage = Properties.Resources.down_2_left_grey;
                        }
                        else if (color == 1)
                        {
                            arrowImage = Properties.Resources.down_2_left_green;
                        }
                        else
                        {
                            arrowImage = Properties.Resources.down_2_left_yellow;
                        }
                        offsetX = 14;
                        offsetY = -110;
                    }
                }
                else if (preCol == 1)
                {
                    if (preRow == 0)
                    {
                        if (color == 0)
                        {
                            arrowImage = Properties.Resources.across_right_grey;
                        }
                        else if (color == 1)
                        {
                            arrowImage = Properties.Resources.across_right_green;
                        }
                        else
                        {
                            arrowImage = Properties.Resources.across_right_yellow;
                        }
                        offsetX = -20;
                        offsetY = 17;
                    }
                    else if (preRow == 1)
                    {
                        if (color == 0)
                        {
                            arrowImage = Properties.Resources.down_right_grey;
                        }
                        else if (color == 1)
                        {
                            arrowImage = Properties.Resources.down_right_green;
                        }
                        else
                        {
                            arrowImage = Properties.Resources.down_right_yellow;
                        }
                        offsetX = -20; // 45;
                        offsetY = -45; // 20;
                    }
                    else if (preRow == 2)
                    {
                        if (color == 0)
                        {
                            arrowImage = Properties.Resources.down_2_right_grey;
                        }
                        else if (color == 1)
                        {
                            arrowImage = Properties.Resources.down_2_right_green;
                        }
                        else
                        {
                            arrowImage = Properties.Resources.down_2_right_yellow;
                        }
                        offsetX = -20;
                        offsetY = -110;// 20;
                    }
                }
                if (arrowImage != null)
                {
                    g.DrawImageUnscaled(arrowImage, x + offsetX, y + offsetY);
                }
            }
        }