private static async Task CastAuras(IEnumerable <Skill> auras) { int slotForHidden = AllAuras.First(a => a.IsOnSkillBar).Slot; foreach (var aura in auras.OrderByDescending(a => a.Slot)) { if (SkillBlacklist.IsBlacklisted(aura)) { continue; } if (aura.Slot == -1) { await SetAuraToSlot(aura, slotForHidden); } await ApplyAura(aura); } }
public async Task <bool> Run() { var area = World.CurrentArea; if (!area.IsHideoutArea && !area.IsMapRoom) { return(false); } await Coroutines.CloseBlockingWindows(); var golemSkill = SkillBar.Skills.FirstOrDefault(s => s.IsOnSkillBar && s.SkillTags.Contains("golem")); if (golemSkill != null) { var golemObj = golemSkill.DeployedObjects.FirstOrDefault() as Monster; if (golemObj == null || golemObj.HealthPercent < MinGolemHpPercent) { GlobalLog.Debug($"[CastAuraTask] Now summoning \"{golemSkill.Name}\"."); SkillBar.Use(golemSkill.Slot, false); await Wait.SleepSafe(100); await Coroutines.FinishCurrentAction(); await Wait.SleepSafe(100); } } var auras = GetAurasForCast(); if (auras.Count > 0 && AllAuras.Any(a => a.IsOnSkillBar)) { GlobalLog.Info($"[CastAuraTask] Found {auras.Count} aura(s) for casting."); await CastAuras(auras); } return(false); }