48 lines
1.8 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
} |