using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class BlessedLandManageMouseCell : CellView
|
{
|
[SerializeField] ButtonEx btnChoose;
|
[SerializeField] ImageEx imgHave;
|
[SerializeField] ImageEx imgLock;
|
[SerializeField] TextEx txtName;
|
[SerializeField] Dropdown dropdown;
|
bool isChoose = false;
|
bool isLock;
|
BlessedLandModel blessedLandModel { get { return ModelCenter.Instance.GetModel<BlessedLandModel>(); } }
|
BlessedLandManageMouseModel model { get { return ModelCenter.Instance.GetModel<BlessedLandManageMouseModel>(); } }
|
|
public void Display(int itemId)
|
{
|
if (!ItemConfig.Has(itemId))
|
return;
|
|
ItemConfig itemConfig = ItemConfig.Get(itemId);
|
txtName.text = itemConfig.ItemName;
|
|
int lv = PlayerDatas.Instance.baseData.LV;
|
var itemIDToLimitLVDict = MineAreaItemConfig.GetItemIDToLimitLVDict();
|
if (!itemIDToLimitLVDict.TryGetValue(itemId, out var limitIv))
|
return;
|
|
var itemIDToItemLVListDict = MineAreaItemConfig.GetItemIDToItemLVListDict();
|
if (!itemIDToItemLVListDict.TryGetValue(itemId, out var list) || list.IsNullOrEmpty())
|
return;
|
|
dropdown.ClearOptions();
|
List<Dropdown.OptionData> optionDatas = new List<Dropdown.OptionData>();
|
for (int i = 0; i < list.Count; i++)
|
{
|
string itemInfo = Language.Get("LoadIconLV", list[i]);
|
optionDatas.Add(new Dropdown.OptionData(itemInfo));
|
}
|
dropdown.AddOptions(optionDatas);
|
|
if (model.nowChooseDict.ContainsKey(itemId))
|
{
|
isChoose = true;
|
dropdown.value = Mathf.Max(0, list.IndexOf(model.nowChooseDict[itemId]));
|
}
|
else
|
{
|
isChoose = false;
|
}
|
|
isLock = lv < limitIv;
|
imgLock.SetActive(isLock);
|
imgHave.SetActive(!isLock && isChoose);
|
|
btnChoose.SetListener(() =>
|
{
|
//当前道具未解锁,系统开启后解锁
|
if (isLock)
|
{
|
SysNotifyMgr.Instance.ShowTip("BlessedLandManageMouse01");
|
return;
|
}
|
|
if (list.IsNullOrEmpty() || list.Count <= dropdown.value)
|
return;
|
isChoose = !isChoose;
|
imgHave.SetActive(!isLock && isChoose);
|
model.SaveLocal(isChoose, itemId, list[dropdown.value]);
|
});
|
|
dropdown.SetListener((int value) =>
|
{
|
if (isChoose)
|
{
|
model.SaveLocal(isChoose, itemId, list[value]);
|
}
|
});
|
}
|
}
|
}
|