using System; using System.Collections.Generic; using System.Text; using UnityEngine; namespace Wizard; public class SelectCardPurchaseConfirmDialog : MonoBehaviour { private const int SKIN_WARNING_LINE_BOTTOM_ANCHOR_ABSOLUTE = -43; private const int SKIN_WARNING_LINE_TOP_ANCHOR_ABSOLUTE = -35; [SerializeField] private UIScrollView _scrollView; [SerializeField] private PurchaseConfirm _objPurchaseConfirm; [SerializeField] private UILabel _listHeaderLabel; [SerializeField] private UILabel _labelSelectCardList; [SerializeField] private UILabel _labelAcquiredSkinWarning; [SerializeField] private UISprite _spriteLine; private DialogBase _dialog; public static void Create(PackConfig packConfig, PackChildGachaInfo gachaInfo, int buyPackNum, List selectCardIdList, Action onDecide, bool isAcquireSkinCardPack, bool hasTargetSkin = false) { DialogBase dialog = UIManager.GetInstance().CreateDialogClose(); (UnityEngine.Object.Instantiate(Resources.Load("UI/layoutParts/Dialog/SelectCardPurchaseConfirmDialog")) as GameObject).GetComponent().Initialize(dialog, packConfig, gachaInfo, buyPackNum, selectCardIdList, onDecide, isAcquireSkinCardPack, hasTargetSkin); } private void Initialize(DialogBase dialog, PackConfig packConfig, PackChildGachaInfo gachaInfo, int buyPackNum, List selectCardIdList, Action onDecide, bool isAcquireSkinCardPack, bool hasTargetSkin) { _dialog = dialog; InitDialog(onDecide); SetPurchaseConfirm(packConfig, gachaInfo, buyPackNum); string key = (isAcquireSkinCardPack ? "Shop_0259" : "Shop_0199"); _listHeaderLabel.text = Data.SystemText.Get(key); SetSelectCardList(selectCardIdList, hasTargetSkin); _scrollView.ResetPosition(); } private void InitDialog(Action onDecide) { _dialog.SetSize(DialogBase.Size.M); _dialog.SetButtonLayout(DialogBase.ButtonLayout.BlueBtn_CancelBtn); _dialog.SetButtonText(Data.SystemText.Get("Shop_0082")); _dialog.ClickSe_Btn1 = Se.TYPE.SYS_BTN_DECIDE_TRANS; _dialog.SetButtonDelegate(delegate { onDecide(); }); _dialog.SetPanelDepth(100); _dialog.SetObj(base.gameObject); } private void SetPurchaseConfirm(PackConfig packConfig, PackChildGachaInfo gachaInfo, int buyPackNum) { _dialog.SetTitleLabel(packConfig.Title); int useItemNum = gachaInfo.Cost * buyPackNum; string purchaseText = Data.SystemText.Get("Shop_0101", packConfig.Title); _objPurchaseConfirm.SetClystalConfirmDialog(useItemNum, purchaseText, PlayerStaticData.UserCrystalCount, packConfig.ExpirtyInfo); if (packConfig.GachaPointData != null) { GachaPointData gachaPointData = packConfig.GachaPointData; int num = gachaPointData.IncreaseGachaPoint; if (gachaInfo.OverrideIncreaseGachaPoint > 0) { num = gachaInfo.OverrideIncreaseGachaPoint; } int num2 = (packConfig.IsSpecialCardPack ? num : (num * buyPackNum)); StartCoroutine(_objPurchaseConfirm.SetCardPackPoint(gachaPointData.GachaPoint, gachaPointData.GachaPoint + num2)); } } private void SetSelectCardList(List selectCardIdList, bool hasTargetSkin) { if (selectCardIdList.Count == 0) { _labelSelectCardList.gameObject.SetActive(value: false); } _labelSelectCardList.gameObject.SetActive(value: true); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < selectCardIdList.Count; i++) { if (i > 0) { stringBuilder.Append("\n"); } stringBuilder.Append(UserGoods.getUserGoodsName(UserGoods.Type.Card, selectCardIdList[i])); } _labelSelectCardList.text = stringBuilder.ToString(); if (hasTargetSkin) { _labelAcquiredSkinWarning.gameObject.SetActive(value: true); _labelAcquiredSkinWarning.text = Data.SystemText.Get("Shop_0166"); _spriteLine.bottomAnchor.absolute = -43; _spriteLine.topAnchor.absolute = -35; } } }