ItemDetailsPanel.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System.Collections.Generic;
  2. using Core.Language;
  3. using Fort23.Core;
  4. using GameLogic.Bag;
  5. namespace Fort23.Mono
  6. {
  7. [UIBinding(prefab = "ItemDetailsPanel")]
  8. public partial class ItemDetailsPanel : UIPanel
  9. {
  10. ItemInfo itemInfo;
  11. List<ItemDetailsWidget> itemDetailsWidgets = new List<ItemDetailsWidget>();
  12. private void Init()
  13. {
  14. }
  15. protected override void AddEvent()
  16. {
  17. }
  18. protected override void DelEvent()
  19. {
  20. }
  21. public override void AddButtonEvent()
  22. {
  23. Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });
  24. }
  25. public async override CTask<bool> AsyncInit(object[] uiData)
  26. {
  27. itemInfo = uiData[0] as ItemInfo;
  28. Icon_ItemIcon.icon_name = itemInfo.config.icon;
  29. Text_Name.text = LanguageManager.Instance.Text(itemInfo.config.itemName);
  30. Text_Desc.text = LanguageManager.Instance.Text(itemInfo.config.itemDesc2);
  31. ItemDetailsWidget itemDetailsWidget1 = await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  32. itemDetailsWidget1.CustomInit("用途", LanguageManager.Instance.Text(itemInfo.config.itemDesc));
  33. itemDetailsWidgets.Add(itemDetailsWidget1);
  34. if (itemInfo.config.associateID == 1)
  35. {
  36. ItemDetailsWidget itemDetailsWidge2 = await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  37. itemDetailsWidge2.CustomInit("服用效果", $"增加成功概率{itemInfo.config.associateVlaue[2]},突破失败降低修为损耗{itemInfo.config.associateVlaue[3]}%");
  38. itemDetailsWidgets.Add(itemDetailsWidge2);
  39. }
  40. else if (itemInfo.config.associateID == 2)
  41. {
  42. ItemDetailsWidget itemDetailsWidge2 = await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  43. itemDetailsWidge2.CustomInit("服用效果", $"增加修为值{itemInfo.config.associateVlaue[0]}");
  44. itemDetailsWidgets.Add(itemDetailsWidge2);
  45. }
  46. if (PlayerManager.Instance.BagController.GetItemCount(itemInfo.itemID) > 0)
  47. {
  48. ItemDetailsWidget itemDetailsWidget = await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  49. itemDetailsWidget.CustomInit("道具数量", "道具数量:" + PlayerManager.Instance.BagController.GetItemCount(itemInfo.itemID));
  50. itemDetailsWidgets.Add(itemDetailsWidget);
  51. }
  52. return await base.AsyncInit(uiData);
  53. }
  54. public static async CTask OpenPanel(ItemInfo itemInfo)
  55. {
  56. await UIManager.Instance.LoadAndOpenPanel<ItemDetailsPanel>(null, uiData: new object[] { itemInfo });
  57. }
  58. public override void Close()
  59. {
  60. foreach (var itemDetailsWidget in itemDetailsWidgets)
  61. {
  62. UIManager.Instance.DormancyGComponent(itemDetailsWidget);
  63. }
  64. itemDetailsWidgets.Clear();
  65. base.Close();
  66. }
  67. }
  68. }