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()?.Data??null; private ShowImageData _imageData; private void Awake() { reward = gameObject.FindChildGameObject(nameof(reward)).GetComponent(); piece = gameObject.FindChildGameObject(nameof(piece)).GetComponent(); } 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() .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().SetImageSprite(_imageData,this.gameObject.name); } } } }