diff --git a/Assets/Scripts/Pet/PetAttack.cs b/Assets/Scripts/Pet/PetAttack.cs index 9c1c2a8cb72c13f21e73846a4a34b44b33c2ed77..04cc3edc0646835b990a26cdc51d9752057b4406 100644 --- a/Assets/Scripts/Pet/PetAttack.cs +++ b/Assets/Scripts/Pet/PetAttack.cs @@ -6,31 +6,44 @@ public class PetAttack : MonoBehaviour { public int damage = 10; public int timeBetweenAttack = 10; - + public float detectDistance = 10f; + public float detectRadius = 10f; + + float timer; + bool isEnemySeen; + PetHealth petHealth; Animator anim; - void Start() + void Awake() { anim = GetComponent<Animator>(); + petHealth = GetComponent<PetHealth>(); } // Update is called once per frame void Update() { - + timer += Time.deltaTime; } - // TODO: use raycast instead of collider void OnTriggerEnter(Collider other) { EnemyHealth enemyHealth = other.GetComponent<EnemyHealth>(); - if (enemyHealth != null) + if (timer >= timeBetweenAttack && enemyHealth != null && petHealth.currentHealth > 0) { - anim.SetTrigger("Attack"); - - //Lakukan Take Damage - enemyHealth.TakeDamage(damage, new Vector3(0, 0, 0)); + AttackEnemy(enemyHealth); } } + + void AttackEnemy(EnemyHealth enemyHealth) + { + // Reset timer + timer = 0f; + + anim.SetTrigger("Attack"); + + //Lakukan Take Damage + enemyHealth.TakeDamage(damage, new Vector3(0, 0, 0)); + } }