protected void SetHallBuildingBuilt(HallBuilding a_Building) { a_Building.ButtonImage.sprite = m_Yellow; a_Building.CornerImage.gameObject.SetActive(true); a_Building.CornerImage.sprite = m_Tick; a_Building.Buildable = false; }
protected void SetHallBuildingUnbuildable(HallBuilding a_Building) { a_Building.ButtonImage.sprite = m_Grey; a_Building.CornerImage.gameObject.SetActive(true); a_Building.CornerImage.sprite = m_Cross; a_Building.Buildable = false; }
protected void SetHallBuildingNotBuilt(HallBuilding a_Building) { bool _RequirementsMet = true; if (a_Building.BuildingData.Requirements != null) { for (int i = 0; i < a_Building.BuildingData.Requirements.Requirements.Length; i++) { if (!IsBuildingBuilt(a_Building.BuildingData.Requirements.Requirements[i])) { _RequirementsMet = false; } } } if (_RequirementsMet) { if (a_Building.BuildingData.GoldCost <= m_Resources.Gold && a_Building.BuildingData.WoodCost <= m_Resources.Wood && a_Building.BuildingData.OreCost <= m_Resources.Ore && a_Building.BuildingData.MercuryCost <= m_Resources.Mercury && a_Building.BuildingData.SulfurCost <= m_Resources.Sulfur && a_Building.BuildingData.CrystalCost <= m_Resources.Crystals && a_Building.BuildingData.GemCost <= m_Resources.Gems) { a_Building.ButtonImage.sprite = m_Green; a_Building.CornerImage.gameObject.SetActive(false); a_Building.Buildable = true; } else { a_Building.ButtonImage.sprite = m_Red; a_Building.CornerImage.gameObject.SetActive(true); a_Building.CornerImage.sprite = m_NoMoney; a_Building.Buildable = false; } } else { a_Building.ButtonImage.sprite = m_Red; a_Building.CornerImage.gameObject.SetActive(true); a_Building.CornerImage.sprite = m_Cross; a_Building.Buildable = false; } }
public void Open(HallBuilding a_Building, bool a_RightClick = false) { m_BuildButton.transform.parent.gameObject.SetActive(!a_RightClick); m_CancelButton.transform.parent.gameObject.SetActive(!a_RightClick); gameObject.SetActive(true); TownBuildings _Buildings = m_TownScreen.GetTownBuildings(); m_BuildingData = a_Building.BuildingData; m_Title.text = "Build " + m_BuildingData.DisplayName; m_Image.sprite = a_Building.Image.sprite; m_Description.text = m_BuildingData.Description; m_Requirements.text = "Requires:\n"; List <BuildingRequirements> _RemainingRequirements = new List <BuildingRequirements>(); if (m_BuildingData.Requirements != null) { for (int i = 0; i < m_BuildingData.Requirements.Requirements.Length; i++) { if (!_Buildings.IsBuildingBuilt(m_BuildingData.Requirements.Requirements[i])) { _RemainingRequirements.Add(m_BuildingData.Requirements.Requirements[i]); } } } for (int i = 0; i < _RemainingRequirements.Count; i++) { m_Requirements.text += _RemainingRequirements[i].name; if (i < _RemainingRequirements.Count - 1) { m_Requirements.text += ", "; } } if (_RemainingRequirements.Count == 0) { m_Requirements.text = "All prerequisites for this building have been met."; } m_BuildButton.interactable = a_Building.Buildable; int _ResourceCount = 0; if (a_Building.BuildingData.WoodCost > 0) { m_ResourceImages[_ResourceCount].sprite = m_WoodSprite; m_ResourceAmounts[_ResourceCount].text = a_Building.BuildingData.WoodCost.ToString(); _ResourceCount++; } if (a_Building.BuildingData.MercuryCost > 0) { m_ResourceImages[_ResourceCount].sprite = m_MercurySprite; m_ResourceAmounts[_ResourceCount].text = a_Building.BuildingData.MercuryCost.ToString(); _ResourceCount++; } if (a_Building.BuildingData.OreCost > 0) { m_ResourceImages[_ResourceCount].sprite = m_OreSprite; m_ResourceAmounts[_ResourceCount].text = a_Building.BuildingData.OreCost.ToString(); _ResourceCount++; } if (a_Building.BuildingData.SulfurCost > 0) { m_ResourceImages[_ResourceCount].sprite = m_SulfurSprite; m_ResourceAmounts[_ResourceCount].text = a_Building.BuildingData.SulfurCost.ToString(); _ResourceCount++; } if (a_Building.BuildingData.CrystalCost > 0) { m_ResourceImages[_ResourceCount].sprite = m_CrystalsSprite; m_ResourceAmounts[_ResourceCount].text = a_Building.BuildingData.CrystalCost.ToString(); _ResourceCount++; } if (a_Building.BuildingData.GemCost > 0) { m_ResourceImages[_ResourceCount].sprite = m_GemsSprite; m_ResourceAmounts[_ResourceCount].text = a_Building.BuildingData.GemCost.ToString(); _ResourceCount++; } if (a_Building.BuildingData.GoldCost > 0) { m_ResourceImages[_ResourceCount].sprite = m_GoldSprite; m_ResourceAmounts[_ResourceCount].text = a_Building.BuildingData.GoldCost.ToString(); _ResourceCount++; } if (_ResourceCount > 3) { for (int i = 0; i < 4; i++) { m_ResourceImages[i].rectTransform.anchoredPosition = new Vector2(80 * (i - 1.5f), -59); m_ResourceAmounts[i].rectTransform.anchoredPosition = new Vector2(80 * (i - 1.5f), -83); m_ResourceImages[i].gameObject.SetActive(true); m_ResourceAmounts[i].gameObject.SetActive(true); } for (int i = 4; i < _ResourceCount; i++) { m_ResourceImages[i].rectTransform.anchoredPosition = new Vector2(80 * ((i - 4) - (_ResourceCount - 5) / 2.0f), -133); m_ResourceAmounts[i].rectTransform.anchoredPosition = new Vector2(80 * ((i - 4) - (_ResourceCount - 5) / 2.0f), -157); m_ResourceImages[i].gameObject.SetActive(true); m_ResourceAmounts[i].gameObject.SetActive(true); } for (int i = _ResourceCount; i < 7; i++) { m_ResourceImages[i].gameObject.SetActive(false); m_ResourceAmounts[i].gameObject.SetActive(false); } } else { for (int i = 0; i < _ResourceCount; i++) { m_ResourceImages[i].rectTransform.anchoredPosition = new Vector2(80 * (i - (_ResourceCount - 1) / 2.0f), -96); m_ResourceAmounts[i].rectTransform.anchoredPosition = new Vector2(80 * (i - (_ResourceCount - 1) / 2.0f), -120); m_ResourceImages[i].gameObject.SetActive(true); m_ResourceAmounts[i].gameObject.SetActive(true); } for (int i = _ResourceCount; i < 7; i++) { m_ResourceImages[i].gameObject.SetActive(false); m_ResourceAmounts[i].gameObject.SetActive(false); } } }