using System; using Cute; using UnityEngine; namespace Wizard; public class GachaLayoutPurchaseButton : MonoBehaviour { [SerializeField] private GameObject _layoutRoot; [SerializeField] private UIButton _purchaseButton; [SerializeField] private UILabel _buyCostLabel; [SerializeField] private UILabel _haveItemLabel; [SerializeField] private GameObject _purchasedRoot; [SerializeField] private UILabel _purchasedLabel; [SerializeField] private GameObject _remainLabelRoot; [SerializeField] private GameObject _freePackLeaderSkinObj; [SerializeField] private GameObject _ribbon; [SerializeField] private GameObject _ribbonIcon; [SerializeField] private UILabel _ribbonLabel; [SerializeField] private GameObject _remainCountRoot; [SerializeField] private UILabel _freePackApealText; [SerializeField] private UILabel _inButtonLabel; [SerializeField] private UISprite _frame; private const string RIBBON_SPRITE_RED = "campaign_title_02"; private const string RIBBON_SPRITE_PINK = "campaign_title_04"; private const float RIBBON_LABEL_POS_X = 5f; private const float RIBBON_LABEL_POS_X_WITH_ICON = 26.3f; private const int RIBBON_LABEL_WIDTH = 203; private const int RIBBON_LABEL_WIDTH_WITH_ICON = 167; public Vector3 LayoutLocalPosition { get { return _layoutRoot.transform.localPosition; } set { _layoutRoot.transform.localPosition = value; } } public Transform PurchaseButtonTransform => _purchaseButton.transform; public void SetActiveLayout(bool isActive) { _layoutRoot.SetActive(isActive); } public void SetActivePurchaseButton(bool isActive) { _purchaseButton.gameObject.SetActive(isActive); } public void SetPurchasedMode(bool isPurchased) { SetPurchasedVisible(isPurchased); SetActivePurchaseButton(!isPurchased); } public void SetOnClickPurchaseButton(Action onClick) { _purchaseButton.onClick.Clear(); _purchaseButton.onClick.Add(new EventDelegate(delegate { onClick.Call(); })); } public void SetToGrayPurchaseButton(bool isDisable) { UIManager.SetObjectToGrey(_purchaseButton.gameObject, isDisable); } public void SetBuyCostLabel(int cost, string staticTextId = null) { if (!(_buyCostLabel == null)) { string text = cost.ToString(); if (!string.IsNullOrEmpty(staticTextId)) { text = Data.SystemText.Get(staticTextId, text); } _buyCostLabel.text = text; } } public void SetHaveItemLabel(int itemNum) { if (!(_haveItemLabel == null)) { _haveItemLabel.text = itemNum.ToString(); } } public void SetPurchasedVisible(bool visible) { if (!(_purchasedRoot == null)) { _purchasedRoot.SetActive(visible); } } public void SetPurchasedLabel(string textId) { if (!(_purchasedLabel == null)) { _purchasedLabel.text = Data.SystemText.Get(textId); } } public void SetRemainLabelVisible(bool visible) { if (!(_remainLabelRoot == null)) { _remainLabelRoot.SetActive(visible); } } public void SetFreePackLeaderSkinVisible(bool visible) { if (!(_freePackLeaderSkinObj == null)) { _freePackLeaderSkinObj.SetActive(visible); } } public void SetFreePackLeaderSkinText(string text) { if (_freePackLeaderSkinObj != null) { _freePackLeaderSkinObj.GetComponent().text = text; } } public void SetRibbonActive(bool active) { if (_ribbon != null) { _ribbon.SetActive(active); } } public void SetPinkRibbon(bool isPink) { if (_ribbon != null) { if (isPink) { _ribbon.GetComponent().spriteName = "campaign_title_04"; } else { _ribbon.GetComponent().spriteName = "campaign_title_02"; } } } public void SetIconActive(bool active, string iconSprite) { if (_ribbonIcon != null) { _ribbonIcon.GetComponent().spriteName = iconSprite; _ribbonIcon.SetActive(active); if (_ribbonLabel != null) { float x = (active ? 26.3f : 5f); int width = (active ? 167 : 203); Vector3 localPosition = _ribbonLabel.gameObject.transform.localPosition; localPosition.x = x; _ribbonLabel.gameObject.transform.localPosition = localPosition; _ribbonLabel.width = width; } } } public void SetWinterSprite(bool active) { if (active) { if (_ribbon != null) { _ribbon.GetComponent().spriteName = "campaign_title_02_winter"; } if (_purchaseButton != null) { _purchaseButton.normalSprite = "btn_free_pack_off_winter"; _purchaseButton.hoverSprite = "btn_free_pack_off_winter"; _purchaseButton.pressedSprite = "btn_free_pack_on_winter"; } if (_frame != null) { _frame.spriteName = "frame_12_winter"; } } } public void SetRemainCountRootVisible(bool visible) { if (_remainCountRoot != null) { _remainCountRoot.SetActive(visible); } } public void SetFreePackApealTextVisible(bool visible) { if (_freePackApealText != null) { _freePackApealText.gameObject.SetActive(visible); } } public void SetFreePackApealText(string text) { if (_freePackApealText != null) { _freePackApealText.text = text; } } public void SetInButtonText(string text) { if (_inButtonLabel != null) { _inButtonLabel.text = text; } } }