Ejemplo n.º 1
0
        private void OnGameUpdate(EventArgs args)
        {
            try
            {
                if (ObjectManager.Player.IsDead)
                {
                    return;
                }

                try
                {
                    var items     = Menu.Item(Name + "Items").GetValue <bool>();
                    var summoners = Menu.Item(Name + "Summoners").GetValue <bool>();

                    if (!items && !summoners)
                    {
                        return;
                    }

                    foreach (var enemy in GameObjects.EnemyHeroes.Where(e => e.IsVisible && !e.IsDead))
                    {
                        var itemDamage     = (items ? Items.CalculateComboDamage(enemy) : 0) - 20;
                        var summonerDamage = (items ? Summoners.CalculateComboDamage(enemy, true, true) : 0) - 20;
                        if (items && itemDamage > enemy.Health)
                        {
                            Items.UseComboItems(enemy);
                        }
                        else if (summoners && summonerDamage > enemy.Health + enemy.HPRegenRate * 3)
                        {
                            Summoners.UseComboSummoners(enemy, true, true);
                        }
                        else if (items && summoners && summonerDamage + itemDamage > enemy.Health + enemy.HPRegenRate * 3)
                        {
                            Items.UseComboItems(enemy);
                            Summoners.UseComboSummoners(enemy, true, true);
                        }
                    }
                }
                catch (Exception ex)
                {
                    //Global.Logger.AddItem(new LogItem(ex));
                }
            }
            catch (Exception ex)
            {
                //Global.Logger.AddItem(new LogItem(ex));
            }
        }
Ejemplo n.º 2
0
 public static void Init()
 {
     try
     {
         MenuIni = MainMenu.AddMenu("KappActivator", "KappActivator");
         Items.Potions.Init();
         Cleanse.Qss.Init();
         Summoners.Init();
         Items.Offence.Init();
         Items.Defence.Init();
     }
     catch (Exception ex)
     {
         Logger.Send("Activator Load Error While Init", ex, Logger.LogLevel.Error);
     }
 }
Ejemplo n.º 3
0
        public Spell.Skillshot GetSkillshotSpell(Summoners summoner)
        {
            if (summoner != Summoners.Flash)
            {
                return(null);
            }

            var slot = Player.Instance.GetSpellSlotFromName("summonerflash");

            if (slot != SpellSlot.Unknown)
            {
                return(new Spell.Skillshot(slot, 425, SkillShotType.Linear));
            }

            return(null);
        }
Ejemplo n.º 4
0
        private void OnDeserialized(StreamingContext context)
        {
            // Initialize rectangles
            foreach (var summoner in Summoners.Values)
            {
                summoner.Rectangle = new Rectangle(summoner.X, summoner.Y, Width, Height);
                summoner.LeftHalf  = new Rectangle(summoner.X, summoner.Y, Width / 2, Height);
                summoner.RightHalf = new Rectangle(summoner.X + Width / 2, summoner.Y, Width / 2, Height);
            }
            foreach (var summoner in Cooldowns.Values)
            {
                summoner.Rectangle = new Rectangle(summoner.X, summoner.Y, Width, Height);
            }

            // Sort summoners by their name length
            Summoners = Summoners.OrderByDescending(o => o.Key).ToDictionary(o => o.Key, o => o.Value);
        }
Ejemplo n.º 5
0
        protected override void OnInitialize()
        {
            try
            {
                _hudTexture     = Resources.CD_Hud.ToTexture();
                _hudSelfTexture = Resources.CD_HudSelf.ToTexture();

                foreach (var enemy in GameObjects.Heroes)
                {
                    var lEnemy = enemy;
                    _spellDatas.Add(enemy.NetworkId, _spellSlots.Select(slot => lEnemy.GetSpell(slot)).ToList());
                    _summonerDatas.Add(enemy.NetworkId, _summonerSlots.Select(slot => lEnemy.GetSpell(slot)).ToList());
                }

                foreach (var sName in
                         GameObjects.Heroes.SelectMany(
                             h =>
                             _summonerSlots.Select(summoner => h.Spellbook.GetSpell(summoner).Name.ToLower())
                             .Where(sName => !_summonerTextures.ContainsKey(Summoners.FixName(sName)))))
                {
                    _summonerTextures[Summoners.FixName(sName)] =
                        ((Bitmap)Resources.ResourceManager.GetObject(string.Format("CD_{0}", Summoners.FixName(sName))) ??
                         Resources.CD_SummonerBarrier).ToTexture();
                }

                _heroes = Menu.Item(Name + "DrawingAlly").GetValue <bool>() &&
                          Menu.Item(Name + "DrawingEnemy").GetValue <bool>()
                    ? GameObjects.Heroes.ToList()
                    : (Menu.Item(Name + "DrawingAlly").GetValue <bool>()
                        ? GameObjects.AllyHeroes
                        : (Menu.Item(Name + "DrawingEnemy").GetValue <bool>()
                            ? GameObjects.EnemyHeroes
                            : new List <AIHeroClient>())).ToList();

                if (!Menu.Item(Name + "DrawingSelf").GetValue <bool>())
                {
                    _heroes.RemoveAll(h => h.NetworkId == ObjectManager.Player.NetworkId);
                }

                base.OnInitialize();
            }
            catch (Exception ex)
            {
                Global.Logger.AddItem(new LogItem(ex));
            }
        }
Ejemplo n.º 6
0
 private void CompleteMatch(Region region, MyMatch match)
 {
     foreach (MyParticipant p in match.Participants)
     {
         ChooseApiKey();
         System.Threading.Thread.Sleep(500);
         MySummoner sum = new MySummoner(Task.Run(async() => { return(await api.Summoner.GetSummonerBySummonerIdAsync(region, p.SummonerId)); }).Result);
         if (!summonersCompletedList.Contains(sum.SummonerId))
         {
             Summoners.AddSummoner(sum);
             seedQueue.Enqueue(sum);
             Console.WriteLine("Summoner added!");
         }
     }
     matchCompletedList.Add(match.MatchId);
     Matches.CompleteMatch(match);
     Console.WriteLine("Match added");
 }
Ejemplo n.º 7
0
        public async Task <IActionResult> Index()
        {
            League = await LeagueClient.Connect();

            var region = await League.MakeApiRequest(LCUSharp.HttpMethod.Get, "/riotclient/region-locale");

            var locals = JsonConvert.DeserializeObject <Region>(region.Content.ReadAsStringAsync().Result);

            Summoners sum    = new Summoners(League);
            var       player = sum.GetCurrentSummoner();

            Summoner user = new Summoner();

            user.SummonerID   = player.SummonerId.ToString();
            user.SummonerName = player.DisplayName;
            user.Region       = locals.RegionRegion;
            user.Role         = "Test";
            return(View(user));
        }
Ejemplo n.º 8
0
        public async Task GetUserInfoAsync()
        {
            var region = await League.MakeApiRequest(LCUSharp.HttpMethod.Get, "/riotclient/region-locale");

            var locals = JsonConvert.DeserializeObject <Region>(region.Content.ReadAsStringAsync().Result);

            Summoners sum    = new Summoners(League);
            var       player = sum.GetCurrentSummoner();

            Summoner user = new Summoner();

            user.SummonerID   = player.SummonerId.ToString();
            user.SummonerName = player.DisplayName;
            user.Region       = locals.RegionRegion;
            user.Role         = "Test";

            http = new HttpClient();
            var content = new StringContent(JsonConvert.SerializeObject(user), Encoding.UTF8, "application/json");
            await http.PostAsync("https://lossummonerinfoapi.azurewebsites.net/api/AddSummoner", content);
        }
Ejemplo n.º 9
0
        public Spell.Targeted GetTargettedSpell(Summoners summoner)
        {
            SpellSlot slot;

            switch (summoner)
            {
            case Summoners.Exhaust:
                slot = Player.Instance.GetSpellSlotFromName("summonerexhaust");

                if (slot != SpellSlot.Unknown)
                {
                    return(new Spell.Targeted(slot, 650));
                }

                return(null);

            case Summoners.Smite:
                var spell = Player.Instance.Spellbook.Spells.FirstOrDefault(it => it.Name.Contains("summoner") && it.Name.Contains("smite"));

                if (spell != null)
                {
                    return(new Spell.Targeted(spell.Slot, 500));
                }

                return(null);

            case Summoners.Ignite:
                slot = Player.Instance.GetSpellSlotFromName("summonerdot");

                if (slot != SpellSlot.Unknown)
                {
                    return(new Spell.Targeted(slot, 600));
                }

                return(null);

            default:
                return(null);
            }
        }
Ejemplo n.º 10
0
        public async Task <IHttpActionResult> Register(SummonerModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                // Summoner MUST exist.
                var summoner = await FindSummonerAsync(model.Region, model.SummonerName);

                if (summoner == null)
                {
                    return(Conflict("Summoner not found."));
                }

                // Summoner MUST NOT be registered.
                if (await Summoners.IsSummonerRegistered(model.Region, model.SummonerName))
                {
                    return(Conflict("Summoner is already registered."));
                }

                return(Ok(new
                {
                    code = RegistrationCode.Generate((await Users.GetUserAsync()).Name, summoner.Id, model.Region)
                }));
            }
            catch (RiotHttpException e)
            {
                switch ((int)e.StatusCode)
                {
                case 500:
                case 503:
                    return(Conflict("Error communicating with Riot (Service unavailable)"));
                }
                throw;
            }
        }
Ejemplo n.º 11
0
        public static Spell.SpellBase GetActiveSpell(Summoners summoner)
        {
            SpellSlot slot;

            switch (summoner)
            {
                case Summoners.Heal:
                    slot = Player.Instance.GetSpellSlotFromName("summonerheal");

                    if (slot != SpellSlot.Unknown) return new Spell.Active(slot);

                    return null;

                case Summoners.Barrier:
                    slot = Player.Instance.GetSpellSlotFromName("summonerbarrier");

                    if (slot != SpellSlot.Unknown) return new Spell.Active(slot);

                    return null;

                case Summoners.Cleanse:
                    slot = Player.Instance.GetSpellSlotFromName("summonercleanse");

                    if (slot != SpellSlot.Unknown) return new Spell.Active(slot);

                    return null;

                case Summoners.Ghost:
                    slot = Player.Instance.GetSpellSlotFromName("summonerghost");

                    if (slot != SpellSlot.Unknown) return new Spell.Active(slot);

                    return null;

                default:
                    return null;
            }
        }
Ejemplo n.º 12
0
        public async Task <IActionResult> Index()
        {
            try
            {
                League = await LeagueClient.Connect();

                Summoners sum  = new Summoners(League);
                var       prof = sum.GetCurrentSummoner();
                if (prof.AccountId == 0)
                {
                    return(View("NoApi"));
                }
                ViewBag.Name = prof.DisplayName;
                await GetUserInfoAsync();

                return(View(prof));
            }
            catch (Exception e)
            {
                return(View("NoApi"));
            }
            //CustomGamesManager cgm = new CustomGamesManager();
            //cgm.CreateOneOnOneGame("los", 20289202);
        }
Ejemplo n.º 13
0
        private static void OnGameLoad(EventArgs args)
        {
            FileName = "Oracle - " + DateTime.Now.ToString("yy.MM.dd") +
                       " " + DateTime.Now.ToString("h.mm.ss") + ".txt";

            ChampionName       = Me.ChampionName;
            Game.OnGameUpdate += Game_OnGameUpdate;
            Game.PrintChat("<font color=\"#1FFF8F\">Oracle# r." + Revision + " -</font><font color=\"#FFFFCC\"> by Kurisu</font>");

            if (!Directory.Exists(Config.LeagueSharpDirectory + @"\Logs\Oracle"))
            {
                Directory.CreateDirectory(Config.LeagueSharpDirectory + @"\Logs\Oracle");
                Game.PrintChat(
                    "<font color=\"#FFFFCC\"><b>Thank you for choosing Oracle! :^)</b></font>");
                Game.PrintChat(
                    "<font color=\"#FFFFCC\"><b>Log files are generated in </b></font>" + Config.LeagueSharpDirectory + @"\Logs\Oracle\");
            }

            else
            {
                Game.PrintChat("<font color=\"#FFFFCC\">Feel free to donate to</font>: [email protected]");
            }

            try
            {
                var wc = new WebClient {
                    Proxy = null
                };
                var gitrevision =
                    wc.DownloadString(
                        "https://raw.githubusercontent.com/xKurisu/KurisuSolutions/master/Oracle%20(Activator)/Oracle.txt");

                if (Revision != gitrevision)
                {
                    Game.PrintChat("<font color=\"#FFFFCC\"><b>Oracle is outdated, please Update!</b></font>");
                }
            }

            catch (Exception e)
            {
                Console.WriteLine(e);
                Game.PrintChat("Something went wrong with update checker!");
            }

            Origin = new Menu("Oracle", "oracle", true);
            Cleansers.Initialize(Origin);
            Defensives.Initialize(Origin);
            Summoners.Initialize(Origin);
            Offensives.Initialize(Origin);
            Consumables.Initialize(Origin);
            AutoSpells.Initialize(Origin);

            var config     = new Menu("Oracle Config", "oracleconfig");
            var dangerMenu = new Menu("Dangerous Config", "dangerconfig");

            foreach (var i in ObjectManager.Get <Obj_AI_Hero>().Where(hero => hero.Team != Me.Team))
            {
                var menu = new Menu(i.SkinName, i.SkinName + "cccmenu");
                foreach (
                    var spell in
                    TargetSpellDatabase.Spells.Where(spell => spell.ChampionName == i.ChampionName.ToLower()))
                {
                    var danger = spell.Spellslot.ToString() == "R" ||
                                 spell.CcType != CcType.No && (spell.Type == SpellType.Skillshot || spell.Type == SpellType.Targeted);

                    menu.AddItem(new MenuItem(spell.Name + "ccc", spell.Name + " | " + spell.Spellslot)).SetValue(danger);
                }

                dangerMenu.AddSubMenu(menu);
            }

            config.AddItem(
                new MenuItem("usecombo", "Combo (Active)")
                .SetValue(new KeyBind(32, KeyBindType.Press)));

            config.AddSubMenu(dangerMenu);

            var cskills = new Menu("Cleanse Special", "cskills");

            foreach (var debuff in GameBuff.CleanseBuffs)
            {
                cskills.AddItem(new MenuItem("cure" + debuff.BuffName, debuff.ChampionName + " | " + debuff.BuffName))
                .SetValue(true);
            }
            config.AddSubMenu(cskills);

            var cleanseMenu = new Menu("Cleanse Debuffs", "cdebufs");

            cleanseMenu.AddItem(new MenuItem("stun", "Stuns")).SetValue(true);
            cleanseMenu.AddItem(new MenuItem("charm", "Charms")).SetValue(true);
            cleanseMenu.AddItem(new MenuItem("taunt", "Taunts")).SetValue(true);
            cleanseMenu.AddItem(new MenuItem("fear", "Fears")).SetValue(true);
            cleanseMenu.AddItem(new MenuItem("snare", "Snares")).SetValue(true);
            cleanseMenu.AddItem(new MenuItem("silence", "Silences")).SetValue(true);
            cleanseMenu.AddItem(new MenuItem("suppression", "Supression")).SetValue(true);
            cleanseMenu.AddItem(new MenuItem("polymorph", "Polymorphs")).SetValue(true);
            cleanseMenu.AddItem(new MenuItem("blind", "Blinds")).SetValue(false);
            cleanseMenu.AddItem(new MenuItem("slow", "Slows")).SetValue(false);
            cleanseMenu.AddItem(new MenuItem("poison", "Poisons")).SetValue(false);
            config.AddSubMenu(cleanseMenu);

            var debugMenu = new Menu("Debugging", "debugmenu");

            debugMenu.AddItem(new MenuItem("dbool", "Enable Console Debugging")).SetValue(false);
            config.AddSubMenu(debugMenu);

            Origin.AddSubMenu(config);
            Origin.AddToMainMenu();

            // Events
            GameObject.OnCreate            += GameObject_OnCreate;
            Obj_AI_Base.OnProcessSpellCast += Obj_AI_Base_OnProcessSpellCast;

            Logger(LogType.Info, "Oracle Revision: " + Revision);
            Logger(LogType.Info, "Local Player: " + ChampionName);
            Logger(LogType.Info, "Local Version: " + Game.Version);
            Logger(LogType.Info, "Local Game Map: " + Game.MapId);
            Logger(LogType.Info, "Local Summoners: " + Me.Spellbook.GetSpell(SpellSlot.Summoner1).Name + " - " +
                   Me.Spellbook.GetSpell(SpellSlot.Summoner2).Name);

            foreach (var i in ObjectManager.Get <Obj_AI_Hero>())
            {
                if (i.Team == Me.Team)
                {
                    Logger(LogType.Info, "Ally added: " + i.ChampionName);
                }

                if (i.Team != Me.Team)
                {
                    Logger(LogType.Info, "Enemy added: " + i.ChampionName);
                }
            }
        }
Ejemplo n.º 14
0
        private void OnDrawingEndScene(EventArgs args)
        {
            try
            {
                if (Drawing.Direct3DDevice == null || Drawing.Direct3DDevice.IsDisposed)
                {
                    return;
                }

                var totalSeconds = Menu.Item(Name + "DrawingTimeFormat").GetValue <StringList>().SelectedIndex == 1;
                foreach (var hero in
                         _heroes.Where(
                             hero => hero != null && hero.IsValid && hero.IsHPBarRendered && hero.Position.IsOnScreen()))
                {
                    try
                    {
                        var lHero = hero;
                        if (!hero.Position.IsValid() || !hero.HPBarPosition.IsValid())
                        {
                            return;
                        }

                        var x = (int)hero.HPBarPosition.X - (hero.IsMe ? -10 : 8);
                        var y = (int)hero.HPBarPosition.Y + (hero.IsEnemy ? 17 : (hero.IsMe ? 6 : 14));

                        _sprite.Begin(SpriteFlags.AlphaBlend);
                        var summonerData = _summonerDatas[hero.NetworkId];
                        for (var i = 0; i < summonerData.Count; i++)
                        {
                            var spell = summonerData[i];
                            if (spell != null)
                            {
                                var teleportCd = 0f;
                                if (spell.Name.Contains("Teleport", StringComparison.OrdinalIgnoreCase) &&
                                    _teleports.ContainsKey(hero.NetworkId))
                                {
                                    _teleports.TryGetValue(hero.NetworkId, out teleportCd);
                                }
                                var t = teleportCd > 0.1f
                                    ? teleportCd - Game.Time
                                    : (spell.IsReady() ? 0 : spell.CooldownExpires - Game.Time);
                                var sCd     = teleportCd > 0.1f ? TeleportCd : spell.Cooldown;
                                var percent = Math.Abs(sCd) > float.Epsilon ? t / sCd : 1f;
                                var n       = t > 0 ? (int)(19 * (1f - percent)) : 19;
                                if (t > 0)
                                {
                                    _text.DrawTextCentered(
                                        t.FormatTime(totalSeconds), x - (hero.IsMe ? -160 : 13), y + 7 + 13 * i,
                                        new ColorBGRA(255, 255, 255, 255));
                                }
                                if (_summonerTextures.ContainsKey(Summoners.FixName(spell.Name)))
                                {
                                    _sprite.Draw(
                                        _summonerTextures[Summoners.FixName(spell.Name)],
                                        new ColorBGRA(255, 255, 255, 255), new Rectangle(0, 12 * n, 12, 12),
                                        new Vector3(-x - (hero.IsMe ? 132 : 3), -y - 1 - 13 * i, 0));
                                }
                            }
                        }

                        _sprite.Draw(
                            hero.IsMe ? _hudSelfTexture : _hudTexture, new ColorBGRA(255, 255, 255, 255), null,
                            new Vector3(-x, -y, 0));

                        _sprite.End();

                        var x2 = x + (hero.IsMe ? 24 : 19);
                        var y2 = y + 21;

                        _line.Begin();
                        var spellData = _spellDatas[hero.NetworkId];
                        foreach (var spell in spellData)
                        {
                            var lSpell = spell;
                            if (spell != null)
                            {
                                var spell1 = spell;
                                var manual = hero.IsAlly
                                    ? _manualAllySpells.FirstOrDefault(
                                    m =>
                                    m.Slot.Equals(lSpell.Slot) &&
                                    m.Champ.Equals(lHero.ChampionName, StringComparison.OrdinalIgnoreCase))
                                    : _manualEnemySpells.FirstOrDefault(
                                    m =>
                                    m.Slot.Equals(spell1.Slot) &&
                                    m.Champ.Equals(lHero.ChampionName, StringComparison.OrdinalIgnoreCase));
                                var t             = (manual != null ? manual.CooldownExpires : spell.CooldownExpires) - Game.Time;
                                var spellCooldown = manual != null ? manual.Cooldown : spell.Cooldown;
                                var percent       = t > 0 && Math.Abs(spellCooldown) > float.Epsilon
                                    ? 1f - t / spellCooldown
                                    : 1f;
                                if (t > 0 && t < 100)
                                {
                                    _text.DrawTextCentered(
                                        t.FormatTime(totalSeconds), x2 + 27 / 2, y2 + 13,
                                        new ColorBGRA(255, 255, 255, 255));
                                }

                                if (spell.Level > 0)
                                {
                                    _line.Draw(
                                        new[] { new Vector2(x2, y2), new Vector2(x2 + percent * 23, y2) },
                                        t > 0 ? new ColorBGRA(235, 137, 0, 255) : new ColorBGRA(0, 168, 25, 255));
                                }
                                x2 = x2 + 27;
                            }
                        }
                        _line.End();
                    }
                    catch (Exception ex)
                    {
                        Global.Logger.AddItem(new LogItem(ex));
                    }
                }
            }
            catch (Exception ex)
            {
                Global.Logger.AddItem(new LogItem(ex));
            }
        }
Ejemplo n.º 15
0
        public static Spell.SpellBase GetSkillshotSpell(Summoners summoner)
        {

            if (summoner != Summoners.Flash) return null;

            var slot = Player.Instance.GetSpellSlotFromName("summonerflash");

            if (slot != SpellSlot.Unknown) return new Spell.Skillshot(slot, 425, SkillShotType.Linear);

            return null;
            }
Ejemplo n.º 16
0
        private void OnDrawingEndScene(EventArgs args)
        {
            try
            {
                if (Drawing.Direct3DDevice == null || Drawing.Direct3DDevice.IsDisposed)
                {
                    return;
                }

                var index = 0;

                var hudWidth  = (float)Math.Ceiling(HudWidth * _scale);
                var hudHeight = (float)Math.Ceiling(HudHeight * _scale);

                var spacing =
                    (float)
                    Math.Ceiling((10f + Menu.Item(Menu.Name + "DrawingSpacing").GetValue <Slider>().Value) * _scale) +
                    hudHeight;

                var offsetTop   = Menu.Item(Menu.Name + "DrawingOffsetTop").GetValue <Slider>().Value + hudHeight / 2f;
                var offsetRight = Drawing.Width - Menu.Item(Menu.Name + "DrawingOffsetRight").GetValue <Slider>().Value -
                                  (hudWidth + (float)Math.Ceiling(4 * _scale)) / 2f;

                foreach (var enemy in _enemyObjects)
                {
                    if (enemy.Unit.IsDead && Game.Time > enemy.DeathEndTime)
                    {
                        enemy.DeathEndTime = Game.Time + enemy.Unit.DeathDuration + 1;
                    }
                    else if (!enemy.Unit.IsDead)
                    {
                        enemy.DeathEndTime = 0;
                    }

                    var offset = spacing * index;

                    var spellData = _spellDatas[enemy.Unit.NetworkId];
                    for (var i = 0; spellData.Count > i; i++)
                    {
                        var spell = spellData[i];
                        if (spell != null && _summonerTextures.ContainsKey(Summoners.FixName(spell.Name)))
                        {
                            var teleportCd = 0f;
                            if (spell.Name.Contains("Teleport", StringComparison.OrdinalIgnoreCase) &&
                                _teleports.ContainsKey(enemy.Unit.NetworkId))
                            {
                                _teleports.TryGetValue(enemy.Unit.NetworkId, out teleportCd);
                            }
                            var time = (teleportCd > 0.1f ? teleportCd : spell.CooldownExpires) - Game.Time;
                            _sprite.Begin(SpriteFlags.AlphaBlend);
                            _sprite.DrawCentered(
                                _summonerTextures[Summoners.FixName(spell.Name)],
                                new Vector2(
                                    offsetRight + hudWidth * 0.355f,
                                    offsetTop - hudHeight * 0.275f + offset + (float)Math.Ceiling(26 * _scale) * i));
                            _sprite.End();
                            if (time > 0)
                            {
                                _line24.Begin();
                                _line24.Draw(
                                    new[]
                                {
                                    new Vector2(
                                        offsetRight + hudWidth * 0.23f,
                                        offsetTop - hudHeight * 0.28f + offset +
                                        (float)Math.Ceiling(26 * _scale) * i),
                                    new Vector2(
                                        offsetRight + hudWidth * 0.23f + (float)Math.Ceiling(24 * _scale),
                                        offsetTop - hudHeight * 0.28f + offset +
                                        (float)Math.Ceiling(26 * _scale) * i)
                                }, new Color(0, 0, 0, 175));
                                _line24.End();

                                _text14.DrawTextCentered(
                                    ((int)time).ToStringLookUp(),
                                    new Vector2(
                                        offsetRight + hudWidth * 0.359f,
                                        offsetTop - hudHeight * 0.28f + offset + (float)Math.Ceiling(26 * _scale) * i),
                                    new Color(255, 255, 255, 210), true);
                            }
                        }
                    }

                    _sprite.Begin(SpriteFlags.AlphaBlend);

                    _sprite.DrawCentered(
                        enemy.Texture,
                        new Vector2(offsetRight - hudWidth * 0.1f, offsetTop - hudHeight * 0.13f + offset));

                    _sprite.DrawCentered(
                        _hudTexture, new Vector2(offsetRight + (float)Math.Ceiling(3 * _scale), offsetTop + offset));

                    if (enemy.RSpell != null && enemy.RSpell.Level > 0 && enemy.RSpell.CooldownExpires - Game.Time < 0)
                    {
                        _sprite.DrawCentered(
                            _ultimateTexture,
                            new Vector2(offsetRight - hudWidth * 0.34f, offsetTop - hudHeight * 0.375f + offset));
                    }

                    _sprite.End();

                    if (enemy.RSpell != null && enemy.RSpell.Level > 0 && enemy.RSpell.CooldownExpires - Game.Time > 0 &&
                        enemy.RSpell.CooldownExpires - Game.Time < 100)
                    {
                        _text14.DrawTextCentered(
                            ((int)(enemy.RSpell.CooldownExpires - Game.Time)).ToStringLookUp(),
                            new Vector2(offsetRight - hudWidth * 0.338f, offsetTop - hudHeight * 0.365f + offset),
                            Color.White);
                    }

                    _line17.Begin();
                    _line17.Draw(
                        new[]
                    {
                        new Vector2(offsetRight - hudWidth * 0.035f, offsetTop + hudHeight * 0.035f + offset),
                        new Vector2(
                            offsetRight - hudWidth * 0.035f + (float)Math.Ceiling(18 * _scale),
                            offsetTop + hudHeight * 0.035f + offset)
                    }, new Color(0, 0, 0, 215));
                    _line17.End();

                    _text14.DrawTextCentered(
                        enemy.Unit.Level.ToStringLookUp(),
                        new Vector2(offsetRight + hudWidth * 0.075f, offsetTop + hudHeight * 0.045f + offset),
                        !enemy.Unit.IsVisible || enemy.Unit.IsDead
                            ? new Color(255, 255, 255, 215)
                            : new Color(255, 255, 255, 240));

                    _text14.DrawTextLeft(
                        enemy.Unit.Name,
                        new Vector2(offsetRight + hudWidth * 0.52f, offsetTop - hudHeight * 0.57f + offset),
                        !enemy.Unit.IsVisible || enemy.Unit.IsDead
                            ? new Color(255, 255, 255, 215)
                            : new Color(255, 255, 255, 240));

                    var healthStart = new Vector2(
                        offsetRight - hudWidth * 0.358f, offsetTop + hudHeight * 0.268f + offset);
                    var healthWidth = (float)Math.Ceiling(HealthWidth * _scale) / enemy.Unit.MaxHealth *
                                      enemy.Unit.Health;
                    _line7.Begin();
                    _line7.Draw(
                        new[] { healthStart, new Vector2(healthStart.X + healthWidth, healthStart.Y) }, Color.Green);


                    var resStart = new Vector2(healthStart.X, healthStart.Y + (float)Math.Ceiling(9 * _scale));
                    var resWidth = (float)Math.Ceiling(HealthWidth * _scale);
                    if (!Enumerable.Contains(_champsNoEnergy, enemy.Unit.ChampionName) && enemy.Unit.MaxMana > 0)
                    {
                        resWidth = (float)Math.Ceiling(HealthWidth * _scale) / enemy.Unit.MaxMana * enemy.Unit.Mana;
                    }
                    _line7.Draw(
                        new[] { resStart, new Vector2(resStart.X + resWidth, resStart.Y) },
                        Enumerable.Contains(_champsEnergy, enemy.Unit.ChampionName)
                            ? Color.Yellow
                            : (Enumerable.Contains(_champsRage, enemy.Unit.ChampionName)
                                ? Color.DarkRed
                                : (Enumerable.Contains(_champsNoEnergy, enemy.Unit.ChampionName) ||
                                   enemy.Unit.MaxMana <= 0
                                    ? new Color(255, 255, 255, 75)
                                    : Color.Blue)));
                    _line7.End();

                    if (enemy.Unit.IsDead)
                    {
                        _line17.Begin();
                        _line17.Draw(
                            new[]
                        {
                            new Vector2(offsetRight - hudWidth * 0.36f, offsetTop + hudHeight * 0.338f + offset),
                            new Vector2(
                                offsetRight - hudWidth * 0.36f + (float)Math.Ceiling(HealthWidth * _scale),
                                offsetTop + hudHeight * 0.335f + offset)
                        }, Color.Black);
                        _line17.End();

                        _text18.DrawTextCentered(
                            ((int)(enemy.DeathEndTime - Game.Time)).ToStringLookUp(),
                            new Vector2(offsetRight + hudWidth * 0.07f, offsetTop + hudHeight * 0.335f + offset),
                            Color.DarkRed);
                    }

                    if (!enemy.Unit.IsVisible || enemy.Unit.IsDead)
                    {
                        _sprite.Begin(SpriteFlags.AlphaBlend);
                        _sprite.DrawCentered(
                            _invisibleTexture,
                            new Vector2(offsetRight - hudWidth * 0.09f, offsetTop - hudHeight * 0.12f + offset));
                        _sprite.End();
                    }
                    if (!enemy.Unit.IsDead && !enemy.LastPosition.Equals(Vector3.Zero) &&
                        enemy.LastPosition.Distance(enemy.Unit.Position) > 500)
                    {
                        enemy.LastVisible = Game.Time;
                    }
                    enemy.LastPosition = enemy.Unit.Position;
                    if (enemy.Unit.IsVisible || enemy.Unit.IsDead)
                    {
                        enemy.LastVisible = Game.Time;
                    }

                    if (!enemy.Unit.IsVisible && !enemy.Unit.IsDead && Game.Time - enemy.LastVisible > 3)
                    {
                        _text18.DrawTextCentered(
                            ((int)(Game.Time - enemy.LastVisible)).ToStringLookUp(),
                            new Vector2(offsetRight - hudWidth * 0.07f, offsetTop - hudHeight * 0.15f + offset),
                            new Color(255, 255, 255, 215));
                    }

                    if (enemy.TeleportStatus == Packet.S2C.Teleport.Status.Start ||
                        (enemy.TeleportStatus == Packet.S2C.Teleport.Status.Finish ||
                         enemy.TeleportStatus == Packet.S2C.Teleport.Status.Abort) &&
                        Game.Time <= enemy.LastTeleportStatusTime + 5f)
                    {
                        _sprite.Begin(SpriteFlags.AlphaBlend);
                        _sprite.DrawCentered(
                            enemy.TeleportStatus == Packet.S2C.Teleport.Status.Start
                                ? _teleportStartTexture
                                : (enemy.TeleportStatus == Packet.S2C.Teleport.Status.Finish
                                    ? _teleportFinishTexture
                                    : _teleportAbortTexture),
                            new Vector2(offsetRight + (float)Math.Ceiling(3 * _scale), offsetTop + offset));
                        _sprite.End();
                    }

                    index++;
                }
            }
            catch (Exception ex)
            {
                Global.Logger.AddItem(new LogItem(ex));
            }
        }
Ejemplo n.º 17
0
        public static Spell.SpellBase GetTargettedSpell(Summoners summoner)
        {
            SpellSlot slot;

            switch (summoner)
            {
                case Summoners.Exhaust:
                    slot = Player.Instance.GetSpellSlotFromName("summonerexhaust");

                    if (slot != SpellSlot.Unknown) return new Spell.Targeted(slot, 650);

                    return null;

                case Summoners.Smite:
                    var spell = Player.Instance.Spellbook.Spells.FirstOrDefault(it => it.Name.Contains("summoner") && it.Name.Contains("smite"));

                    if (spell != null) return new Spell.Targeted(spell.Slot, 500);

                    return null;

                case Summoners.Ignite:
                    slot = Player.Instance.GetSpellSlotFromName("summonerdot");

                    if (slot != SpellSlot.Unknown) return new Spell.Targeted(slot, 600);

                    return null;

                default:
                    return null;
            }
        }
Ejemplo n.º 18
0
        public async Task <IHttpActionResult> Validate(SummonerModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                // Summoner MUST exist.
                var riotSummoner = await Riot.FindSummonerAsync(model.Region, model.SummonerName);

                var user = await Users.GetUserAsync();

                if (riotSummoner == null)
                {
                    return(Conflict("Summoner not found."));
                }

                // Summoner MUST NOT be registered.
                if (await Summoners.IsSummonerRegistered(model.Region, model.SummonerName))
                {
                    return(Conflict("Summoner is already registered."));
                }

                var runePages = await Riot.GetRunePagesAsync(model.Region, riotSummoner.Id);

                var code = RegistrationCode.Generate(user.Name, riotSummoner.Id, model.Region);

                if (!runePages.Any(page => string.Equals(page.Name, code, StringComparison.InvariantCultureIgnoreCase)))
                {
                    return(StatusCode(HttpStatusCode.ExpectationFailed));
                }

                // Create the data entity and associate it with the current user
                var currentSummoner =
                    await Summoners.AddSummonerAsync(user, riotSummoner.Id, model.Region, riotSummoner.Name);

                // If the user doesn't have an active summoner, assign the new summoner as active.
                if (await Summoners.GetActiveSummonerAsync(user) == null)
                {
                    await Summoners.SetActiveSummonerAsync(currentSummoner);
                }

                // Queue up the league update.
                var jobId = BackgroundJob.Enqueue <LeagueUpdateJob>(job => job.Execute(currentSummoner.Id));
                // Queue up flair update.
                BackgroundJob.ContinueWith <FlairUpdateJob>(jobId, job => job.Execute(user.Id));
                return(Ok());
            }
            catch (RiotHttpException e)
            {
                switch ((int)e.StatusCode)
                {
                case 500:
                case 503:
                    return(Conflict("Error communicating with Riot (Service unavailable)"));
                }
                throw;
            }
        }
Ejemplo n.º 19
0
        private static void OnGameLoad(EventArgs args)
        {
            Game.OnGameUpdate += Game_OnGameUpdate;

            ChampionName = Me.ChampionName;
            Origin       = new Menu("花边-神谕", "oracle", true);

            Cleansers.Initialize(Origin);
            Defensives.Initialize(Origin);
            Summoners.Initialize(Origin);
            Offensives.Initialize(Origin);
            Consumables.Initialize(Origin);
            AutoSpells.Initialize(Origin);

            var Config     = new Menu("额外 设置", "oracleconfig");
            var DangerMenu = new Menu("危险 配置", "dangerconfig");

            foreach (var i in ObjectManager.Get <Obj_AI_Hero>().Where(hero => hero.Team != Me.Team))
            {
                var menu = new Menu(i.SkinName, i.SkinName + "cccmenu");
                foreach (
                    var spell in
                    TargetSpellDatabase.Spells.Where(spell => spell.ChampionName == i.ChampionName.ToLower()))
                {
                    var danger = spell.Spellslot.ToString() == "R" ||
                                 spell.CcType != CcType.No && (spell.Type == SpellType.Skillshot || spell.Type == SpellType.Targeted);

                    menu.AddItem(new MenuItem(spell.Name + "ccc", spell.Name + " | " + spell.Spellslot)).SetValue(danger);
                }

                DangerMenu.AddSubMenu(menu);
            }

            Config.AddSubMenu(DangerMenu);

            var CleanseMenu = new Menu("净化 状态", "cdebufs");

            CleanseMenu.AddItem(new MenuItem("stun", "眩晕")).SetValue(true);
            CleanseMenu.AddItem(new MenuItem("charm", "魅惑")).SetValue(true);
            CleanseMenu.AddItem(new MenuItem("taunt", "嘲讽")).SetValue(true);
            CleanseMenu.AddItem(new MenuItem("fear", "恐惧")).SetValue(true);
            CleanseMenu.AddItem(new MenuItem("snare", "陷阱")).SetValue(true);
            CleanseMenu.AddItem(new MenuItem("silence", "沉默")).SetValue(true);
            CleanseMenu.AddItem(new MenuItem("suppression", "虚弱")).SetValue(true);
            CleanseMenu.AddItem(new MenuItem("polymorph", "变形")).SetValue(true);
            CleanseMenu.AddItem(new MenuItem("blind", "致盲")).SetValue(false);
            CleanseMenu.AddItem(new MenuItem("slow", "减速")).SetValue(false);
            CleanseMenu.AddItem(new MenuItem("poison", "制毒")).SetValue(false);
            Config.AddSubMenu(CleanseMenu);

            var DebugMenu = new Menu("调试选项", "debugmenu");

            DebugMenu.AddItem(new MenuItem("dbool", "启用活化剂调试")).SetValue(false);
            Config.AddSubMenu(DebugMenu);

            Origin.AddSubMenu(Config);

            Origin.AddItem(
                new MenuItem("ComboKey", "连招 (启用)")
                .SetValue(new KeyBind(32, KeyBindType.Press)));

            Origin.AddToMainMenu();

            // Events
            GameObject.OnCreate            += GameObject_OnCreate;
            Obj_AI_Base.OnProcessSpellCast += Obj_AI_Base_OnProcessSpellCast;

            Game.PrintChat("<font color=\"#1FFF8F\">花边-神谕 加载成功!</font>");
        }