public Building Build(Hexagon hex, GameObject buildingPrefab, bool ignoresTower = false) { Building building = buildingPrefab.GetComponent <Building>(); if (player.RAM >= building.Maintenance && player.CPU >= building.Cost) { player.CPU -= building.Cost; hex.Build(buildingPrefab); hex.building.player = player; if (hex.building.GetComponent <MarkReceptor>()) { hex.building.GetComponent <MarkReceptor>().toggleList = player.GetComponent <MarkToggleList>(); } if (!ignoresTower && building.kind == "tower") { player.onTower = hex.building; } return(hex.building); } else { return(null); } }
/* Use this for initialization * void Start() * { * * }*/ // Update is called once per frame void Update() { if (Physics.Raycast(mainCamera.ScreenToWorldPoint(Input.mousePosition), mainCamera.transform.forward, out hit) && hit.collider.GetComponent <Hexagon>() && hit.collider.GetComponent <Hexagon>().Visible) { mouseHex = hit.collider.GetComponent <Hexagon>(); if (Input.GetMouseButtonDown(0) && mouseBuildingPrefab && !mouseHex.building) { mouseHex.Build(mouseBuildingPrefab); } if (Input.GetMouseButtonDown(1) && !mouseBuildingPrefab) { mouseHex.Empty(); } if (mouseHex.building) { mouseBuildingSprite.color = Color.red; } else { mouseBuildingSprite.color = Color.white; } mouseBuildingSprite.enabled = true; mouseBuildingSprite.transform.parent = mouseHex.transform; mouseBuildingSprite.transform.localPosition = Vector3.zero; } else { mouseHex = null; } mouseBuildingSprite.sprite = mouseBuildingPrefab ? mouseBuildingPrefab.GetComponent <SpriteRenderer>().sprite : null; }