//public bool Evade() //{ // if (ForceDisabled) // { // return false; // } // if (Environment.TickCount - _cachedValueTick < 100) // { // return _cachedValue; // } // if (!ConfigValue<bool>("IsDangerous") && Config.Menu.Item("OnlyDangerous").ConfigValue<KeyBind>().Active) // { // _cachedValue = false; // _cachedValueTick = Environment.TickCount; // return _cachedValue; // } // _cachedValue = ConfigValue<bool>("Enabled"); // _cachedValueTick = Environment.TickCount; // return _cachedValue; //} public void Game_OnGameUpdate() { //Even if it doesnt consume a lot of resources with 20 updatest second works k if (SpellData.CollisionObjects.Count() > 0 && SpellData.CollisionObjects != null && Environment.TickCount - _lastCollisionCalc > 50) { _lastCollisionCalc = Environment.TickCount; _collisionEnd = Collision.GetCollisionPoint(this); } //Update the missile position each time the game updates. if (SpellData.Type == SkillShotType.SkillshotMissileLine) { Rectangle = new Geometry.Rectangle(GetMissilePosition(0), CollisionEnd, SpellData.Radius); UpdatePolygon(); } //Spells that update to the unit position. if (SpellData.MissileFollowsUnit) { if (Unit.IsVisible) { End = Unit.ServerPosition.To2D(); Direction = (End - Start).Normalized(); UpdatePolygon(); } } }
public Skillshot(DetectionType detectionType, SpellData spellData, int startT, Vector2 start, Vector2 end, Obj_AI_Base unit) { DetectionType = detectionType; SpellData = spellData; StartTick = startT; Start = start; End = end; MissilePosition = start; Direction = (end - start).Normalized(); Unit = unit; //Create the spatial object for each type of skillshot. switch (spellData.Type) { case SkillShotType.SkillshotCircle: Circle = new Geometry.Circle(CollisionEnd, spellData.Radius); break; case SkillShotType.SkillshotLine: Rectangle = new Geometry.Rectangle(Start, CollisionEnd, spellData.Radius); break; case SkillShotType.SkillshotMissileLine: Rectangle = new Geometry.Rectangle(Start, CollisionEnd, spellData.Radius); break; case SkillShotType.SkillshotCone: Sector = new Geometry.Sector( start, CollisionEnd - start, spellData.Radius*(float) Math.PI/180, spellData.Range); break; case SkillShotType.SkillshotRing: Ring = new Geometry.Ring(CollisionEnd, spellData.Radius, spellData.RingRadius); break; } UpdatePolygon(); //Create the polygon. }