public TrinityPower GetOffensivePower() { var position = Vector3.Zero; TrinityActor target; if (IsArchonActive) { target = TargetUtil.SafeList(true) .FirstOrDefault(a => a.IsBoss && !a.IsShadowClone && a.Distance < 125f) ?? TargetUtil.SafeList(true) .Where(a => a.IsElite && a.EliteType != EliteTypes.Minion && !a.IsIllusion && a.Distance < 125f) .OrderBy(a => a.NearbyUnitsWithinDistance(6f)) .FirstOrDefault() ?? TargetUtil.SafeList(true) .Where(a => a.IsTrashMob && a.IsInLineOfSight && !a.IsSummoner && !a.IsSummoned && a.Distance < 50f) .OrderByDescending(a => a.NearbyUnitsWithinDistance(6f)) .FirstOrDefault() ?? CurrentTarget; } else { target = TargetUtil.SafeList(true) .FirstOrDefault(a => a.IsBoss && !a.IsShadowClone && a.Distance < 125f) ?? TargetUtil.SafeList(true) .Where(a => a.IsMonster && a.Distance < 50f && a.IsInLineOfSight) .OrderBy(a => a.Distance) .FirstOrDefault(a => TrinityGrid.Instance.CanRayWalk(Player.Position, a.Position)) ?? CurrentTarget; } if (target == null) { return(null); } if (position != Vector3.Zero) { return(Teleport(position)); } Skill teleport = Skills.Wizard.Teleport; if (Skills.Wizard.ArchonTeleport.CanCast() || Skills.Wizard.Teleport.CanCast()) { teleport = IsArchonActive ? Skills.Wizard.ArchonTeleport : Skills.Wizard.Teleport; var needTeleport = !Core.Buffs.HasInvulnerableShrine && Core.Avoidance.InAvoidance(Player.Position) || !Core.Buffs.HasInvulnerableShrine && Player.CurrentHealthPct < 1 && teleport.TimeSinceUse > 1500 || TargetUtil.AnyElitesInRange(15) && teleport.TimeSinceUse > 2000 || TargetUtil.AnyBossesInRange(30) || TargetUtil.NumMobsInRange() > 3 || teleport.TimeSinceUse > 3000; if (needTeleport) { if (position == Vector3.Zero) { Core.Avoidance.Avoider.TryGetSafeSpot(out position, 30, 45); } return(Teleport(position)); } } if (IsArchonActive) { return(ArchonDisintegrationWave(target)); } if (Skills.Wizard.Archon.CanCast() && TalRashaStacks >= 3 && Player.Summons.HydraCount >= 2) { return(Archon()); } var hydra = Skills.Wizard.Hydra; var rayOfFrost = Skills.Wizard.RayOfFrost; var elite = TargetUtil.SafeList(true) .Where(a => a.IsElite && a.IsInLineOfSight && a.EliteType != EliteTypes.Minion && !a.IsIllusion && a.Distance < 50f) .OrderByDescending(a => a.Distance) .FirstOrDefault(); if (Skills.Wizard.Archon.CanCast() && TalRashaStacks < 3) { if (Player.Summons.HydraCount < 2 || hydra.TimeSinceUse > 6000) { return(Hydra(elite?.Position ?? target.Position)); } if (rayOfFrost.TimeSinceUse > 6000) { return(RayOfFrost(target)); } if (teleport.TimeSinceUse > 6000 && Core.Avoidance.Avoider.TryGetSafeSpot(out position, 20, 50)) { return(Teleport(position)); } } if (Skills.Wizard.Hydra.CanCast() && Player.Summons.HydraCount < 2 && IsInCombat) { return(new TrinityPower(Skills.Wizard.Hydra, 50, elite ?? target)); } if (Skills.Wizard.RayOfFrost.CanCast() && Player.PrimaryResource > 15) { return(RayOfFrost(target)); } return(Walk(Player.Position)); }