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)));
        }