protected virtual bool ShouldFuriousChargeInCombat(out Vector3 position) { position = Target.Position; if (Targeting.HealthGlobeExists(55f)) { position = Targeting.GetBestHealthGlobeClusterPoint(7f, 55f, false); Core.Logger.Error(LogCategory.Routine, $"[FuriousCharge] - On Closest Health Globe: [{position.Distance(Player.Position)}]."); return(true); } if (!Skills.Barbarian.FuriousCharge.CanCast() || Skills.Barbarian.FuriousCharge.TimeSinceUse < 500 && Player.PrimaryResourcePct > 0.85 && Skills.Barbarian.AncientSpear.CanCast()) { return(false); } Core.Logger.Error(LogCategory.Routine, $" [FuriousCharge] - On Best Cluster Target Distance: [{position.Distance(Player.Position)}]."); return(true); }
public TrinityPower OffensivePower() { Target = Targeting.BestAoeUnit(); if (Target == null) { return(null); } Vector3 position; if (ShouldIgnorePain()) { return(Spells.IgnorePain()); } if (ShouldWarCry()) { return(Spells.WarCry()); } if (ShouldThreateningShout()) { return(Spells.ThreateningShout()); } if (ShouldFuriousChargeInCombat(out position)) { return(Spells.FuriousCharge(position)); } if (ShouldAncientSpear(out Target)) { return(Spells.AncientSpear(Target)); } return(Walk(Targeting.HealthGlobeExists(25f) ? Targeting.GetBestHealthGlobeClusterPoint(10f, 25f) : TargetUtil.GetLoiterPosition(TargetUtil.GetBestClusterUnit(), 10f))); }
public TrinityPower GetDefensivePower() { var position = Targeting.HealthGlobeExists(35f) ? Targeting.GetBestHealthGlobeClusterPoint(35f) : Targeting.GetLoiterPosition(Targeting.ClosestUnit(35f), 35f); return(Spells.FuriousCharge(position)); }