void Start() { MapGenerator = gameObject.GetComponent <MapGenerator>(); // transform.position = new Vector3(0.84252352941176470588235294117647f * (MapGenerator.xSize / 2), 0.72023225806451612903225806451613f * (MapGenerator.ySize / 2), -3); factory.Add(new Vector2Int((int)((float)MapGenerator.xSize / 2), (int)((float)MapGenerator.ySize / 2)), 1); ScoreCore.mainSpawner = GameObject.FindGameObjectWithTag("MainSpawner"); Vector2 pos = Cell.getGlobalCoords(new Vector2Int((int)((float)MapGenerator.xSize / 2), (int)((float)MapGenerator.ySize / 2)), 55f / 64f); transform.position = new Vector3(pos.x, pos.y, -3); }
private void Start() { grassFactory.generateGrid(new Vector2Int(xSize, ySize)); //CreateShape(); //genPatch(new Vector2Int(20, 20), 7,50, 0); genRocks(5); //genRocks(); int size; Vector2Int pos = new Vector2Int(0, 0); Vector2Int delta = new Vector2Int(1, -4); Vector2Int gPos = new Vector2Int(xSize / 2, ySize / 2); for (int i = 0; i < 5 + Random.Range(0, 2); i++) { size = 1 + Random.Range(0, 3); pos.x = Random.Range(0, xSize); pos.y = Random.Range(0, ySize); genLooseSpot(pos, new Vector2Int(1, size), 9); genLooseSpot(pos, new Vector2Int(1, size), 9); } for (int i = 0; i < 3 + Random.Range(0, 2); i++) { do { size = 2 + Random.Range(0, 4); pos.x = Random.Range(0, xSize); pos.y = Random.Range(0, ySize); } while (Mathf.Abs(pos.x - gPos.x) < (size - 2) || Mathf.Abs(pos.y - gPos.y) < 3); genSpot(pos + delta, new Vector2Int(1, size + 4), 8); genSpot(pos, new Vector2Int(2, size), 7); if (Random.Range(0, 2) == 1) { // do poprwaienia //genPatch(pos, 7, xSize + ySize, Random.Range(0, 7)); } } for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (Mathf.Pow(i, 2) + Mathf.Pow(j, 2) < 25) { // Water condition pos = new Vector2Int(i, j); grassFactory.DestroyCell(grassFactory.Find(gPos + pos)); grassFactory.Add(gPos + pos, Random.Range(0, 2)).transform.localRotation = Quaternion.Euler(0, 0, 60 * Random.Range(1, 7)); pos.x = -pos.x; grassFactory.DestroyCell(grassFactory.Find(gPos + pos)); grassFactory.Add(gPos + pos, Random.Range(0, 2)).transform.localRotation = Quaternion.Euler(0, 0, 60 * Random.Range(1, 7)); pos.y = -pos.y; grassFactory.DestroyCell(grassFactory.Find(gPos + pos)); grassFactory.Add(gPos + pos, Random.Range(0, 2)).transform.localRotation = Quaternion.Euler(0, 0, 60 * Random.Range(1, 7)); pos.x = -pos.x; grassFactory.DestroyCell(grassFactory.Find(gPos + pos)); grassFactory.Add(gPos + pos, Random.Range(0, 2)).transform.localRotation = Quaternion.Euler(0, 0, 60 * Random.Range(1, 7)); } } } //CellFactory.cellCount = 0; //genSpot(new Vector2Int(10, 9), new Vector2Int(1, 6), 8);//genRocks(5); }
void Update() { if (switch1) { switch1 = false; CellFactory.cellCount = 0; ScoreCore.cellCount = new int[5]; ScoreCore.cellCount[0] = 0; ScoreCore.Prices[0] = 8 * ScoreCore.cellCount[0]; ScoreCore.Prices[2] = 6 * ScoreCore.cellCount[2]; ScoreCore.Prices[3] = 3 * ScoreCore.cellCount[3]; ScoreCore.Prices[4] = 8 * ScoreCore.cellCount[4]; Camera.main.GetComponent <ScoreCore>().PriceDisplayers[0].text = ScoreCore.Prices[0].ToString() + "$"; Camera.main.GetComponent <ScoreCore>().PriceDisplayers[2].text = ScoreCore.Prices[2].ToString() + "$"; Camera.main.GetComponent <ScoreCore>().PriceDisplayers[3].text = ScoreCore.Prices[3].ToString() + "$"; Camera.main.GetComponent <ScoreCore>().PriceDisplayers[4].text = ScoreCore.Prices[4].ToString() + "$"; } //While holding LMB, object follows the mouse position if (IsSelected) { ObjectFollowsMouse(gameObject); } //When LMB is relesed, (drag ends) do the following if (IsSelected && Input.GetMouseButtonUp(0)) { IsSelected = false; Vector2 WorldPos = Camera.main.ScreenToWorldPoint(new Vector2(Input.mousePosition.x, Input.mousePosition.y)); Vector2Int hPos = Cell.getHexCoords(WorldPos, 55f / 64f); //Checking if position is occupied and if player has enough cash to build the cell if ((Factory.Find(hPos) == null && ScoreCore.Cash >= ScoreCore.Prices[SpawnedIdentifier] && grassFactory.Find(hPos).buildable) && Input.mousePosition.y > Camera.main.pixelWidth / 7 && Silos.getAvailableBuildings() > CellFactory.cellCount) // > (Camera.main.pixelHeight/10) { CellFactory.cellCount++; ScoreCore.cellCount[SpawnedIdentifier]++; Factory.Add(hPos, SpawnedIdentifier); GameObject.Instantiate(Resources.Load <GameObject>("BuildParticles") as GameObject, Cell.getGlobalCoords(Cell.getHexCoords(WorldPos, 55f / 64f), 55f / 64f), Quaternion.identity); //Charging for purchase ScoreCore.Cash -= ScoreCore.Prices[SpawnedIdentifier]; //Debug.Log(ScoreCore.cellCount[0]); //Increase Price of thebuilding built ScoreCore.Prices[0] = 8 * ScoreCore.cellCount[0]; ScoreCore.Prices[2] = 6 * ScoreCore.cellCount[2]; ScoreCore.Prices[3] = 3 * ScoreCore.cellCount[3]; ScoreCore.Prices[4] = 8 * ScoreCore.cellCount[4]; Camera.main.GetComponent <ScoreCore>().PriceDisplayers[0].text = ScoreCore.Prices[0].ToString() + "$"; Camera.main.GetComponent <ScoreCore>().PriceDisplayers[2].text = ScoreCore.Prices[2].ToString() + "$"; Camera.main.GetComponent <ScoreCore>().PriceDisplayers[3].text = ScoreCore.Prices[3].ToString() + "$"; Camera.main.GetComponent <ScoreCore>().PriceDisplayers[4].text = ScoreCore.Prices[4].ToString() + "$"; Debug.Log($"Info cell: {CellFactory.cellCount}"); } //Returning the draggable to origin position gameObject.transform.localPosition = ReturnPosition; } }