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()); } } }
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); } }
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; } } }