private void Build() { var tile = currentTile; if (tile.buildable && playerEconomy.currentResource - selectedBuilding.GetComponent <Building>().buildCost >= 0) { var building = Instantiate(selectedBuilding, grid.GetCellCenterWorld(grid.WorldToCell(currentTile.transform.position)), quaternion.identity); var buildingComponent = building.GetComponent <Building>(); if (buildingComponent.playerOwned) { MapDataManager.Add(MapDataManager.playerBuildings, building.transform); } else { MapDataManager.Add(MapDataManager.enemyBuildings, building.transform); } playerEconomy.currentResource -= building.GetComponent <Building>().buildCost; tile.building = building; tile.buildable = false; } else { Debug.Log("Can't Build on " + currentTile.name + "||" + tile.buildable); ResetBuildState(); } }
private void Start() { if (playerOwned) { MapDataManager.Add(MapDataManager.playerBuildings, transform); } else { MapDataManager.Add(MapDataManager.enemyBuildings, transform); } combatSystem = GetComponent <CombatSystem>(); }
private void Build() { buildings = GetWaveBuildings(); foreach (GameObject building in buildings) { Vector3 randomBuildLocation = new Vector3(Random.Range(buildAreaMin.x, buildAreaMax.x), 0, Random.Range(buildAreaMin.y, buildAreaMax.y)); Vector3Int gridPos = (grid.WorldToCell(randomBuildLocation)); var buildLocation = grid.GetCellCenterLocal(gridPos); var instBuilding = Instantiate(building, BuildGridManager.GetTile(buildLocation).transform.position, Quaternion.identity); MapDataManager.Add(MapDataManager.enemyBuildings, instBuilding.transform); } buildCooldown = GetWaveCooldown(); waveIndex++; }
public void SpawnUnit() { var unit = Instantiate(MapDataManager.poolDictionary[unitName].Dequeue(), transform.position, Quaternion.identity); unit.SetActive(true); if (playerUnit) { MapDataManager.Add(MapDataManager.playerUnits, unit.transform); } else { MapDataManager.Add(MapDataManager.enemyUnits, unit.transform); } }