Пример #1
0
        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)));
        }
Пример #3
0
        public TrinityPower GetDefensivePower()
        {
            var position = Targeting.HealthGlobeExists(35f) ? Targeting.GetBestHealthGlobeClusterPoint(35f) : Targeting.GetLoiterPosition(Targeting.ClosestUnit(35f), 35f);

            return(Spells.FuriousCharge(position));
        }