using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using GCGame.Table; public class BanQuetFireWorkPanel : MonoBehaviour { public static BanQuetFireWorkPanel Instance; private void Awake() { Instance = this; } private void OnDestroy() { Instance = null; } private void OnEnable() { _InputNumBoard.Init(1, 1, 99); OnNumChange(); } private void Start() { InitItem(); } public UIContainerBase _FireWorkItemContainer; public UINumBoardInput _InputNumBoard; public Image _MoneyIcon; public Text _CostText; void InitItem() { List _TabIdList = new List(); foreach(var tab in TableManager.GetWeddingFireworks()) { _TabIdList.Add(tab.Key); } _FireWorkItemContainer.InitContentItem(_TabIdList); if(_TabIdList.Count > 0) _FireWorkItemContainer.ForeachActiveItem(item => { if(item._TabId == _TabIdList[0]) { item.OnItemClick(); } }); } private int _MoneyType = -1; void InitMoneyIcon(int type) { if (_MoneyType == type) return; LoadAssetBundle.Instance.SetImageSprite(_MoneyIcon, PlayerData.MONEY.GetMoneySpriteStr((MONEYTYPE)type)); } public void OnNumChange() { _CostText.text = _SingleCostVal * _InputNumBoard.Value + ""; } private int _CurSelectType = -1; private int _SingleCostVal = -1; public void OnItemClick(int tabId) { if (_CurSelectType == tabId) return; _CurSelectType = tabId; var fireWorkTab = TableManager.GetWeddingFireworksByID(tabId, 0); if(fireWorkTab != null) { InitMoneyIcon(fireWorkTab.CostSubClassType); _SingleCostVal = fireWorkTab.CostVal; } _FireWorkItemContainer.ForeachActiveItem(item => { item.ShowMarkIcon(item._TabId == tabId); }); _InputNumBoard.Init(1, 1, 99); OnNumChange(); } public void OnFireBtn() { var tab = TableManager.GetWeddingFireworksByID(_CurSelectType, 0); var singleCost = tab.CostVal; var moneyType = tab.CostSubClassType; if(JudgeMoneyLogic.IsMoneyEnough((MONEYTYPE)moneyType, singleCost * _InputNumBoard.Value)) { ReqFireworks req = new ReqFireworks(); req.nType = _CurSelectType; req.nNum = _InputNumBoard.Value; req.SendMsg(); OnCloseBtn(); } } public void OnCloseBtn() { this.gameObject.SetActive(false); } }