ItemDetailsPanel.cs 3.2 KB

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