// Update is called once per frame void Update() { if (state == State.SELECTED && starDisplay.GetStars() < spawnsDefender.cost) { SetDisabled(); selectedDefender = null; } else if (state == State.AVAILABLE && starDisplay.GetStars() < spawnsDefender.cost) { SetDisabled(); } else if (state == State.DISABLED && starDisplay.GetStars() >= spawnsDefender.cost) { SetAvailable(); } }
// Use this for initialization void Start() { starDisplay = GameObject.FindObjectOfType <StarDisplay>(); buttonArray = GameObject.FindObjectsOfType <Button>(); thisSpriteRenderer = GetComponentInChildren <SpriteRenderer>(); thisSpriteRenderer.color = unselectedColor; spawnsDefender = spawns.GetComponent <Defender>(); state = starDisplay.GetStars() >= spawnsDefender.cost ? State.AVAILABLE : State.DISABLED; switch (state) { case State.AVAILABLE: SetAvailable(); break; case State.DISABLED: SetDisabled(); break; case State.SELECTED: default: // Nothing break; } // Set cost Text text = GetComponentInChildren <Text>(); text.text = spawnsDefender.cost.ToString(); }
private void AttemptToPlaceDefenderAt(Vector2 gridPos) { StarDisplay starDisplay = FindObjectOfType <StarDisplay>(); int defenderCost = defender.GetStarsCost(); if (starDisplay.GetStars() >= defenderCost) { SpawnDefender(gridPos); starDisplay.SpendStars(defenderCost); } }
private void SpawnDefender(Vector2 worldPos) { var defenders = FindObjectsOfType <Defender>(); starDisplay = FindObjectOfType <StarDisplay>(); if (defender) { if (starDisplay.GetStars() >= defender.GetCost()) { foreach (var item in defenders) { Vector2 pos = new Vector2(item.transform.position.x, item.transform.position.y); if (pos == worldPos) { return; } } PlaceDefender(worldPos); } } }