public static void Add(LeagueSharp.GameObject unit) { var @class = Unit.Class(unit); if (@class == "useless") { return; } else if (@class == "creep") { Add(new Creep(unit as LeagueSharp.Obj_AI_Minion)); } else if (@class == "creepSpawn") { Add(new CreepSpawn(unit as LeagueSharp.NeutralMinionCamp)); } else if (@class == "player") { Add(new Player(unit as LeagueSharp.Obj_AI_Hero)); } else if (unit is LeagueSharp.Obj_AI_Base) { Add(new Unit(unit as LeagueSharp.Obj_AI_Base)); } else { data.Add(unit.Index, new Object(unit)); } }
// methods public static string Class(LeagueSharp.GameObject unit) { var type = unit.Type; switch (type) { case LeagueSharp.GameObjectType.obj_GeneralParticleEmitter: case LeagueSharp.GameObjectType.obj_AI_Marker: case LeagueSharp.GameObjectType.FollowerObject: return("visual"); case LeagueSharp.GameObjectType.obj_AI_Minion: var minion = (unit as LeagueSharp.Obj_AI_Minion); var name = unit.Name.ToLower(); if (minion.CampNumber != 0) { return("creep"); //L# } else if (name.Contains("minion")) { return("minion"); } else if (name.Contains("ward")) { return("ward"); } else if (name.Contains("buffplat") || name == "odinneutralguardian") { return("point"); } else if (name.Contains("shrine") || name.Contains("relic")) { return("event"); } else if (LeagueSharp.Game.MapId == LeagueSharp.GameMapId.SummonersRift && System.Text.RegularExpressions.Regex.IsMatch(name, @"\d+\.\d+") && (name.Contains("baron") || name.Contains("dragon") || name.Contains("blue") || name.Contains("red") || name.Contains("crab") || name.Contains("krug") || name.Contains("gromp") || name.Contains("wolf") || name.Contains("razor"))) { return("creep"); } else if (LeagueSharp.Game.MapId == LeagueSharp.GameMapId.TwistedTreeline && System.Text.RegularExpressions.Regex.IsMatch(name, @"\d+\.\d+") && (name.Contains("wraith") || name.Contains("golem") || name.Contains("wolf") || name.Contains("spider"))) { return("creep"); } else if (!minion.IsTargetable) { return("trap"); } else { return("error"); } case LeagueSharp.GameObjectType.obj_AI_Turret: return("tower"); case LeagueSharp.GameObjectType.obj_AI_Hero: return("player"); case LeagueSharp.GameObjectType.obj_Shop: return("shop"); case LeagueSharp.GameObjectType.obj_HQ: return("nexus"); case LeagueSharp.GameObjectType.obj_BarracksDampener: return("inhibotor"); case LeagueSharp.GameObjectType.obj_SpawnPoint: return("spawn"); case LeagueSharp.GameObjectType.obj_Barracks: return("minionSpawn"); case LeagueSharp.GameObjectType.NeutralMinionCamp: return("creepSpawn"); case LeagueSharp.GameObjectType.obj_InfoPoint: return("event"); case LeagueSharp.GameObjectType.Missile: case LeagueSharp.GameObjectType.MissileClient: case LeagueSharp.GameObjectType.obj_SpellMissile: case LeagueSharp.GameObjectType.obj_SpellCircleMissile: case LeagueSharp.GameObjectType.obj_SpellLineMissile: return("spell"); case LeagueSharp.GameObjectType.obj_Turret: case LeagueSharp.GameObjectType.obj_Levelsizer: case LeagueSharp.GameObjectType.obj_NavPoint: case LeagueSharp.GameObjectType.LevelPropSpawnerPoint: case LeagueSharp.GameObjectType.LevelPropGameObject: case LeagueSharp.GameObjectType.GrassObject: case LeagueSharp.GameObjectType.obj_Lake: case LeagueSharp.GameObjectType.obj_LampBulb: case LeagueSharp.GameObjectType.DrawFX: return("useless"); } return("error"); }
public Object(LeagueSharp.GameObject a) { @ref = a; @class = Class(a); }
// extension public static T Data <T>(this LeagueSharp.GameObject unit) where T : Object { return((T)data[unit.Index]); }
public static void Remove(LeagueSharp.GameObject unit) { data.Remove(unit.Index); }
public bool Cast(LeagueSharp.SpellSlot spell, LeagueSharp.GameObject target) { return(spell != LeagueSharp.SpellSlot.Unknown && CanUse(spell) && @ref.Spellbook.CastSpell(spell, target)); }