ItemDetailsPanel.cs 3.2 KB

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