using System; using Cute; using UnityEngine; using Wizard; using Wizard.Scripts.Network.Data.TaskData.SkinPurchase; public class ClassSkinPlate : MonoBehaviour { private const int MAX_LENGTH_VIEW_SINGLE_PRODUCT_NAME = 15; private const int MAX_LENGTH_VIEW_SINGLE_PRODUCT_NAME_ALPHABET = 35; private const int MAX_LENGTH_VIEW_LARGE_SIZE_PRODUCT_NAME = 20; private const int MAX_LENGTH_VIEW_LARGE_SIZE_PRODUCT_NAME_ALPHABET = 39; private const int WIDTH_PRODUCT_BG_SPRITE_NORMAL = 357; private const int WIDTH_PRODUCT_BG_SPRITE_LARGE = 411; private readonly Vector3 POS_VIEW_SINGLE_PRODUCT_NAME = new Vector3(13f, -52f, 0f); private readonly Vector3 POS_VIEW_MULTI_PRODUCT_NAME = new Vector3(0f, -52f, 0f); [SerializeField] private UIEventListener _eventListenerSkinImage; [SerializeField] private UISprite _spritePlateBG; [SerializeField] private UILabel _labelFree; [SerializeField] private UILabel _labelCostCrystal; [SerializeField] private UILabel _labelCostRupy; [SerializeField] private UILabel _labelCostTicket; [SerializeField] private UIButton m_BtnBuy; [SerializeField] private UILabel m_LabelBuy; [SerializeField] private UILabel m_LabelPurchased; [SerializeField] private UILabel _LabelProductName; [SerializeField] private UITexture _uiClassSkinTexture; [SerializeField] private UITexture _uiClassSkinTextureLarge; [SerializeField] private UISprite _spriteClassColorIcon; [SerializeField] private UITexture _leaderSkinTicketIcon; public SkinProductInfo ProductInfo { get; private set; } public SkinSeriesPurchaseInfo SeriesInfo { get; private set; } public Texture ImageTexture { get; private set; } private void Start() { m_LabelPurchased.text = Data.SystemText.Get("Shop_0100"); } public void SetMultiData(SkinSeriesPurchaseInfo seriesInfo, EventDelegate onPushBuyBtnCallback = null, Action onTapSkinImage = null) { SetBuyButtonToGrey(isGrey: false); bool isLargeImage = Data.Master.LeaderSkinSeriesIdDic[seriesInfo.series_id].IsLargeImage; ProductInfo = null; SeriesInfo = seriesInfo; Texture mainTexture = Toolbox.ResourcesManager.LoadObject(Toolbox.ResourcesManager.GetAssetTypePath(seriesInfo.saleInfo.path, ResourcesManager.AssetLoadPathType.ShopClassSkin, isfetch: true)); if (isLargeImage) { _uiClassSkinTexture.gameObject.SetActive(value: false); _uiClassSkinTextureLarge.gameObject.SetActive(value: true); _uiClassSkinTextureLarge.mainTexture = mainTexture; _spritePlateBG.width = 411; int maxLength = (Global.IsAlphabetLanguage() ? 39 : 20); _LabelProductName.text = ShopCommonUtility.TrimProductName(seriesInfo.saleInfo.name, maxLength); } else { _uiClassSkinTexture.gameObject.SetActive(value: true); _uiClassSkinTextureLarge.gameObject.SetActive(value: false); _uiClassSkinTexture.mainTexture = mainTexture; _spritePlateBG.width = 357; _LabelProductName.text = ShopCommonUtility.TrimProductName(seriesInfo.saleInfo.name); } _LabelProductName.transform.localPosition = POS_VIEW_MULTI_PRODUCT_NAME; _LabelProductName.effectStyle = UILabel.Effect.None; _spriteClassColorIcon.gameObject.SetActive(value: false); m_BtnBuy.onClick.Clear(); m_BtnBuy.onClick.Add(onPushBuyBtnCallback); _eventListenerSkinImage.onClick = null; _eventListenerSkinImage.onClick = delegate { onTapSkinImage.Call(); }; if (seriesInfo.saleInfo.costTicketItemId.HasValue) { _leaderSkinTicketIcon.mainTexture = Toolbox.ResourcesManager.LoadObject(ShopCommonUtility.GetTicketIconPath(seriesInfo.saleInfo.costTicketItemId.Value.ToString(), isFetch: true)); } if (seriesInfo.is_completed && seriesInfo._rewardStatus != SkinSeriesPurchaseInfo.RewardStatus.not_got) { _labelCostCrystal.gameObject.SetActive(value: false); _labelCostRupy.gameObject.SetActive(value: false); _labelFree.gameObject.SetActive(value: false); _labelCostTicket.gameObject.SetActive(value: false); } else { ShopCommonUtility.SetCostInfo(seriesInfo.saleInfo, _labelCostCrystal, _labelCostRupy, _labelFree, _labelCostTicket); } _SetMultiBuyButton(seriesInfo); } public void SetBuyButtonToGrey(bool isGrey) { UIManager.SetObjectToGrey(m_BtnBuy.gameObject, isGrey); } public void SetData(SkinProductInfo productInfo, EventDelegate onPushBuyBtnCallback = null, Action onTapSkinImage = null) { SeriesInfo = null; ProductInfo = productInfo; ClassCharacterMasterData charaPrmBySkinId = GameMgr.GetIns().GetDataMgr().GetCharaPrmBySkinId(productInfo.leader_skin_id); _LabelProductName.transform.localPosition = POS_VIEW_SINGLE_PRODUCT_NAME; int maxLength = (Global.IsAlphabetLanguage() ? 35 : 15); _LabelProductName.text = ShopCommonUtility.TrimProductName(productInfo.saleInfo.name, maxLength); ClassCharaPrm.SetClassLabelSetting(_LabelProductName, charaPrmBySkinId.ClassColorId); _uiClassSkinTextureLarge.gameObject.SetActive(value: false); _uiClassSkinTexture.gameObject.SetActive(value: true); _uiClassSkinTexture.mainTexture = Toolbox.ResourcesManager.LoadObject(Toolbox.ResourcesManager.GetAssetTypePath(productInfo.saleInfo.path, ResourcesManager.AssetLoadPathType.ClassCharaSkinThumbnail, isfetch: true)); _spritePlateBG.width = 357; _spriteClassColorIcon.gameObject.SetActive(value: true); _spriteClassColorIcon.spriteName = ClassCharaPrm.GetIconSpriteName(charaPrmBySkinId.clan); m_BtnBuy.onClick.Clear(); m_BtnBuy.onClick.Add(onPushBuyBtnCallback); _eventListenerSkinImage.onClick = null; _eventListenerSkinImage.onClick = delegate { onTapSkinImage.Call(); }; if (productInfo.IsEnableBuyTicket) { _leaderSkinTicketIcon.mainTexture = Toolbox.ResourcesManager.LoadObject(ShopCommonUtility.GetTicketIconPath(productInfo.saleInfo.costTicketItemId.Value.ToString(), isFetch: true)); } ShopCommonUtility.SetCostInfo(productInfo.saleInfo, _labelCostCrystal, _labelCostRupy, _labelFree, _labelCostTicket); _SetBuyButton(productInfo); } private void _SetBuyButton(SkinProductInfo productInfo) { if (!productInfo.is_purchased) { m_BtnBuy.gameObject.SetActive(value: true); m_BtnBuy.isEnabled = true; m_LabelPurchased.gameObject.SetActive(value: false); if (productInfo.saleInfo.isFree) { m_LabelBuy.text = Data.SystemText.Get("Shop_0099"); } else { m_LabelBuy.text = Data.SystemText.Get("Shop_0095"); } } else { m_BtnBuy.gameObject.SetActive(value: false); m_LabelPurchased.gameObject.SetActive(value: true); } } private void _SetMultiBuyButton(SkinSeriesPurchaseInfo seriesInfo) { if (seriesInfo.is_completed && seriesInfo._rewardStatus != SkinSeriesPurchaseInfo.RewardStatus.not_got) { m_BtnBuy.gameObject.SetActive(value: false); m_LabelPurchased.gameObject.SetActive(value: true); return; } m_BtnBuy.gameObject.SetActive(value: true); m_BtnBuy.isEnabled = true; m_LabelPurchased.gameObject.SetActive(value: false); if (seriesInfo.saleInfo.isFree) { m_LabelBuy.text = Data.SystemText.Get("Shop_0099"); } else { m_LabelBuy.text = Data.SystemText.Get("Shop_0095"); } } }