using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; using System; namespace Snxxz.UI { public class WishingGetItemWin : Window { [SerializeField] Button sureBtn; [SerializeField] List awardItems = new List(); WishingPoolModel wishModel { get { return ModelCenter.Instance.GetModel(); } } ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel(); } } protected override void BindController() { } protected override void AddListeners() { sureBtn.AddListener(ClickRecevie); } protected override void OnPreOpen() { SetDisplayModel(); } protected override void OnAfterOpen() { transform.SetAsLastSibling(); } protected override void OnPreClose() { } protected override void OnAfterClose() { } private void SetDisplayModel() { List wellItems = wishModel.wishingAwardDict.Values.ToList(); for (int i = 0; i < awardItems.Count; i++) { var awardItem = awardItems[i]; if (i < wellItems.Count) { awardItem.parentObj.SetActive(true); var wellItem = wellItems[i]; ItemCellModel cellModel = new ItemCellModel((int)wellItem.itemId, true , (ulong)wellItem.itemCount); awardItem.itemBaisc.Init(cellModel); string rareIconKey = string.Empty; bool isRare = wishModel.TryGetItemRareIcon(wellItem.rare, out rareIconKey); awardItem.bestIcon.gameObject.SetActive(isRare); if (isRare) { awardItem.bestIcon.SetSprite(rareIconKey); } awardItem.itemBaisc.button.RemoveAllListeners(); awardItem.itemBaisc.button.AddListener(() => { ItemAttrData attrData = new ItemAttrData((int)wellItem.itemId, true , (ulong)wellItem.itemCount); tipsModel.SetItemTipsModel(attrData); }); } else { awardItem.parentObj.gameObject.SetActive(false); } } } private void ClickRecevie() { wishModel.SendGetAwardQuest(); CloseClick(); } [Serializable] public class AwardItem { public GameObject parentObj; public CommonItemBaisc itemBaisc; public Image bestIcon; } } }