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

37 lines
1.5 KiB
C#

using System.Collections.Generic;
using GameCore;
using UnityEngine;
using UnityEngine.UI;
public class ShootingRangeFinalRewardPopupPanel : MonoBehaviour
{
[SerializeField] private Button btnNormal, btnFinal;
[SerializeField] private GameObject rewardRoot, finalRewardRoot;
[SerializeField] private ShootingRewardLayout normalRewardLayout, finalRewardLayout;
private ShootingRangeAct.EventRewardPanelClose _panelCloseEvent;
public void Init(List<ItemData> rewardItems, bool isFinalStage = false)
{
btnNormal.onClick.AddListener(OnClickClaim);
btnFinal.onClick.AddListener(OnClickClaim);
rewardRoot.SetActive(!isFinalStage);
finalRewardRoot.SetActive(isFinalStage);
normalRewardLayout.SetRewards(rewardItems);
finalRewardLayout.SetRewards(rewardItems);
_panelCloseEvent = new ShootingRangeAct.EventRewardPanelClose
{
IsFinalStage = isFinalStage,
Rewards = rewardItems.ToArray(),
};
}
private void OnClickClaim()
{
// This panel does not use extra ShootingRangeBlocker.cs script.
ShootingRangeAct.EventAggregator.Publish(new ShootingRangeAct.EventPanelClose());
_panelCloseEvent.RewardPositionList = finalRewardLayout.isActiveAndEnabled ? finalRewardLayout.PositionList : normalRewardLayout.PositionList;
ShootingRangeAct.EventAggregator.Publish(_panelCloseEvent);
UIManager.Instance.DestroyUI(UITypes.ShootingRangeFinalRewardPopup);
}
}