using vnxbqy.UI; using System.Collections.Generic; using UnityEngine.UI; using UnityEngine; public class GodKingSelectItemsCell : ILBehaviour { List preSelectItems = new List(); protected override void Awake() { for (int i = 0; i < 3; i++) { preSelectItems.Add(proxy.GetWidgtEx("selectItem" + i)); } } public void Display(int index) { for (int i = 0; i < 3; i++) { int itemIndex = i + index; if (itemIndex < GodKingGiftModel.Instance.itemsLib.Length) { preSelectItems[i].SetActiveIL(true); ShowItem(preSelectItems[i], itemIndex); } else { preSelectItems[i].SetActiveIL(false); } } } void ShowItem(Transform itemObj, int itemIndex) { var itemInfo = GodKingGiftModel.Instance.itemsLib[itemIndex]; var itemCell = itemObj.Find("itemcell").GetComponent(); int itemID = (int)itemInfo.ItemID; itemCell.Init(new ItemCellModel(itemID, false, itemInfo.ItemCount)); itemCell.button.SetListener(()=>{ ItemTipUtility.Show(itemID); }); var toggleBtn = itemObj.Find("selectButton").GetComponent(); toggleBtn.SetListener(()=> { if (!toggleBtn.isOn && !CanSelectItem(itemIndex)) return; toggleBtn.isOn = !toggleBtn.isOn; GodKingGiftModel.Instance.OnSelectItem(itemIndex, toggleBtn.isOn); }); toggleBtn.isOn = hasItem(itemInfo.ItemNum); //var itemName = itemObj.Find("itemname").GetComponent(); //itemName.text = ItemConfig.Get((int)itemInfo.ItemID).ItemName; var canSelectCnt = itemObj.Find("count").GetComponent(); if (itemInfo.CanChooseTimes == 0) { canSelectCnt.text = Language.Get("DailyQuest_NoLevelLimit"); } else { int remainCnt = itemInfo.CanChooseTimes - itemInfo.ChooseTimes; canSelectCnt.text = Language.Get("tdlb5", UIHelper.AppendColor(remainCnt == 0 ? TextColType.Red : TextColType.Green, remainCnt.ToString(), true)); } } bool hasItem(int num) { for (int i = 0; i < GodKingGiftModel.Instance.selectedItems.Count; i++) { var itemInfo = GodKingGiftModel.Instance.selectedItems[i]; if (itemInfo.itemNum == num && itemInfo.libType == (GodKingGiftModel.Instance.selectType + 1)) { return true; } } return false; } bool CanSelectItem(int itemIndex) { //1. 库已无可选个数 2.本物品无可选个数 var maxCnt = GodKingGiftModel.Instance.GetLibSelectCnt(GodKingGiftModel.Instance.selectType + 1); if (GodKingGiftModel.Instance.SelectdCountByLib(GodKingGiftModel.Instance.selectType + 1) == maxCnt) { SysNotifyMgr.Instance.ShowTip("ActGodGiftNotify1"); return false; } var itemInfo = GodKingGiftModel.Instance.itemsLib[itemIndex]; if (itemInfo.CanChooseTimes != 0 && itemInfo.CanChooseTimes == itemInfo.ChooseTimes) { SysNotifyMgr.Instance.ShowTip("ActGodGiftNotify2"); return false; } return true; } }