implement more changes
This commit is contained in:
+22
-2
@@ -5,6 +5,8 @@ public class Enemy : MonoBehaviour
|
||||
public float speed = 1.5f;
|
||||
private Transform tower;
|
||||
private EnemyHealth enemyHealth;
|
||||
private float slowMultiplier = 1f;
|
||||
private float slowEndTime;
|
||||
|
||||
void Start()
|
||||
{
|
||||
@@ -20,7 +22,10 @@ public class Enemy : MonoBehaviour
|
||||
void Update()
|
||||
{
|
||||
if (tower == null || enemyHealth == null) return;
|
||||
transform.position = Vector2.MoveTowards(transform.position, tower.position, speed * Time.deltaTime);
|
||||
if (Time.time >= slowEndTime)
|
||||
slowMultiplier = 1f;
|
||||
|
||||
transform.position = Vector2.MoveTowards(transform.position, tower.position, speed * slowMultiplier * Time.deltaTime);
|
||||
if (Vector2.Distance(transform.position, tower.position) < 0.5f)
|
||||
{
|
||||
int damageDealt = enemyHealth.GetCurrentHealth();
|
||||
@@ -29,4 +34,19 @@ public class Enemy : MonoBehaviour
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void ApplySlow(float multiplier, float duration)
|
||||
{
|
||||
slowMultiplier = Mathf.Min(slowMultiplier, Mathf.Clamp(multiplier, 0.1f, 1f));
|
||||
slowEndTime = Mathf.Max(slowEndTime, Time.time + duration);
|
||||
}
|
||||
|
||||
public void ApplyKnockback(Vector2 source, float distance)
|
||||
{
|
||||
Vector2 direction = ((Vector2)transform.position - source).normalized;
|
||||
if (direction.sqrMagnitude <= Mathf.Epsilon)
|
||||
return;
|
||||
|
||||
transform.position += (Vector3)(direction * distance);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user