|
- using System;
- using System.Collections.Generic;
- using CIG.Translation;
- using CIGEnums;
- using SUISS.Core;
- using SUISSEngine;
- using UnityEngine;
- using UnityEngine.UI;
-
- public class BuildingInfoPopupView : PopupBaseView
- {
- public override void Init()
- {
- base.Init();
- BuildingProperty[] allRequiredBuildingProperties = ((BuildingInfoPopupState)this.State).AllRequiredBuildingProperties;
- int num = allRequiredBuildingProperties.Length;
- for (int i = 0; i < num; i++)
- {
- this._buildingPropertyToInfoRowsMap.Add(allRequiredBuildingProperties[i], this.CreateBuildingInfoRow(allRequiredBuildingProperties[i]));
- }
- this._marginAffector.FindElements();
- }
-
- public void UpdateInfo(Building building)
- {
- this._title.LocalizedString = building.LocalName;
- this._textPropertyTextHolder.SetActive(building.ShownProperties.Contains(BuildingProperty.Text));
- foreach (KeyValuePair<BuildingProperty, BuildingInfoRow> keyValuePair in this._buildingPropertyToInfoRowsMap)
- {
- keyValuePair.Value.gameObject.SetActive(building.ShownProperties.Contains(keyValuePair.Key));
- }
- this._marginAffector.Recalculate();
- }
-
- public void HideUpgradeButton()
- {
- this._costButton.SetActive(false);
- }
-
- public void SetUpgradeCosts(Currencies cost)
- {
- this._costButton.SetActive(true);
- if (cost.IsEmpty())
- {
- this._costButtonCurrencyImage.gameObject.SetActive(false);
- this._costButtonText.LocalizedString = Localization.Key("free");
- }
- else
- {
- string currency;
- UISpriteType key;
- if (cost.ContainsPositive("Gold"))
- {
- currency = "Gold";
- key = UISpriteType.GoldSmall;
- }
- else
- {
- currency = "Cash";
- key = UISpriteType.CashSmall;
- }
- this._costButtonText.LocalizedString = Localization.Integer(cost.GetValue(currency));
- this._costButtonCurrencyImage.gameObject.SetActive(true);
- this._costButtonCurrencyImage.sprite = SingletonMonobehaviour<UISpriteAssetCollection>.Instance.GetAsset(key);
- }
- }
-
- public void HideSubtitle()
- {
- this._subtitle.gameObject.SetActive(false);
- }
-
- public void SetSubtitle(ILocalizedString text)
- {
- this._subtitle.gameObject.SetActive(true);
- this._subtitle.LocalizedString = text;
- }
-
- public void SetInfoLine(BuildingProperty property, ILocalizedString value, ILocalizedString bonus)
- {
- BuildingInfoRow buildingInfoRow;
- if (property == BuildingProperty.Text)
- {
- this._textPropertyText.LocalizedString = value;
- }
- else if (this._buildingPropertyToInfoRowsMap.TryGetValue(property, out buildingInfoRow))
- {
- buildingInfoRow.SetRowInfo(value, bonus);
- }
- else
- {
- UnityEngine.Debug.LogWarningFormat("Property Row `{0}` not set up!", new object[]
- {
- property
- });
- }
- }
-
- public void SetBuildingSprites(Building building)
- {
- this._buildingImage.sprite = building.GetComponent<SpriteRenderer>().sprite;
- SpriteRenderer bottomRenderer = building.GetComponent<GridTile>().bottomRenderer;
- Sprite sprite = (!(bottomRenderer == null) && !(bottomRenderer.sprite == null)) ? bottomRenderer.sprite : null;
- this._buildingBottomImage.sprite = sprite;
- this._buildingBottomImage.gameObject.SetActive(sprite != null);
- }
-
- public void SetBuildingSize(GridSize size)
- {
- this._buildingSizeText.gameObject.SetActive(true);
- this._buildingSizeText.text = string.Format("{0} x {1}", size.u, size.v);
- }
-
- public void HideBuildingSize()
- {
- this._buildingSizeText.gameObject.SetActive(false);
- }
-
- public void OnRequestPurchaseButtonClicked()
- {
- if (!base.PopupState.Closed)
- {
- ((BuildingInfoPopupState)this.State).RequestPurchase();
- }
- }
-
- private BuildingInfoRow CreateBuildingInfoRow(BuildingProperty property)
- {
- BuildingInfoRow buildingInfoRow = UnityEngine.Object.Instantiate<BuildingInfoRow>(this._buildingRowInfoPrefab, this._rowsHolder, false);
- buildingInfoRow.Init(property);
- return buildingInfoRow;
- }
-
- [SerializeField]
- [Header("Property Resources")]
- private BuildingInfoRow _buildingRowInfoPrefab;
-
- [SerializeField]
- private GameObject _textPropertyTextHolder;
-
- [SerializeField]
- private LocalizedText _textPropertyText;
-
- [SerializeField]
- [Header("Links")]
- private Image _buildingImage;
-
- [SerializeField]
- private Image _buildingBottomImage;
-
- [SerializeField]
- private Text _buildingSizeText;
-
- [SerializeField]
- private LocalizedText _title;
-
- [SerializeField]
- private MarginsAffector _marginAffector;
-
- [SerializeField]
- private LocalizedText _subtitle;
-
- [SerializeField]
- private GameObject _costButton;
-
- [SerializeField]
- private LocalizedText _costButtonText;
-
- [SerializeField]
- private Image _costButtonCurrencyImage;
-
- [SerializeField]
- private Transform _rowsHolder;
-
- private Dictionary<BuildingProperty, BuildingInfoRow> _buildingPropertyToInfoRowsMap = new Dictionary<BuildingProperty, BuildingInfoRow>();
- }
|