aboutsummaryrefslogtreecommitdiffstats
path: root/Assets/Scripts
diff options
context:
space:
mode:
authorcross28 <icross028@gmail.com>2022-04-15 06:08:15 -0500
committercross28 <icross028@gmail.com>2022-04-15 06:08:15 -0500
commite01302a15cf68869088a73e561ac672d70b501a7 (patch)
treef0eb403849f609a6b1649b6f3d8e1a6b17bfc53b /Assets/Scripts
parente50fc523b25010582c158b7a307e3e7b1db7fb47 (diff)
feat: finished zombie attack animation and functionality
Diffstat (limited to 'Assets/Scripts')
-rw-r--r--Assets/Scripts/Actors/Enemy.cs24
1 files changed, 23 insertions, 1 deletions
diff --git a/Assets/Scripts/Actors/Enemy.cs b/Assets/Scripts/Actors/Enemy.cs
index 6862298..3db479f 100644
--- a/Assets/Scripts/Actors/Enemy.cs
+++ b/Assets/Scripts/Actors/Enemy.cs
@@ -1,11 +1,14 @@
using UnityEngine;
+using System.Collections;
namespace MontanaJohns.Actors
{
[RequireComponent(typeof(Rigidbody2D))]
public class Enemy : Actor
{
- GameObject player;
+ protected GameObject player;
+ protected float attackRate = 0.5f;
+ protected float nextAttackTime = 0f;
protected override void Awake()
{
@@ -16,12 +19,31 @@ namespace MontanaJohns.Actors
// Update is called once per frame
void Update()
{
+ MoveTowardsPlayer();
+ Attack();
+ CheckHealth();
+ }
+
+ void MoveTowardsPlayer()
+ {
if (player.transform.position.x < transform.position.x) Move(-stats.speedMultiplier * 0.5f);
else Move(stats.speedMultiplier * 0.5f);
+ }
+ void CheckHealth()
+ {
if (health <= 0) Destroy(gameObject);
}
+ void Attack()
+ {
+ if (Mathf.Abs(player.transform.position.x - transform.position.x) <= 3 && Time.time >= nextAttackTime) {
+ _animator.SetTrigger("attack");
+ player.GetComponent<Actor>().TakeDamage(1);
+ nextAttackTime = Time.time + 1f / attackRate;
+ }
+ }
+
private void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.tag == "Projectile")