private void Game_OnGameUpdate(EventArgs args) { if (!IsActive() || _ult == null || ObjectManager.Player.Spellbook.GetSpell(_ult.SpellSlot).State != SpellState.Ready) { return; } var tempDamages = new Dictionary <Obj_AI_Hero, List <ActivatorOld.IncomingDamage> >(ActivatorOld.Damages); foreach (var damage in tempDamages) { if (ActivatorOld.CalcMaxDamage(damage.Key) > damage.Key.Health && (damage.Key.Distance(ObjectManager.Player.ServerPosition) < _ult.Range)) { if (!AutoUltActivator.GetMenuItem("SAssembliesActivatorsAutoUltAlly").GetValue <bool>() && damage.Key.NetworkId != ObjectManager.Player.NetworkId) { continue; } if (_ult.Target) { Packet.C2S.Cast.Encoded(new Packet.C2S.Cast.Struct(damage.Key.NetworkId, _ult.SpellSlot)).Send(); return; } if (damage.Key.NetworkId == ObjectManager.Player.NetworkId) { Packet.C2S.Cast.Encoded(new Packet.C2S.Cast.Struct(damage.Key.NetworkId, _ult.SpellSlot)).Send(); return; } } } }
void Update() { if (!activating) { //we're not currently using an activator, so actively search for a new one and listen to start activating. ray = new Ray(head.position, head.forward); if (Physics.Raycast(ray, out hit, range)) { activator = (ActivatorOld)hit.transform.GetComponent(typeof(ActivatorOld)); if (activator != null && Input.GetMouseButtonDown(1)) { activating = activator.Activate(gameObject, this); //started a new activator } else if (delayed != null && Input.GetMouseButtonDown(1)) { activating = delayed(gameObject, this); //we have a delayed action, so do it now delayed = null; //reset the delayed action } } } else if (!activator.ActiveUpdate(gameObject)) { //we've just stopped activating activating = false; activator.Deactivate(gameObject); } }
private void Game_OnGameUpdate(EventArgs args) { if (!IsActive() || _qss == null || ObjectManager.Player.Spellbook.GetSpell(_qss.SpellSlot).State != SpellState.Ready) { return; } CreateBuffList(); List <BuffInstance> buffList = ActivatorOld.GetActiveCcBuffs(_buffs); if (buffList.Count() >= AutoQSSActivator.GetMenuItem("SAssembliesActivatorsAutoQSSMinSpells") .GetValue <Slider>() .Value) { Packet.C2S.Cast.Encoded(new Packet.C2S.Cast.Struct(ObjectManager.Player.NetworkId, _qss.SpellSlot)).Send(); } if (ObjectManager.Player.HasBuffOfType(BuffType.Slow)) { Packet.C2S.Cast.Encoded(new Packet.C2S.Cast.Struct(ObjectManager.Player.NetworkId, _qss.SpellSlot)).Send(); } }
private void Game_OnGameUpdate(EventArgs args) { if (!IsActive() || _shield == null) { return; } var tempDamages = new Dictionary <Obj_AI_Hero, List <ActivatorOld.IncomingDamage> >(ActivatorOld.Damages); foreach (var damage in ActivatorOld.Damages) { Obj_AI_Hero hero = damage.Key; if (!AutoShieldActivator.GetMenuItem("SAssembliesActivatorsAutoShieldAlly").GetValue <bool>()) { if (hero.NetworkId != ObjectManager.Player.NetworkId) { continue; } } foreach (ActivatorOld.IncomingDamage tDamage in tempDamages[hero].ToArray()) { foreach (Database.Spell spell in Database.GetSpellList()) { if (_shield.OnlyAA && !IsAutoAttack(tDamage.SpellName)) { tempDamages[hero].Remove(tDamage); continue; } if (spell.Name.Contains(tDamage.SpellName)) { if (_shield.OnlyMagic) { if ( !IsDamageType((Obj_AI_Hero)tDamage.Source, tDamage.SpellName, Damage.DamageType.Magical)) { tempDamages[hero].Remove(tDamage); continue; } if ( AutoShieldActivator.GetMenuItem("SAssembliesActivatorsAutoShieldBlockCC") .GetValue <bool>() && !ContainsCc(tDamage.SpellName)) { tempDamages[hero].Remove(tDamage); continue; } } if (!CheckDamagelevel(tDamage.SpellName) && !_shield.OnlyMagic) { tempDamages[hero].Remove(tDamage); continue; } } if (!AutoShieldActivator.GetMenuItem("SAssembliesActivatorsAutoShieldBlockAA") .GetValue <bool>() && IsAutoAttack(tDamage.SpellName)) { tempDamages[hero].Remove(tDamage); continue; } if (AutoShieldActivator.GetMenuItem("SAssembliesActivatorsAutoShieldBlockableSpellsActive") .GetValue <bool>()) { foreach (var blockableSpell in GetBlockableSpells()) { if (AutoShieldActivatorBlockableSpells.GetMenuItem("SAssembliesActivatorsAutoShieldBlockableSpells" + spell) == null || !AutoShieldActivatorBlockableSpells.GetMenuItem("SAssembliesActivatorsAutoShieldBlockableSpells" + spell) .GetValue <bool>()) { tempDamages[hero].Remove(tDamage); continue; } } } } } } foreach (var damage in tempDamages) { //Vector2 d2 = Drawing.WorldToScreen(damage.Key.ServerPosition); //Drawing.DrawText(d2.X, d2.Y, System.Drawing.Color.Aquamarine, ActivatorOld.CalcMaxDamage(damage.Key).ToString()); if (ActivatorOld.CalcMaxDamage(damage.Key) > AutoShieldActivator.GetMenuItem("SAssembliesActivatorsAutoShieldBlockMinDamageAmount") .GetValue <Slider>().Value&& (_shield.OnlySelf || damage.Key.Distance(ObjectManager.Player.ServerPosition) < _shield.Spell.Range)) { if (!_shield.Spell.IsReady()) { break; } if (_shield.Skillshot) { PredictionOutput predOutput = _shield.Spell.GetPrediction(damage.Key); if (predOutput.Hitchance > HitChance.Medium) { Packet.C2S.Cast.Encoded(new Packet.C2S.Cast.Struct(0, _shield.Spell.Slot, -1, predOutput.CastPosition.X, predOutput.CastPosition.Y, predOutput.CastPosition.X, predOutput.CastPosition.Y)).Send(); } ObjectManager.Player.Spellbook.CastSpell(_shield.Spell.Slot, predOutput.CastPosition); break; } if (_shield.OnlySelf && damage.Key.NetworkId == ObjectManager.Player.NetworkId) { Packet.C2S.Cast.Encoded(new Packet.C2S.Cast.Struct(damage.Key.NetworkId, _shield.Spell.Slot)).Send(); break; } if (_shield.Instant) { Packet.C2S.Cast.Encoded(new Packet.C2S.Cast.Struct(damage.Key.NetworkId, _shield.Spell.Slot)).Send(); break; } } } }