ItemDetailsPanel.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. Icon_Quality.icon_name = "dec_wupin_pinzhi" + itemInfo.config.quality;
  33. ItemDetailsWidget itemDetailsWidget1 = await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  34. itemDetailsWidget1.CustomInit("用途", LanguageManager.Instance.Text(itemInfo.config.itemDesc));
  35. itemDetailsWidgets.Add(itemDetailsWidget1);
  36. //突破丹
  37. if (itemInfo.config.associateID == 1)
  38. {
  39. ItemDetailsWidget itemDetailsWidge2 = await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  40. itemDetailsWidge2.CustomInit("服用效果", $"增加成功概率{itemInfo.config.associateVlaue[2]},突破失败降低修为损耗{itemInfo.config.associateVlaue[3]}%");
  41. itemDetailsWidgets.Add(itemDetailsWidge2);
  42. }
  43. //修为丹
  44. else if (itemInfo.config.associateID == 2)
  45. {
  46. ItemDetailsWidget itemDetailsWidge2 = await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  47. itemDetailsWidge2.CustomInit("服用效果", $"增加修为值{itemInfo.config.associateVlaue[0]}");
  48. itemDetailsWidgets.Add(itemDetailsWidge2);
  49. }
  50. if (PlayerManager.Instance.BagController.GetItemCount(itemInfo.itemID) > 0)
  51. {
  52. ItemDetailsWidget itemDetailsWidget = await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  53. itemDetailsWidget.CustomInit("道具数量", "道具数量:" + PlayerManager.Instance.BagController.GetItemCount(itemInfo.itemID).ToStringEx());
  54. itemDetailsWidgets.Add(itemDetailsWidget);
  55. }
  56. return await base.AsyncInit(uiData);
  57. }
  58. public static async CTask OpenPanel(ItemInfo itemInfo)
  59. {
  60. await UIManager.Instance.LoadAndOpenPanel<ItemDetailsPanel>(null,UILayer.Top, uiData: new object[] { itemInfo });
  61. }
  62. public override void Close()
  63. {
  64. foreach (var itemDetailsWidget in itemDetailsWidgets)
  65. {
  66. UIManager.Instance.DormancyGComponent(itemDetailsWidget);
  67. }
  68. itemDetailsWidgets.Clear();
  69. base.Close();
  70. }
  71. }
  72. }