Ejemplo n.º 1
0
    public void Attack(CharecterStats targetStats)
    {
        if (attackCoolDown <= 0f)
        {
            StartCoroutine(DoDamage(targetStats, attackDelay));

            if (OnAttack != null)
            {
                OnAttack();
            }

            attackCoolDown = 1f / attackSpeed;
        }
    }
    // Update is called once per frame
    void Update()
    {
        float distance = Vector3.Distance(target.position, transform.position);

        if (distance <= lookRedius)
        {
            agent.SetDestination(target.position);
            if (distance <= agent.stoppingDistance)
            {
                CharecterStats targetStat = target.GetComponent <CharecterStats>();
                if (targetStat != null)
                {
                    combat.Attack(targetStat);
                }

                FaceTarget();
            }
        }
    }
Ejemplo n.º 3
0
    IEnumerator DoDamage(CharecterStats stats, float delay)
    {
        yield return(new WaitForSeconds(delay));

        stats.takeDamage(myStats.damage.GetValue());
    }
Ejemplo n.º 4
0
 private void Start()
 {
     myStats = GetComponent <CharecterStats>();
 }
Ejemplo n.º 5
0
 private void Start()
 {
     playerManager = PlayerManager.instence;
     myStats       = GetComponent <CharecterStats>();
 }