コード例 #1
0
    void SetPlayerAttack()
    {
        bool playerIsAttacking;
        bool playerIsMoving;

        targetBehaviour.IsPlayerAttacking(out playerIsAttacking, out playerIsMoving);

        if (!playerIsAttacking) //&& !playerIsMoving por si solo queremos hacerlo cuando el player este quieto
        {
            if (!isJumping)
            {
                targetBehaviour.SetBasicAttackTransform(this.transform, true);
            }
            if (Vector3.Distance(transform.position, targetTransform.position) <= attackRange || basicAttackTrigger.TargetIsInRange(targetTransform.name))
            {
                enemyHealthBar.DrawEnemyHealthBar(this.gameObject, GetComponent <EnemyStats>().GetMaxLife(), GetComponent <EnemyStats>().GetLife(), enemyType.ToString());
            }
        }
    }
コード例 #2
0
    void MoveUpdate()
    {
        if (enemyWasHit)
        {
            playerBehaviour.SetBasicAttackTransform(enemyTransform, enemyWasHit);

            destination = enemyTransform.position;
            playerBehaviour.SetDestination(destination);

            EnemyStats enemyStats = enemyTransform.gameObject.GetComponent <EnemyStats>();
            enemyHealthBar.DrawEnemyHealthBar(enemyStats.gameObject, enemyStats.GetMaxLife(), enemyStats.GetLife(), enemyStats.GetEnemyType().ToString());
        }
        else
        {
            playerBehaviour.SetBasicAttackTransform(null, enemyWasHit);

            destination = hitPosition;
            playerBehaviour.SetDestination(destination);

            enemyHealthBar.DisableEnemyHealthBar(null);
        }
    }
コード例 #3
0
    public void SetDamage(float damage, bool playSFX)
    {
        if (life > 0)
        {
            switch (enemyType)
            {
            case EnemyType.Skull:
                life -= damage;

                enemyBehaviour.SetLife(life);
                break;

            case EnemyType.Fenrir:
                life -= damage * 1.25f;     //* 0.75f

                enemyBehaviour.SetLife(life);
                break;

            default:
                break;
            }
        }

        if (enemyHealthBar.playerAttackingTarget != null && enemyHealthBar.playerAttackingTarget == this.gameObject)
        {
            enemyHealthBar.DrawEnemyHealthBar(this.gameObject, maxLife, life, enemyType.ToString());
        }

        if (playSFX)
        {
            int playSound = new int();
            if (enemyType == EnemyType.Fenrir)
            {
                playSound = (Random.Range(0f, 1f) >= 0.5f) ? 1 : 0;
            }
            else if (enemyType == EnemyType.Skull)
            {
                playSound = (Random.Range(0f, 1f) >= 0.3f) ? 1 : 0;
            }

            switch (enemyType)
            {
            case EnemyType.Skull:
                if (life > 0)
                {
                    if (playSound == 1)
                    {
                        audioPlayer.PlaySFX(0, 0.5f, Random.Range(0.96f, 1.04f));                       //Skull injured sound
                    }
                }
                else
                {
                    audioPlayer.PlaySFX(1, 0.5f, Random.Range(0.96f, 1.04f));       //Skull death sound
                }
                break;

            case EnemyType.Fenrir:
                if (playSound == 1)
                {
                    audioPlayer.PlaySFX(Random.Range(5, 7), 0.5f, Random.Range(0.96f, 1.04f));
                }
                break;

            default:
                break;
            }
        }
    }