private void ObjAiBase_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!IsActive()) { return; } var mode = Menu.InvisibleRevealer.GetMenuItem("SAwarenessInvisibleRevealerMode") .GetValue <StringList>(); if (sender.IsEnemy && sender.IsValid && !sender.IsDead) { if (args.SData.Name.ToLower().Contains("vayneinquisition")) { _lastTimeVayne = Environment.TickCount + 6000 + 2000 * args.Level; } if (mode.SelectedIndex == 0 && Menu.InvisibleRevealer.GetMenuItem("SAwarenessInvisibleRevealerKey").GetValue <KeyBind>().Active || mode.SelectedIndex == 1) { if (_spellList.Exists(x => x.ToLower().Contains(args.SData.Name.ToLower()))) { if (_lastTimeWarded == 0 || Environment.TickCount - _lastTimeWarded > 500) { Wards.WardItem wardItem = Wards.WardItems.First( x => Items.HasItem(x.Id) && Items.CanUseItem(x.Id) && (x.Type == Wards.WardType.Vision || x.Type == Wards.WardType.TempVision)); if (wardItem == null) { return; } if (sender.ServerPosition.Distance(ObjectManager.Player.ServerPosition) > wardItem.Range) { return; } InventorySlot invSlot = ObjectManager.Player.InventoryItems.FirstOrDefault( slot => slot.Id == (ItemId)wardItem.Id); if (invSlot == null) { return; } if (args.SData.Name.ToLower().Contains("vaynetumble") && Environment.TickCount >= _lastTimeVayne) { return; } invSlot.UseItem(args.End); _lastTimeWarded = Environment.TickCount; } } } } }
private void Game_OnGameUpdate(EventArgs args) { if (!IsActive()) { return; } int time = Environment.TickCount; foreach (PlayerInfo playerInfo in _playerInfo.Where(x => x.Player.IsVisible)) { playerInfo.LastSeen = time; } Wards.WardItem ward = Wards.GetWardItem(); if (ward == null) { return; } if (Menu.BushRevealer.GetMenuItem("SAwarenessBushRevealerKey").GetValue <KeyBind>().Active) { foreach (Obj_AI_Hero enemy in _playerInfo.Where(x => x.Player.IsValid && !x.Player.IsVisible && !x.Player.IsDead && x.Player.Distance(ObjectManager.Player.ServerPosition) < 1000 && //check real ward range later time - x.LastSeen < 2500).Select(x => x.Player)) { Vector3 bestWardPos = GetWardPos(enemy.ServerPosition, 165, 2); if (bestWardPos != enemy.ServerPosition && bestWardPos != Vector3.Zero && bestWardPos.Distance(ObjectManager.Player.ServerPosition) < ward.Range) { if (_lastTimeWarded == 0 || Environment.TickCount - _lastTimeWarded > 500) { InventorySlot wardSlot = Wards.GetWardSlot(); if (wardSlot != null && wardSlot.Id != ItemId.Unknown) { wardSlot.UseItem(bestWardPos); _lastTimeWarded = Environment.TickCount; } } } } } }
public ExpandedWardItem(Wards.WardItem ward, int stacks, int charges) : base(ward.Id, ward.Name, ward.SpellName, ward.Range, ward.Duration, ward.Type) { Stacks = stacks; Charges = charges; }