using Core.Language; using Excel2Json; using Fort23.UTool; using GameLogic.Bag; namespace Fort23.Mono { [UIBinding(prefab = "BreakthroughItemWidget")] public partial class BreakthroughItemWidget : UIComponent { /// /// 1.选择丹药 2.其他道具 /// private int type; public int itemId; public ItemInfo itemInfo; private void Init() { } public override void AddEvent() { } public override void DelEvent() { } private WidgetItem widgetItem; bool isSelected = false; public override void AddButtonEvent() { Btn_Select.onClick.AddListener(async () => { if (isSelected) return; isSelected = true; //打开选择丹药界面 if (type == 1) { SelectElixirPanel selectElixirPanel = await SelectElixirPanel.OpenPanel(this, async (e) => { isSelected = false; //取消选择丹药 if (e == null) { itemInfo = null; UIManager.Instance.DormancyGComponent(widgetItem); Icon_ItemIcon.gameObject.SetActive(false); widgetItem = null; Text_Bl.text = $"+{0}"; Text_ItemName.text = "丹药"; } else { itemInfo = new ItemInfo(e._itemConfig.ID, 1); // if (widgetItem == null) // { // widgetItem = await UIManager.Instance.CreateGComponent(null, ItemRoot); // } Icon_ItemIcon.gameObject.SetActive(true); Icon_ItemIcon.icon_name = itemInfo.config.icon; Text_Bl.text = $"+{itemInfo.config.associateVlaue[2]}"; Text_ItemName.text = LanguageManager.Instance.Text(itemInfo.config.itemName); // widgetItem.InitWidget(itemInfo); } }); await selectElixirPanel.UIClosed(); isSelected = false; } else { SelectBreakthroughItemPanel selectBreakthroughItemPanel = await SelectBreakthroughItemPanel.OpenPanel(this, async () => { isSelected = false; if (itemInfo != null) { itemInfo = null; Icon_ItemIcon.gameObject.SetActive(false); UIManager.Instance.DormancyGComponent(widgetItem); widgetItem = null; return; } if (PlayerManager.Instance.BagController.IsEnough(itemId, 1)) { itemInfo = new ItemInfo(itemId, 1); // if (widgetItem == null) // { // widgetItem = await UIManager.Instance.CreateGComponent(null, ItemRoot); // } Icon_ItemIcon.gameObject.SetActive(true); Icon_ItemIcon.icon_name = itemInfo.config.icon; Text_Bl.text = $"+{itemInfo.config.associateVlaue[2]}"; Text_ItemName.text = LanguageManager.Instance.Text(itemInfo.config.itemName); // widgetItem.InitWidget(itemInfo); } }); await selectBreakthroughItemPanel.UIClosed(); isSelected = false; } }); } public void CustomInit(int type, int itemId) { this.type = type; this.itemId = itemId; if (type == 1) { Text_Bl.text = $"+{0}"; Text_ItemName.text = "丹药"; } else { ItemConfig itemConfig = ConfigComponent.Instance.Get(itemId); if (itemConfig.itemTag == 3) { Text_Bl.text = $"+{itemConfig.associateVlaue[2]}"; Text_ItemName.text = LanguageManager.Instance.Text(itemConfig.itemName); } else { Text_Bl.text = $"+{itemConfig.associateVlaue[2]}"; Text_ItemName.text = LanguageManager.Instance.Text(itemConfig.itemName); } } } public override void DormancyObj() { UIManager.Instance.DormancyGComponent(widgetItem); widgetItem = null; itemInfo = null; Icon_ItemIcon.gameObject.SetActive(false); isSelected = false; base.DormancyObj(); } } }