Exemple #1
0
    public IEnumerator DelaySkill()
    {
        yield return(new WaitForSeconds(0.1f));

        string[] strActiveTypes = activeSkill.m_strSkillType.Split(',');


        while (m_fTime > 0)
        {
            yield return(new WaitForSeconds(1.0f));

            if (activeSkill.m_strAttackPriority == "enemy")
            {
                TargetList = characterManager.FindEnemyDistanceArea(transform.position, activeSkill.m_fAttackRange, Skiller_Type);
            }

            else
            {
                TargetList = characterManager.FindFriendDistanceArea(transform.position, activeSkill.m_fAttackRange, Skiller_Type);
            }

            m_fTime -= 1.0f;

            for (int nIndex = 0; nIndex < strActiveTypes.Length; nIndex++)
            {
                AllActiveSkillType skillData = GameManager.Instance.cAllActiveType [int.Parse(strActiveTypes [nIndex])];

                skillManager.ActiveSkill(skillData.nActiveType, activeSkill, skiller, TargetList, false);
            }
        }

        objectPool.ReturnObject(gameObject);
    }
Exemple #2
0
    //Active Skill관련 -----------------------
    #region  ActiveSkill
    public void PlayActiveSkill(int _nActiveSkillIndex, bool _bIsCritical)
    {
        //Parsing된 스킬에서 SkillType과 Target을 받아옴
        //cf

        if (charicStats.activeSkill[_nActiveSkillIndex].m_strAnimationClip != "-1")
        {
            animator.SetTrigger(charicStats.activeSkill [_nActiveSkillIndex].m_strAnimationClip);
        }

        string[] strActiveTypes = charicStats.activeSkill[_nActiveSkillIndex].m_strSkillType.Split(',');

        for (int nIndex = 0; nIndex < strActiveTypes.Length; nIndex++)
        {
            targetCharacter_LIST.Clear();

            AllActiveSkillType skillData = GameManager.Instance.cAllActiveType[int.Parse(strActiveTypes[nIndex])];

            if (skillData == null)
            {
                return;
            }

            targetCharacter_LIST = GetTargetLIST(skillData.nTargetIndex, _nActiveSkillIndex);

            if (targetCharacter_LIST.Count == 0)
            {
                continue;
            }

            skillManager.ActiveSkill(skillData.nActiveType, charicStats.activeSkill[_nActiveSkillIndex], this, targetCharacter_LIST, _bIsCritical);
        }
    }