diff --git a/Assets/_Project/Scripts/Gameplay/WaveManager.cs b/Assets/_Project/Scripts/Gameplay/WaveManager.cs index 8834dc1..0f49bae 100644 --- a/Assets/_Project/Scripts/Gameplay/WaveManager.cs +++ b/Assets/_Project/Scripts/Gameplay/WaveManager.cs @@ -414,7 +414,7 @@ namespace TD.Gameplay // PlayerZoneVolume (so OwnerGrid[spawnerTile] = None). var spawner = zone.Spawners[0]; (float xHalf, float zHalf) = ComputeSpawnerHalfExtents(spawner.TileArea); - SpawnEnemy(def, spawner.TilePosition, zone.Owner, xHalf, zHalf, held); + SpawnEnemy(def, spawner.TilePosition, zone.Owner, xHalf, zHalf, held, spawner.Facing); } } @@ -440,7 +440,8 @@ namespace TD.Gameplay } private void SpawnEnemy(EnemyDefinition def, Vector2Int spawnerTile, PlayerSlot ownerSlot, - float xHalfExtent = 0f, float zHalfExtent = 0f, bool held = false) + float xHalfExtent = 0f, float zHalfExtent = 0f, bool held = false, + Direction facing = Direction.South) { if (def.EnemyPrefab == null) { @@ -460,10 +461,19 @@ namespace TD.Gameplay if (def.IsFlying) spawnPos.y += def.FlightHeight; + float yaw = facing switch + { + Direction.North => 0f, + Direction.East => 90f, + Direction.South => 180f, + Direction.West => 270f, + _ => 0f, + }; + var go = Instantiate( def.EnemyPrefab, spawnPos, - Quaternion.identity); + Quaternion.Euler(0f, yaw, 0f)); var health = go.GetComponent(); var movement = go.GetComponent();