// ATTACK
public void attack(AbstractEntity enemy, Vector3 enemyPos){
this.lookAt(enemyPos);
if(this.isAlive() && enemy.isAlive()){
if (timeForNextAction<=0){
float randomNumber = Random.Range(0f,100f);
if (randomNumber<25){
if (animator.GetBool("attack_enabled")) animator.SetBool ("attack_enabled", false);
if (!animator.GetBool("critical")) animator.SetBool ("critical", true);
PNJAudio.PlayCriticalAttack(); // PlayAttackOK
enemy.onAttackReceived (4*DMG);
timeForNextAction = timecost_perAction;
}else{
if (animator.GetBool("critical")) animator.SetBool ("critical", false);
if (!animator.GetBool("attack_enabled")) animator.SetBool ("attack_enabled", true);
PNJAudio.PlayAttackOK(); // PlayCriticalAttack
enemy.onAttackReceived (DMG);
timeForNextAction = timecost_perAction;
}
}
}else if (animator.GetBool("attack_enabled")){
animator.SetBool("attack_enabled",false);
}else if (animator.GetBool("critical")){
animator.SetBool("critical",false);
}
}