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); }
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); }