private IEnumerator AttackEntity(Entity closestMonster) { LogMessage(" ------ AttackEntity called", 1); List <SkillSettings> skills = new List <SkillSettings>() { Settings.SkillOne, Settings.SkillTwo, Settings.SkillThree, }; SkillSettings availableSkill = null; try { availableSkill = skills .Where(o => { long delta = GetDeltaInMilliseconds(o.LastTimeUsed); return(delta > Int32.Parse(o.CooldownBetweenCasts.Value)); }) .Where(o => { var distance = FollowerHelpers.EntityDistance(closestMonster, GameController.Player) / 10; LogMessage($"DISTANCE: {distance}"); LogMessage($"o.Range.Value: {o.Range.Value}"); return(distance < o.Range.Value); }) .OrderBy(o => o.Priority.Value) .First(); availableSkill.LastTimeUsed = DateTime.UtcNow; } catch (Exception e) { LogError(" ------ Error during filtering an available skill"); } if (availableSkill != null) { yield return(HoverTo(closestMonster)); Input.KeyPressRelease(availableSkill.SkillHotkey.Value); } else { yield return(DoFollow()); } yield break; }
private void CastSkill() { //default constant delay 10ms? Input.KeyPressRelease(Settings.SkillHotkey, GameController.Window.Process.MainWindowHandle); }