implement additional tower

This commit is contained in:
2026-05-27 20:42:44 +02:00
parent 432dd57d07
commit d1a90e498f
17 changed files with 1569 additions and 3922 deletions
+17
View File
@@ -7,6 +7,7 @@ public class Enemy : MonoBehaviour
private EnemyHealth enemyHealth;
private float slowMultiplier = 1f;
private float slowEndTime;
private float stunEndTime;
private Vector2 knockbackVelocity;
private float knockbackEndTime;
@@ -26,6 +27,8 @@ public class Enemy : MonoBehaviour
if (tower == null || enemyHealth == null) return;
if (Time.time >= slowEndTime)
slowMultiplier = 1f;
if (Time.time < stunEndTime)
return;
if (Time.time < knockbackEndTime && knockbackVelocity.sqrMagnitude > 0.01f)
{
@@ -52,6 +55,20 @@ public class Enemy : MonoBehaviour
slowEndTime = Mathf.Max(slowEndTime, Time.time + duration);
}
public void ApplyStun(float duration)
{
stunEndTime = Mathf.Max(stunEndTime, Time.time + duration);
}
public void PullToward(Vector2 point, float distance)
{
Vector2 direction = (point - (Vector2)transform.position).normalized;
if (direction.sqrMagnitude <= Mathf.Epsilon)
return;
transform.position += (Vector3)(direction * distance);
}
public void ApplyKnockback(Vector2 source, float distance)
{
Vector2 direction = ((Vector2)transform.position - source).normalized;