/
HarrasOrbwalkingMode.cs
55 lines (47 loc) · 1.6 KB
/
HarrasOrbwalkingMode.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// <copyright file="HarrasOrbwalkingMode.cs" company="Ensage">
// Copyright (c) 2017 Ensage.
// </copyright>
namespace Vaper
{
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Ensage;
using Ensage.SDK.Extensions;
using Ensage.SDK.Helpers;
using Ensage.SDK.Orbwalker.Modes;
public class HarrasOrbwalkingMode : AttackOrbwalkingModeAsync
{
private readonly BaseHero baseHero;
public HarrasOrbwalkingMode(BaseHero hero)
: base(hero.Context, "SCR.AIO Harras", 'X', false, false, false, false, true, true)
{
this.baseHero = hero;
}
protected float BonusAttackRange
{
get
{
return this.Selector?.BonusRange ?? 0.0f;
}
}
public override async Task ExecuteAsync(CancellationToken token)
{
var unitTarget = this.GetTarget();
if (unitTarget != null)
{
this.Orbwalker.OrbwalkTo(unitTarget);
return;
}
var harrasTarget = EntityManager<Hero>.Entities.Where(x => x.IsVisible && x.IsAlive && !x.IsIllusion && x.IsEnemy(this.Owner) && this.Owner.IsInAttackRange(x, this.BonusAttackRange))
.OrderBy(x => x.Health)
.FirstOrDefault();
if (harrasTarget != null)
{
this.Orbwalker.OrbwalkTo(harrasTarget);
return;
}
this.Orbwalker.OrbwalkTo(null);
}
}
}