Adding flying functionality for enemies

This commit is contained in:
Matt F 2026-06-23 22:27:35 -07:00
parent 54f11d91ff
commit d685894878
6 changed files with 83 additions and 26 deletions

View file

@ -421,7 +421,17 @@ namespace TD.Gameplay
if (zHalfExtent > 0f)
spawnPos.z += Random.Range(-zHalfExtent, zHalfExtent);
var go = Instantiate(def.EnemyPrefab, spawnPos, Quaternion.identity);
// Flying enemies spawn elevated so they visually soar over towers. The
// movement code preserves Y per-frame, so this height persists for the
// enemy's whole flight. NetworkTransform replicates the raised position.
Vector3 spawnPos = GridCoordinates.GridToWorld(spawnerTile);
if (def.IsFlying)
spawnPos.y += def.FlightHeight;
var go = Instantiate(
def.EnemyPrefab,
spawnPos,
Quaternion.identity);
var health = go.GetComponent<EnemyHealth>();
var movement = go.GetComponent<EnemyMovement>();
@ -435,7 +445,7 @@ namespace TD.Gameplay
}
health.InitializeServer(def.MaxHp, def.LivesCost, def.IsFlying);
movement.InitializeServer(def.MoveSpeed, spawnerTile, ownerSlot);
movement.InitializeServer(def.MoveSpeed, spawnerTile, ownerSlot, def.IsFlying);
health.OnDied += HandleEnemyKilled;
movement.OnZoneLeaked += HandleZoneLeak;