ItemDetailsPanel.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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. Icon_Quality.icon_name = "dec_wupin_pinzhi" + itemInfo.config.quality;
  34. if (itemInfo.config.associateID == 3)
  35. {
  36. SkillConfig skillConfig =
  37. ConfigComponent.Instance.Get<SkillConfig>(itemInfo.config.associateVlaue[1] * 10 + 1);
  38. if (skillConfig.attribute == 1)
  39. {
  40. Icon_ItemIcon.icon_name = "dec_ck_gf_jin";
  41. }
  42. else if (skillConfig.attribute == 4)
  43. {
  44. Icon_ItemIcon.icon_name = "dec_ck_gf_mu";
  45. }
  46. else if (skillConfig.attribute == 2)
  47. {
  48. Icon_ItemIcon.icon_name = "dec_ck_gf_shui";
  49. }
  50. else if (skillConfig.attribute == 8)
  51. {
  52. Icon_ItemIcon.icon_name = "dec_ck_gf_huo";
  53. }
  54. else if (skillConfig.attribute == 16)
  55. {
  56. Icon_ItemIcon.icon_name = "dec_ck_gf_tu";
  57. }
  58. }
  59. //碎片
  60. else if (itemInfo.config.associateID == 11)
  61. {
  62. ItemConfig itemConfig2 = ConfigComponent.Instance.Get<ItemConfig>(itemInfo.config.associateVlaue[0]);
  63. SkillConfig skillConfig =
  64. ConfigComponent.Instance.Get<SkillConfig>(itemConfig2.associateVlaue[1] * 10 + 1);
  65. if (skillConfig.attribute == 1)
  66. {
  67. Icon_ItemIcon.icon_name = "dec_ck_gf_jin";
  68. }
  69. else if (skillConfig.attribute == 4)
  70. {
  71. Icon_ItemIcon.icon_name = "dec_ck_gf_mu";
  72. }
  73. else if (skillConfig.attribute == 2)
  74. {
  75. Icon_ItemIcon.icon_name = "dec_ck_gf_shui";
  76. }
  77. else if (skillConfig.attribute == 8)
  78. {
  79. Icon_ItemIcon.icon_name = "dec_ck_gf_huo";
  80. }
  81. else if (skillConfig.attribute == 16)
  82. {
  83. Icon_ItemIcon.icon_name = "dec_ck_gf_tu";
  84. }
  85. }
  86. else
  87. {
  88. Icon_ItemIcon.icon_name = itemInfo.config.icon;
  89. }
  90. ItemDetailsWidget itemDetailsWidget1 =
  91. await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  92. itemDetailsWidget1.CustomInit("用途", LanguageManager.Instance.Text(itemInfo.config.itemDesc));
  93. itemDetailsWidgets.Add(itemDetailsWidget1);
  94. //突破丹
  95. if (itemInfo.config.associateID == 1)
  96. {
  97. ItemDetailsWidget itemDetailsWidge2 =
  98. await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  99. itemDetailsWidge2.CustomInit("服用效果",
  100. $"增加成功概率{itemInfo.config.associateVlaue[2]},突破失败降低修为损耗{itemInfo.config.associateVlaue[3]}%");
  101. itemDetailsWidgets.Add(itemDetailsWidge2);
  102. }
  103. //修为丹
  104. else if (itemInfo.config.associateID == 2)
  105. {
  106. ItemDetailsWidget itemDetailsWidge2 =
  107. await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  108. itemDetailsWidge2.CustomInit("服用效果", $"增加修为值{itemInfo.config.associateVlaue[0]}");
  109. itemDetailsWidgets.Add(itemDetailsWidge2);
  110. }
  111. if (PlayerManager.Instance.BagController.GetItemCount(itemInfo.itemID) > 0)
  112. {
  113. ItemDetailsWidget itemDetailsWidget =
  114. await UIManager.Instance.CreateGComponent<ItemDetailsWidget>(null, Connect);
  115. itemDetailsWidget.CustomInit("道具数量",
  116. "道具数量:" + PlayerManager.Instance.BagController.GetItemCount(itemInfo.itemID).ToStringEx());
  117. itemDetailsWidgets.Add(itemDetailsWidget);
  118. }
  119. return await base.AsyncInit(uiData);
  120. }
  121. public static async CTask OpenPanel(ItemInfo itemInfo)
  122. {
  123. await UIManager.Instance.LoadAndOpenPanel<ItemDetailsPanel>(null, UILayer.Top,
  124. uiData: new object[] { itemInfo }, isShowBG: true);
  125. }
  126. public override void Close()
  127. {
  128. foreach (var itemDetailsWidget in itemDetailsWidgets)
  129. {
  130. UIManager.Instance.DormancyGComponent(itemDetailsWidget);
  131. }
  132. itemDetailsWidgets.Clear();
  133. base.Close();
  134. }
  135. }
  136. }