ItemDetailsPanel.cs 3.5 KB

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