예제 #1
0
 private void FindNearTarget(EffectLinkBranch go)
 {
     if (mLinks.Count < mBounceAmount)
     {
         FindNearbyTarget(go);
     }
 }
예제 #2
0
 private void GetNextLink(EffectLinkBranch go)
 {
     mCurMonsters.Clear();
     mCurMonsters.Add(go.mHitTargetCs.gameObject);
     Hit(mCurMonsters);
     FindNearTarget(go);
 }
예제 #3
0
 private void DestoryMe(EffectLinkBranch go)
 {
     if (mLinks.LastIndexOf(go) == mLinks.Count - 1)
     {
         for (int i = 0; i < mLinks.Count; i++)
         {
             Destroy(mLinks[i].gameObject);
         }
     }
 }
예제 #4
0
    private void FindNearbyTarget(EffectLinkBranch go)
    {
        List <GameObject> mAllTarget = GetTargetByCondition(CheckNearbyHitCondition, distance, go.mHitTargetCs.transform);
        GameObject        target     = null;

        if (mAllTarget != null && mAllTarget.Count > 0)
        {
            mAllTarget.Sort((a, b) =>
            {
                float aDir = Vector3.Distance(go.mHitTargetCs.transform.position, a.transform.position);
                float bDir = Vector3.Distance(go.mHitTargetCs.transform.position, b.transform.position);
                return(Mathf.FloorToInt(aDir - bDir));
            });
            target = mAllTarget[0];
        }
        if (target != null)
        {
            AddEffectLinkBranch(go, target);
        }
    }
예제 #5
0
    private void AddEffectLinkBranch(EffectLinkBranch go, GameObject target)
    {
        EffectLinkBranch linkBranch;

        if (mLinks.Count == 0)
        {
            linkBranch             = gameObject.AddComponent <EffectLinkBranch>();
            linkBranch.destoryTime = destoryTime;
            linkBranch.Init(mCurSkillNode, mHitTargetCs.gameObject, attackerTrans, null);
            mAllMonsters.Add(mHitTargetCs.gameObject);
        }
        else
        {
            linkBranch = NGUITools.AddChild(transform.parent.gameObject, go.gameObject).GetComponent <EffectLinkBranch>();
            EffectLink link = linkBranch.GetComponent <EffectLink>();
            Destroy(link);
            linkBranch.destoryTime = destoryTime;
            linkBranch.Init(mCurSkillNode, target, go.mHitTargetCs.transform, null);
            mAllMonsters.Add(target);
        }
        linkBranch.mNextLink    = GetNextLink;
        linkBranch.mLastDestory = DestoryMe;
        mLinks.Add(linkBranch);
    }