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 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); } }