Files
back_cantanBuilding/Assets/Scripts/UI/Shop/GiftSelectionPackCustomizePanel.cs
2026-05-26 16:15:54 +08:00

76 lines
3.1 KiB
C#

using asap.core;
using GameCore;
using UnityEngine;
using UnityEngine.UI;
public class GiftSelectionPackCustomizePanel : MonoBehaviour
{
private GameObject[] _items;
private Button _btnClose, _btnConfirm, _btnConfirmGray;
private Animator _aniConfirm;
private ToggleGroup _tglItem;
private IEventAggregator _eventAggregator;
private int _rewardSelectIdx = -1;
public void Init(ItemData[] items, int selected, IEventAggregator ea)
{
_items = new GameObject[4];
for (int i = 0; i < 4; i++)
_items[i] = transform.Find($"root/Content_item/Item{i + 1}").gameObject;
_btnClose = transform.Find("btn_close").GetComponent<Button>();
_btnConfirm = transform.Find("root/btn_confrim/btn_green").GetComponent<Button>();
_aniConfirm = transform.Find("root/btn_confrim/btn_green").GetComponent<Animator>();
_btnConfirmGray = transform.Find("root/btn_confrim_gray/btn_green").GetComponent<Button>();
_tglItem = transform.Find("root/Content_item").GetComponent<ToggleGroup>();
_btnClose.onClick.AddListener(() => {
UIManager.Instance.DestroyUI(UITypes.GiftSelectPackCustomizePanel);
});
for (int i = 0; i < 4; i++)
{
int index = i;
_items[i] = transform.Find($"root/Content_item/Item{i + 1}").gameObject;
_items[i].transform.Find("btn_cherk/Ani_Container/Checkmark").gameObject.SetActive(false);
_items[i].GetComponent<Toggle>().onValueChanged.AddListener((bool isOn) =>
{
_rewardSelectIdx = index;
_items[index].transform.Find("btn_cherk/Ani_Container/Checkmark").gameObject.SetActive(isOn);
_btnConfirm.gameObject.SetActive(true);
_btnConfirmGray.gameObject.SetActive(false);
});
}
_tglItem.allowSwitchOff = true;
_eventAggregator = ea;
for (int i = 0; i < 4; i++)
{
if (i >= items.Length)
{
_items[i].SetActive(false);
continue;
}
_items[i].transform.Find("btn_green/reward_1").gameObject.GetComponent<RewardItemNew>()
.SetData(items[i]);
_items[i].GetComponent<Toggle>().isOn = (i == selected);
_items[i].transform.Find("btn_cherk/Ani_Container/Checkmark").gameObject.SetActive(i == selected);
}
_btnConfirm.onClick.AddListener(OnClickConfirm);
_btnConfirmGray.onClick.AddListener(() => ToastPanel.Show(LocalizationMgr.GetText("UI_ToastPanel_79")));
if (selected != -1)
{
_rewardSelectIdx = selected;
_btnConfirm.gameObject.SetActive(true);
_btnConfirmGray.gameObject.SetActive(false);
}
else
{
_btnConfirm.gameObject.SetActive(false);
_btnConfirmGray.gameObject.SetActive(true);
}
}
private void OnClickConfirm()
{
_eventAggregator.Publish(new EventSelectionPackItemConfirm(_rewardSelectIdx));
UIManager.Instance.DestroyUI(UITypes.GiftSelectPackCustomizePanel);
}
}