Esempio n. 1
0
 void CheckDodge()
 {
     if (!inTrigger)
     {
         RaycastHit2D raycastHit2D = Physics2D.Raycast(transform.position + new Vector3(0, 5, 0), transform.up, 500);
         //Debug.DrawRay(transform.position, transform.up * 500);
         if (raycastHit2D.collider != null)
         {
             if (raycastHit2D.collider.tag == "Player")
             {
                 dodgeMe = true;
             }
         }
         if (dodgeMe)
         {
             if (delayAssesin > 0)
             {
                 delayAssesin = delayAssesin - Time.deltaTime;
             }
             else if (delayAssesin <= 0)
             {
                 stateAssasin = StateAssasin.Assasin;
             }
         }
     }
 }
Esempio n. 2
0
    public void CheckAttackMine()
    {
        if (Mathf.Abs((transform.position.x - player.transform.position.x)) <= distanceMina &&
            Mathf.Abs((transform.position.y - player.transform.position.y)) <= distaceY)
        {
            if (stateAssasin == StateAssasin.Mine)
            {
                if (delayActivateMina <= 0)
                {
                    spriteRenderer.color = Color.red;
                    player.life          = 0;
                }
                else if (delayActivateMina > 0)
                {
                    inMine = true;
                    spriteRenderer.color = colorWarning;
                    delayActivateMina    = delayActivateMina - Time.deltaTime;
                }
            }
        }
        else if (inMine)
        {
            if (Mathf.Abs((transform.position.x - player.transform.position.x)) > distanceMina ||
                Mathf.Abs((transform.position.y - player.transform.position.y)) > distaceY)
            {
                stateAssasin      = StateAssasin.Assasin;
                normalAttackDelay = 0;
            }
        }

        if (Mathf.Abs((transform.position.x - player.transform.position.x)) <= distanceAttack &&
            Mathf.Abs((transform.position.y - player.transform.position.y)) <= distaceY)
        {
            speedMovement = 0;
            if (stateAssasin == StateAssasin.Assasin)
            {
                if (normalAttackDelay <= 0)
                {
                    player.life       = player.life - Damage;
                    normalAttackDelay = auxNormalAttackDelay;
                    source.PlayOneShot(doneDamage, volume);
                }
                else if (normalAttackDelay > 0)
                {
                    normalAttackDelay = normalAttackDelay - Time.deltaTime;
                }
            }
        }
    }