예제 #1
0
        //普攻, 那只能对敌人使用
        public override AffectDectectResult CanAffectOnTarget(IGameplayAbilityUnit target)
        {
            AffectDectectResult result = base.CanAffectOnTarget(target);

            if (result != AffectDectectResult.Success)
            {
                return(result);
            }

            return(AffectDectectResult.Success);
        }
예제 #2
0
        /// <summary>
        /// 对指定的地点施法
        /// 注意是, localPos的位置
        /// </summary>
        public AffectDectectResult TryActivateAbility(Vector3 localPosition)
        {
            AffectDectectResult result = CanAffectOnTarget(localPosition);

            if (result != AffectDectectResult.Success)
            {
                ReportNotReady();
                return(result);
            }

            m_targetLocalPosition = localPosition;
            Activate();
            return(result);
        }
예제 #3
0
        /// <summary>
        /// 对传入的目标施法
        /// </summary>
        public AffectDectectResult TryActivateAbility(IGameplayAbilityUnit target)
        {
            AffectDectectResult result = CanAffectOnTarget(target);

            if (result != AffectDectectResult.Success)
            {
                ReportNotReady();
                return(result);
            }

            m_target = target;
            Activate();

            return(result);
        }
예제 #4
0
        public override AffectDectectResult CanAffectOnTarget(IGameplayAbilityUnit target)
        {
            AffectDectectResult result = base.CanAffectOnTarget(target);

            if (result != AffectDectectResult.Success)
            {
                return(result);
            }

            if (m_meta.Range > 0)
            {
                float dist = m_owner.GetSquaredXZDistanceTo_NoRadius(target);
                if (dist > (m_meta.Range * m_meta.Range))
                {
                    return(AffectDectectResult.OutOfRange);
                }
            }

            return(AffectDectectResult.Success);
        }
예제 #5
0
        public override AffectDectectResult CanAffectOnTarget(Vector3 target)
        {
            AffectDectectResult result = base.CanAffectOnTarget(target);

            if (result != AffectDectectResult.Success)
            {
                return(result);
            }

            if (m_meta.Range > 0)
            {
                //技能不考虑自己和对方的半径, 否则在AI阶段如果是以
                //CanAffectOnTarget(CController target)为考量, 这样考虑到了对方的半径
                //但具体技能是以地点为目标, 使用的是CanAffectOnTarget(Vector3 target)
                //也就是说没有考虑对方的半径. 这样会造成结果不统一
                float dist = m_owner.GetSquaredXZDistanceTo_NoRadius(target);
                if (dist > m_meta.Range * m_meta.Range)
                {
                    return(AffectDectectResult.OutOfRange);
                }
            }

            return(AffectDectectResult.Success);
        }