Beispiel #1
0
        private static void SC2TimerDetector(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            try
            {
                if (!sender.IsValid)
                    return;

                var check = Program.SC2TimerList.FirstOrDefault(d => d.Caster == sender && d.ChampionName == sender.BaseSkinName && d.Slot == args.Slot);

                if (check != null)
                {
                    var cooldown = (sender.Spellbook.GetSpell(args.Slot).CooldownExpires - Game.Time) * 1000f;

                    check.FullTime = cooldown;
                    check.StartTime = Utility.TickCount;
                    check.StartTime = Utility.TickCount;
                    check.EndTime = cooldown + Utility.TickCount;

                    return;
                }

                var database = SC2TimerDatabase.Database.FirstOrDefault(d =>
                ((d.SC2Type == SC2Type.SummonerSpell && d.Name == args.SData.Name) ||
                (d.SC2Type == SC2Type.Spell && d.ChampionName == sender.BaseSkinName && d.Slot == args.Slot)));

                if (database != null)
                {
                    var cooldown = (sender.Spellbook.GetSpell(args.Slot).CooldownExpires - Game.Time) * 1000f;

                    Program.SC2TimerList.Add(new SC2Timer
                    {
                        SC2Type = database.SC2Type,
                        Slot = args.Slot,
                        Team = sender.GetTeam(),
                        Caster = sender,
                        ChampionName = sender.BaseSkinName,
                        Name = args.SData.Name,
                        MenuCode = database.GetMenuCode(),
                        DisplayName = database.GetDisplayName(),
                        FullTime = cooldown,
                        StartTime = Utility.TickCount,
                        EndTime = cooldown + Utility.TickCount,
                        Cancel = false,
                        Global = database.Global,
                        SpriteName = database.SpriteName,
                    });

                    return;
                }
            }
            catch (Exception e)
            {
                e.ErrorMessage("SC2TIMER_DETECTOR", args.SData.Name);
            }
        }