public void UpdateState(TowerSpawnerViewModel data)
    {
        if (towerProjection != null)
        {
            Destroy(towerProjection);
        }
        Tower           model = ElementalTowerDefenseModel.TowerFactory.CreateTower(data.TowerType);
        TowerController controller
            = TowerFactory.CreateTower(
                  data.TowerType,
                  model,
                  null,
                  out towerProjection);

        towerProjection.GetComponent <Rigidbody>().detectCollisions = false;
        towerProjection.GetComponent <TowerView>().enabled          = false;
        towerProjection.transform.parent           = gameObject.transform;
        transform.GetChild(0).transform.localScale = new Vector3(
            model.Range.Points * 2,
            model.Range.Points * 2,
            model.Range.Points * 2);
        spawnerView.IsInSpawnMode = data.IsInSpawnMode;

        if (!IsInSpawnMode)
        {
            SetProjectionVisibility(false);
        }
    }
Exemplo n.º 2
0
 public void SpawnTower()
 {
     if (View.TowerIsPlaceable)
     {
         Tower tower = towerService.Buy();
         if (tower != null)
         {
             TowerController controller = TowerFactory.CreateTower(Model.SelectedTowerType, tower, this);
             goldManagerController.UpdateView();
             controllers.Add(controller);
             IsInSpawnMode = false;
         }
     }
 }
Exemplo n.º 3
0
 private void PlaceTower()
 {
     if (towerFactory.towersPlaced < towerFactory.maxTowers)
     {
         hasTower = true;
         Tower newTower = towerFactory.CreateTower(transform.position);
         newTower.SetWaypoint(this);
         towerFactory.towersPlaced++;
     }
     else
     {
         print("Max towers placed.");
     }
 }
    //private bool created = false;

    void Awake()
    {
        tower = TowerFactory.CreateTower(tower);

        if (tower.bulletPrefab != null)
        {
            PoolManager.CheckForPool(tower.bulletPrefab, 500);
        }

        /*if (!created)
         * {
         *  DontDestroyOnLoad(gameObject);
         *  created = true;
         *  //Debug.Log("Awake: " + gameObject);
         * }*/
    }
Exemplo n.º 5
0
    // Start is called before the first frame update
    void Start()
    {
        TowerFactory.CreateTower(TowerID, transform.position, transform.rotation);

        Destroy(gameObject);
    }