Ejemplo n.º 1
0
        public bool PassedGemRule(List <GemLevelRule> rules, SkillGemTooltipWrapper gem)
        {
            //foreach (GemLevelRule rule in rules)
            //{
            //    if (!string.Equals(gem.Name, rule.GemName, StringComparison.CurrentCultureIgnoreCase)) continue;
            //    if (gem.Level >= rule.MaxLevel) return false;
            //}

            return(true);
        }
Ejemplo n.º 2
0
        public void LevelUpGems()
        {
            if (!Keyboard.IsKeyDown((int)Settings.LevelSkillGemsHotkey.Value))
            {
                return;
            }

            if (!Settings.LevelSkillGems)
            {
                return;
            }

            if (GemClickTimer.ElapsedMilliseconds < 150)
            {
                return;
            }
            GemClickTimer.Restart();


            bool WeExistInRuleSet = false;
            var  RuleSet          = new List <GemLevelRule>();

            // Check if the profile exists
            foreach (Person PersonCheck in Settings.SkillGemStopList)
            {
                if (PersonCheck.Character == GameController.Player.GetComponent <Player>().PlayerName)
                {
                    WeExistInRuleSet = true;
                    RuleSet          = PersonCheck.Rules;
                    break;
                }
            }

            if (!WeExistInRuleSet)
            {
                Settings.SkillGemStopList.Add(new Person
                {
                    Character = GameController.Player.GetComponent <Player>().PlayerName,
                    Rules     = new List <GemLevelRule>()
                });
            }

            Element SkillGemLevelUps = GameController.Game.IngameState.UIRoot.GetChildAtIndex(1)
                                       .GetChildAtIndex(3)
                                       .GetChildAtIndex(1)
                                       .GetChildAtIndex(0);

            if (SkillGemLevelUps == null || !SkillGemLevelUps.IsVisible)
            {
                return;
            }
            var MosuePos = Mouse.GetCursorPositionVector();

            foreach (Element element in SkillGemLevelUps.Children)
            {
                RectangleF skillGemButton = element.GetChildAtIndex(1).GetClientRect();
                string     skillGemText   = element.GetChildAtIndex(3).AsObject <EntityLabel>().Text;
                if (element.GetChildAtIndex(2).IsVisibleLocal)
                {
                    continue;
                }

                if (element.GetChildAtIndex(0).Tooltip.ChildCount == 0 && skillGemText?.ToLower() == "click to level up")
                {
                    var ToolTipHover = skillGemButton;
                    ToolTipHover.X += ToolTipHover.Width;
                    Mouse.SetCurosPosToCenterOfRec(ToolTipHover, GameController.Window.GetWindowRectangle());
                    var WhileStart = DateTime.Now;
                    while (element.GetChildAtIndex(0).Tooltip.ChildCount == 0 && WhileStart.AddSeconds(3) > DateTime.Now)
                    {
                        Thread.Sleep(25);
                        Mouse.SetCurosPosToCenterOfRec(ToolTipHover, GameController.Window.GetWindowRectangle());
                    }
                }
                if (element.GetChildAtIndex(0).Tooltip.ChildCount != 0)
                {
                    SkillGemTooltipWrapper SkillGemToolTipInfo = new SkillGemTooltipWrapper(element.GetChildAtIndex(0).Tooltip);
                    if (skillGemText?.ToLower() == "click to level up")
                    {
                        if (PassedGemRule(RuleSet, SkillGemToolTipInfo))
                        {
                            Mouse.SetCurosPosToCenterOfRec(skillGemButton, GameController.Window.GetWindowRectangle());
                            Mouse.LeftClick(5, 10);
                            //Mouse.SetCurosPosToCenterOfRec(GameController.Window.GetWindowRectangle(), GameController.Window.GetWindowRectangle());
                            GemClickTimer.Restart();
                            break;
                        }
                        else
                        {
                            Mouse.SetCurosPosToCenterOfRec(skillGemButton, GameController.Window.GetWindowRectangle());
                            Mouse.RightClick(5, 10);
                            //Mouse.SetCurosPosToCenterOfRec(GameController.Window.GetWindowRectangle(), GameController.Window.GetWindowRectangle());
                            GemClickTimer.Restart();
                            break;
                        }
                    }
                }
                Thread.Sleep(25);
            }

            //Mouse.SetCursorPos(MosuePos);
        }