private static void Obj_AI_Base_OnProcessAutoAttack(Obj_AI_Base sender, Obj_AI_BaseMissileClientDataEventArgs e) { //Ignore auto attacks happening too far away if (sender == null || !sender.IsValidTarget(4000, true) || sender is Obj_AI_Hero) { return; } //Only process for minion targets var targetM = e.Target as Obj_AI_Minion; if (targetM == null) { return; } AutoAttack attack; if (sender.IsMelee) { attack = new MeleeAttack(sender, targetM, 0); } else { attack = new RangedAttack(sender, targetM, 0); } Attacks.AddAttack(attack); }
private void GameObject_OnCreate(GameObject gsender) { var mc = gsender as MissileClient; if (mc == null || !mc.IsValid) { return; } var sender = mc.SpellCaster; var target = mc.Target; var targetBase = target as Obj_AI_Base; if (sender == null || targetBase == null || !sender.IsValid || !target.IsValid || target.IsDead || sender.IsDead || sender.IsMe || sender.Distance(ObjectManager.GetLocalPlayer()) > 4000) { return; } var attack = new RangedAttack(sender, targetBase, mc, 0); Attacks.AddAttack(attack); }