Files
JJBB/Assets/Project/Script/GUI/Marry/BanQuetFireWorkPanel.cs

109 lines
2.7 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
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<int> _TabIdList = new List<int>();
foreach(var tab in TableManager.GetWeddingFireworks())
{
_TabIdList.Add(tab.Key);
}
_FireWorkItemContainer.InitContentItem(_TabIdList);
if(_TabIdList.Count > 0)
_FireWorkItemContainer.ForeachActiveItem<FireWorkItem>(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<FireWorkItem>(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);
}
}