public bool IsAboutToHit(int time, Obj_AI_Base unit)
{
if (SpellData.Type == SkillShotType.SkillshotMissileLine)
{
Vector2 missilePos = GetMissilePosition(0);
Vector2 missilePosAfterT = GetMissilePosition(time);
LeagueSharp.Common.Geometry.ProjectionInfo projection = unit.ServerPosition.To2D().ProjectOn(missilePos, missilePosAfterT);
return projection.IsOnSegment &&
projection.SegmentPoint.Distance(unit.ServerPosition) < SpellData.Radius;
}
if (IsSafe(unit.ServerPosition.To2D()))
{
return false;
}
var timeToExplode = SpellData.ExtraDuration + SpellData.Delay +
(int) ((1000 * Start.Distance(End)) / SpellData.MissileSpeed) -
(Environment.TickCount - StartTick);
return timeToExplode <= time;
}