using asap.core; using GameCore; using System.Linq; using UnityEngine; namespace Assets.Scripts.UI.JigsawPuzzle { public class JigsawPuzzleRewardComponent : MonoBehaviour { private RewardItemNew reward; private JigsawPuzzleManager _jigsawPuzzleManager; private JigsawPuzzleManager JigsawPuzzleManager => _jigsawPuzzleManager ??= GContext.container.Resolve(); private void Awake() { reward = this.gameObject.GetComponentInChildren(); reward.gameObject.SetActive(false); } private void Start() { if (JigsawPuzzleManager == null || JigsawPuzzleManager.Data == null) return; var data = JigsawPuzzleManager.Data; if (data == null) return; var piecePuzzleReward = JigsawPuzzleManager.GetEventRewards().Where((x) => x.PictureID > 0).FirstOrDefault(); if (piecePuzzleReward == null) return; var puzzlePicture = data.Tables.TbEventJigsawPuzzlePicture.GetOrDefault(piecePuzzleReward.PictureID); if (puzzlePicture == null) { Debug.LogError($"{this.GetType().Name} 配置错误 puzzlePicture is null PictureID {piecePuzzleReward.PictureID}"); } var rewardData = GContext.container.Resolve().GetItemDataByDropIdLureInflation(data.InflationRate, puzzlePicture.DropID).FirstOrDefault(); reward.SetData(rewardData); reward.gameObject.SetActive(true); } } }