Files
project-reset/Assets/Plugins/LiveWatchLite/TowerDefenceDemo/Scripts/TowerManager.cs
2025-08-31 18:14:07 -04:00

53 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
namespace Ingvar.LiveWatch.TowerDefenceDemo
{
public class TowerManager : MonoBehaviour
{
private Dictionary<string, TowerBase> _towers = new();
private LevelScene _levelScene;
private int _spawnedTowersCount;
private void Awake()
{
_levelScene = FindObjectOfType<LevelScene>();
}
public void EnabledTowers()
{
foreach (var tower in _towers.Values)
{
tower.Enable(_levelScene);
}
}
public void DisableTowers()
{
foreach (var tower in _towers.Values)
{
tower.Disable();
}
}
public void AddTower(TowerBase tower)
{
tower.Id = $"{tower.Type}_{++_spawnedTowersCount}";
_towers.Add(tower.Id, tower);
if (_levelScene.LevelStateManager.CurrentState == LevelStateType.Playing)
tower.Enable(_levelScene);
}
public void RemoveTower(TowerBase tower)
{
_towers.Remove(tower.Id);
if (_levelScene.LevelStateManager.CurrentState == LevelStateType.Playing)
tower.Disable();
}
}
}