public void SetupUpgradePrefabs(TurretParams turretParams, Transform buildTile)
 {
     _defaultTurretUiPrefabs.Clear();
     _prefabManager = FindObjectOfType <PrefabManager>();
     _buildTile     = buildTile;
     foreach (string turretName in turretParams.Upgrades)
     {
         TurretParams upgradeParams = GlobalVariables.AllTurretParams[turretName];
         _defaultTurretUiPrefabs.Add(_prefabManager.GetTurretUiPrefab(upgradeParams));
     }
 }
    public GameObject GetTurretBasePrefab(TurretParams turretParams)
    {
        if (_turretBasePrefabs.ContainsKey(turretParams.Name))
        {
            return(_turretBasePrefabs[turretParams.Name]);
        }

        string     prefabName = "prefab_turret_base " + turretParams.Name;
        GameObject prefab     = CopyPrefab(_turretBasePrefab, prefabName, turretParams.BaseTexture);

        _turretBasePrefabs.Add(turretParams.Name, prefab);
        return(prefab);
    }
    public GameObject GetProjectilePrefab(TurretParams turretParams)
    {
        if (_projectilePrefabs.ContainsKey(turretParams.Name))
        {
            return(_projectilePrefabs[turretParams.Name]);
        }

        string     prefabName = "prefab_projectile " + turretParams.Name;
        GameObject prefab     = CopyPrefab(_projectilePrefab, prefabName, turretParams.ProjectileTexture);

        _projectilePrefabs.Add(turretParams.Name, prefab);
        return(prefab);
    }
    public GameObject GetTurretUiPrefab(TurretParams turretParams)
    {
        if (_turretUiPrefabs.ContainsKey(turretParams.Name))
        {
            return(_turretUiPrefabs[turretParams.Name]);
        }

        string     prefabName = "prefab_turret_ui " + turretParams.Name;
        GameObject prefab     = CopyPrefab(_turretUiPrefab, prefabName, turretParams.UiTexture);

        prefab.GetComponent <CreateTurret>().Params = turretParams;
        _turretUiPrefabs.Add(turretParams.Name, prefab);
        return(prefab);
    }