Beispiel #1
0
 private void Game_ProcessSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (enabled)
     {
         Obj_AI_Hero target = args.Target as Obj_AI_Hero;
         if (target != null && target.Team != sender.Team)
         {
             if (sender.IsValid && !sender.IsDead)
             {
                 var data =
                     IncomingDamagesAlly.Concat(IncomingDamagesEnemy)
                     .FirstOrDefault(i => i.Hero.NetworkId == target.NetworkId);
                 if (data != null)
                 {
                     var missileSpeed = (sender.Distance(target) / args.SData.MissileSpeed) +
                                        args.SData.SpellCastTime;
                     missileSpeed = missileSpeed > 1f ? 0.8f : missileSpeed;
                     if (Orbwalking.IsAutoAttack(args.SData.Name))
                     {
                         var dmg =
                             (float)(sender.GetAutoAttackDamage(target, true) + ItemHandler.GetSheenDmg(target));
                         data.Damages.Add(
                             new Dmg(target, dmg, missileSpeed, !sender.Name.ToLower().Contains("turret")));
                     }
                     else
                     {
                         var hero = sender as Obj_AI_Hero;
                         if (hero != null &&
                             !CombatHelper.BuffsList.Any(
                                 b => args.Slot == b.Slot && hero.ChampionName == b.ChampionName))
                         {
                             data.Damages.Add(
                                 new Dmg(
                                     target,
                                     (float)Damage.GetSpellDamage(hero, (Obj_AI_Base)args.Target, args.Slot),
                                     missileSpeed, false,
                                     SpellDatabase.CcList.Any(
                                         cc =>
                                         cc.Slot == args.Slot &&
                                         cc.Champion.ChampionName == hero.ChampionName)));
                         }
                     }
                 }
             }
         }
     }
 }
Beispiel #2
0
 private void Game_ProcessSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (enabled)
     {
         Obj_AI_Hero target = args.Target as Obj_AI_Hero;
         if (target != null && target.Team != sender.Team)
         {
             if (sender.IsValid && !sender.IsDead)
             {
                 var data =
                     IncomingDamagesAlly.Concat(IncomingDamagesEnemy)
                     .FirstOrDefault(i => i.Hero.NetworkId == target.NetworkId);
                 if (data != null)
                 {
                     var missileSpeed = sender.Distance(target) / args.SData.MissileSpeed;
                     missileSpeed = missileSpeed > 1f ? 0.8f : missileSpeed;
                     if (Orbwalking.IsAutoAttack(args.SData.Name))
                     {
                         var dmg = (float)sender.GetAutoAttackDamage(target, true);
                         data.Damages.Add(new Dmg(dmg, missileSpeed));
                         data.DamageCount++;
                     }
                     else
                     {
                         var hero = sender as Obj_AI_Hero;
                         if (hero != null)
                         {
                             data.Damages.Add(
                                 new Dmg(
                                     (float)Damage.GetSpellDamage(hero, (Obj_AI_Base)args.Target, args.Slot),
                                     missileSpeed));
                             data.DamageCount++;
                         }
                     }
                     if (sender is Obj_AI_Hero && target != null && target.IsAlly && !target.IsMe &&
                         CombatHelper.isTargetedCC(args.SData.Name, true) && args.SData.Name != "NasusW")
                     {
                         data.TargetedCC = true;
                     }
                 }
             }
             //Debug();
         }
     }
 }