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

48 lines
1.8 KiB
C#

using asap.core;
using cfg;
using EnhancedUI.EnhancedScroller;
using GameCore;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
namespace Assets.Scripts.UI.JigsawPuzzle
{
public class JigsawPuzzleCell : EnhancedScrollerCellView
{
private RewardItemNew reward;
private Image piece;
public RectTransform RewardFlySource => piece.rectTransform;
private JigsawPuzzleData _jigsawPuzzleData;
private JigsawPuzzleData Data=> _jigsawPuzzleData??=GContext.container.Resolve<JigsawPuzzleManager>()?.Data??null;
private ShowImageData _imageData;
private void Awake()
{
reward = gameObject.FindChildGameObject(nameof(reward)).GetComponent<RewardItemNew>();
piece = gameObject.FindChildGameObject(nameof(piece)).GetComponent<Image>();
}
public void SetData(EventJigsawPuzzleReward puzzleReward)
{
if (puzzleReward == null) return;
var isItem = puzzleReward.ItemDropID != 0;
reward.gameObject.SetActive(isItem);
piece.gameObject.SetActive(!isItem);
if (isItem)
{
var rewardDatas = GContext.container.Resolve<PlayerItemData>()
.GetItemDataByDropIdLureInflation(Data.InflationRate, puzzleReward.ItemDropID);
reward.SetData(rewardDatas.FirstOrDefault());
}
else
{
var spriteName = $"{JigsawPuzzleManager.PriceImgName}{puzzleReward.Quality}";
if(_imageData==null)
_imageData = new ShowImageData(piece, spriteName);
else
_imageData.spriteName = spriteName;
_= GContext.container.Resolve<IUIService>().SetImageSprite(_imageData,this.gameObject.name);
}
}
}
}