Exemple #1
0
    private IEnumerator <CoroutinePhase> TimeAttack()
    {
        m_attackCycle++;

        yield return(Suspend.Do(skills[0].Cooltime()));


        if (null != CurrentTarget)
        {
            if (!skills[0].IsCooltime())
            {
                if (AILogic.TargetDistance(this.transform, CurrentTarget) <= skills[0].SkillRange)
                {
                    if (skills[0] != null)
                    {
                        //Debug.Log("공격");
                        WeaponPosition.transform.forward = (CurrentTarget.position - WeaponPosition.transform.position).normalized;
                        AssetManager.Projectile.Retrieve(skills[0].SkillName, this.WeaponPosition, this.gameObject);
                        skills[0].Reset(this);
                    }
                }
            }
        }

        if (null != m_customPath)
        {
            if (m_attackCycle > m_customPath.m_nodes[m_customIndex].AttackCycle)
            {
                Move();
            }
            else
            {
                Attack();
            }
        }
        else
        {
            Attack();
        }
    }