Example #1
0
        public SkillComponents(SkillPanel skillPanel)
        {
            _skillPanel    = skillPanel;
            _skillControls = new List <SkillControls>();
            _panel         = new Panel();

            _completeSkillPanel = _skillPanel.GetImageFromSkillPanel("skill panel");
            _completeSkillPanel.MakeTransparent(Color.White);

            _skillIconPanel = _skillPanel.GetImageFromSkillPanel("icon panel big");
            _skillIconPanel.MakeTransparent(Color.White);

            _g = Graphics.FromImage(_completeSkillPanel);
        }
Example #2
0
        private Bitmap CreateConnectorLines(DataRow[] classSkills)
        {
            Bitmap   connectorLineLayer = new Bitmap(_completeSkillPanel.Size.Width, _completeSkillPanel.Size.Height);
            Graphics g = Graphics.FromImage(connectorLineLayer);

            g.Clear(Color.Transparent);

            int xOffset  = 52;
            int yOffset  = 120 + 24;
            int spacingX = 120;
            int spacingY = 122 - 4;

            foreach (DataRow skill in classSkills)
            {
                foreach (DataRow required in classSkills)
                {
                    int currentSkillIndex  = (int)required["index"];
                    int requiredSkillIndex = (int)skill["requiredskills1"];

                    if (currentSkillIndex == requiredSkillIndex)
                    {
                        int x1 = (int)skill["skillPageColumn"];
                        int y1 = (int)skill["skillPageRow"];

                        int x2 = (int)required["skillPageColumn"];
                        int y2 = (int)required["skillPageRow"];

                        Bitmap connector    = null;
                        Point  drawLocation = new Point(x2 * spacingX + xOffset, y2 * spacingY + yOffset);

                        int distanceX = Math.Abs(x1 - x2);
                        int distanceY = Math.Abs(y1 - y2);

                        if (x1 == x2)
                        {
                            if (distanceY > 0)
                            {
                                connector = _skillPanel.GetImageFromSkillPanel("line_" + distanceY + "d");

                                drawLocation.Y += _skillIconPanel.Size.Height / 2;
                            }
                        }
                        else if (x1 < x2)
                        {
                            connector = _skillPanel.GetImageFromSkillPanel("line_" + distanceX + "l_" + distanceY + "d");

                            drawLocation.X -= _skillIconPanel.Size.Width + 24;
                            drawLocation.Y += _skillIconPanel.Size.Height / 2 - 2;
                        }
                        else if (x1 > x2)
                        {
                            connector = _skillPanel.GetImageFromSkillPanel("line_" + distanceX + "r_" + distanceY + "d");

                            drawLocation.Y += _skillIconPanel.Size.Height / 2;
                        }

                        g.DrawImage(connector, drawLocation);
                        connector.Dispose();
                    }
                }
            }

            g.Dispose();
            return(connectorLineLayer);
        }