AkaCore.AkaLib.Evade.SkillshotDetector.ObjMissileClientOnCreateDelayed C# (CSharp) Method

ObjMissileClientOnCreateDelayed() private static method

private static ObjMissileClientOnCreateDelayed ( MissileClient missile, SpellData spellData ) : void
missile MissileClient
spellData SpellData
return void
        private static void ObjMissileClientOnCreateDelayed(MissileClient missile, SpellData spellData)
        {
            var unit = missile.SpellCaster as AIHeroClient;
                var missilePosition = missile.Position.To2D();
                var unitPosition = missile.StartPosition.To2D();
                var endPos = missile.EndPosition.To2D();
                var direction = (endPos - unitPosition).Normalized();
                if (unitPosition.Distance(endPos) > spellData.Range || spellData.FixedRange)
                {
                    endPos = unitPosition + direction * spellData.Range;
                }
                if (spellData.ExtraRange != -1)
                {
                    endPos += Math.Min(spellData.ExtraRange, spellData.Range - endPos.Distance(unitPosition)) * direction;
                }
                var castTime = Extensions.GameTimeTickCount - Game.Ping / 2 - (spellData.MissileDelayed ? 0 : spellData.Delay)
                               - (int)(1000 * missilePosition.Distance(unitPosition) / spellData.MissileSpeed);
                TriggerOnDetectSkillshot(DetectionType.RecvPacket, spellData, castTime, unitPosition, endPos, unit);
        }