Beispiel #1
0
        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;
        }
Beispiel #2
0
 private void CastSkill()
 {
     //default constant delay 10ms?
     Input.KeyPressRelease(Settings.SkillHotkey, GameController.Window.Process.MainWindowHandle);
 }