ItemDetailsPanel.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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. foreach (var itemDetailsWidget in itemDetailsWidgets)
  31. {
  32. UIManager.Instance.DormancyGComponent(itemDetailsWidget);
  33. }
  34. itemDetailsWidgets.Clear();
  35. itemInfo = uiData[0] as ItemInfo;
  36. Text_Name.text = LanguageManager.Instance.Text(itemInfo.config.itemName);
  37. if (itemInfo.config.itemDesc2 == 0)
  38. {
  39. Text_Desc.text = "";
  40. }
  41. else
  42. {
  43. Text_Desc.text = LanguageManager.Instance.Text(itemInfo.config.itemDesc2);
  44. }
  45. WidgetItem widgetItem =
  46. await UIManager.Instance.CreateGComponentForObject<WidgetItem>(WidgetItemGame, null);
  47. widgetItem.InitWidget(itemInfo, false);
  48. ItemDetailsWidget itemDetailsWidget1 =
  49. await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  50. itemDetailsWidget1.CustomInit(LanguageManager.Instance.Text(10884),
  51. LanguageManager.Instance.Text(itemInfo.config.itemDesc));
  52. itemDetailsWidgets.Add(itemDetailsWidget1);
  53. ItemAssociateConfig itemAssociateConfig =
  54. ConfigComponent.Instance.Get<ItemAssociateConfig>(itemInfo.config.associateID);
  55. if (itemAssociateConfig.LanID != -1 && itemAssociateConfig.LanID != 0)
  56. {
  57. ItemDetailsWidget itemDetailsWidge2 =
  58. await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  59. itemDetailsWidge2.CustomInit(LanguageManager.Instance.Text(10885),
  60. UtilTools.GetString(LanguageManager.Instance.Text(itemAssociateConfig.LanID),
  61. itemInfo.config.associateVlaue));
  62. itemDetailsWidgets.Add(itemDetailsWidge2);
  63. }
  64. if (PlayerManager.Instance.BagController.GetItemCount(itemInfo.itemID) > 0)
  65. {
  66. ItemDetailsWidget itemDetailsWidget =
  67. await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  68. itemDetailsWidget.CustomInit(LanguageManager.Instance.Text(10886),
  69. LanguageManager.Instance.Text(10327,
  70. PlayerManager.Instance.BagController.GetItemCount(itemInfo.itemID).ToStringEx()));
  71. itemDetailsWidgets.Add(itemDetailsWidget);
  72. }
  73. return await base.AsyncInit(uiData);
  74. }
  75. public static async CTask OpenPanel(ItemInfo itemInfo)
  76. {
  77. await UIManager.Instance.LoadAndOpenPanel<ItemDetailsPanel>(null, UILayer.Top,
  78. uiData: new object[] { itemInfo }, isShowBG: true);
  79. }
  80. public async override CTask Close()
  81. {
  82. foreach (var itemDetailsWidget in itemDetailsWidgets)
  83. {
  84. UIManager.Instance.DormancyGComponent(itemDetailsWidget);
  85. }
  86. itemDetailsWidgets.Clear();
  87. await base.Close();
  88. }
  89. }
  90. }