Files
ft/Client/Assets/Scripts/UI/JigsawPuzzle/JigsawPuzzleRewardComponent.cs
2026-06-29 21:18:33 +08:00

37 lines
1.5 KiB
C#

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<JigsawPuzzleManager>();
private void Awake()
{
reward = this.gameObject.GetComponentInChildren<RewardItemNew>();
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<PlayerItemData>().GetItemDataByDropIdLureInflation(data.InflationRate, puzzlePicture.DropID).FirstOrDefault();
reward.SetData(rewardData);
reward.gameObject.SetActive(true);
}
}
}