XianTuLogInfoPanel.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using Core.Language;
  4. using Excel2Json;
  5. using Fort23.Core;
  6. using Fort23.UTool;
  7. using UnityEngine;
  8. namespace Fort23.Mono
  9. {
  10. public class XianTuLogInfoData
  11. {
  12. /// <summary>
  13. /// 1.大标题 2.标题 3.描述
  14. /// </summary>
  15. public int type;
  16. public string message;
  17. }
  18. [UIBinding(prefab = "XianTuLogInfoPanel")]
  19. public partial class XianTuLogInfoPanel : UIPanel, IScrollListContent
  20. {
  21. private XianTuLogConfig _xianTuLogConfig;
  22. List<XianTuLogInfoData> showXianTuLogInfoData = new List<XianTuLogInfoData>();
  23. List<UIComponent> components = new List<UIComponent>();
  24. private void Init()
  25. {
  26. }
  27. protected override void AddEvent()
  28. {
  29. }
  30. protected override void DelEvent()
  31. {
  32. }
  33. public override void AddButtonEvent()
  34. {
  35. Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });
  36. }
  37. public void CustomInit(int id)
  38. {
  39. showXianTuLogInfoData.Clear();
  40. _xianTuLogConfig = ConfigComponent.Instance.Get<XianTuLogConfig>(id);
  41. XianTuLogInfoData xianTuLogInfoData3 = new XianTuLogInfoData();
  42. xianTuLogInfoData3.type = 1;
  43. xianTuLogInfoData3.message = "北海";
  44. showXianTuLogInfoData.Add(xianTuLogInfoData3);
  45. var configs = EventSystemManager.Instance.eventConfigsMap[_xianTuLogConfig.ID];
  46. foreach (var @c in configs)
  47. {
  48. EventConfig eventConfig = c;
  49. AccountFileInfo.EventList eventList = AccountFileInfo.Instance.playerData.completeEvents.FirstOrDefault(cl => cl.eventID == c.ID);
  50. if (eventList == null)
  51. {
  52. //主线没有做不显示问好
  53. if (_xianTuLogConfig.EventType == 2)
  54. {
  55. XianTuLogInfoData xianTuLogInfoData = new XianTuLogInfoData();
  56. xianTuLogInfoData.type = 2;
  57. xianTuLogInfoData.message = "????????";
  58. XianTuLogInfoData xianTuLogInfoData1 = new XianTuLogInfoData();
  59. xianTuLogInfoData1.type = 3;
  60. xianTuLogInfoData1.message = "?????????????????????????????????";
  61. showXianTuLogInfoData.Add(xianTuLogInfoData);
  62. showXianTuLogInfoData.Add(xianTuLogInfoData1);
  63. }
  64. }
  65. else
  66. {
  67. XianTuLogInfoData xianTuLogInfoData = new XianTuLogInfoData();
  68. xianTuLogInfoData.type = 2;
  69. xianTuLogInfoData.message = LanguageManager.Instance.Text(eventConfig.EventName);
  70. showXianTuLogInfoData.Add(xianTuLogInfoData);
  71. foreach (var eventListSelectEventLinkId in eventList.selectEventLinkIds)
  72. {
  73. EventLinkConfig eventLinkConfig = ConfigComponent.Instance.Get<EventLinkConfig>(eventListSelectEventLinkId);
  74. if (eventLinkConfig.LanID != null)
  75. {
  76. foreach (var i in eventLinkConfig.LanID)
  77. {
  78. XianTuLogInfoData xianTuLogInfoData1 = new XianTuLogInfoData();
  79. xianTuLogInfoData1.type = 3;
  80. xianTuLogInfoData1.message = LanguageManager.Instance.Text(i);
  81. showXianTuLogInfoData.Add(xianTuLogInfoData1);
  82. }
  83. }
  84. }
  85. }
  86. }
  87. Content.Init(this, showXianTuLogInfoData.Count);
  88. }
  89. public async CTask<IScorllListWidget> GetIScorllListWidget(int index, RectTransform root)
  90. {
  91. if (index < 0 || index >= showXianTuLogInfoData.Count)
  92. {
  93. return null;
  94. }
  95. XianTuLogInfoData xianTuLogInfoData = showXianTuLogInfoData[index];
  96. if (xianTuLogInfoData.type == 1)
  97. {
  98. EventLogTitleWidget eventLogTitleWidget = await UIManager.Instance.CreateGComponent<EventLogTitleWidget>(null, ContentRoot);
  99. eventLogTitleWidget.CustomInit(xianTuLogInfoData.message);
  100. components.Add(eventLogTitleWidget);
  101. return eventLogTitleWidget;
  102. }
  103. else if (xianTuLogInfoData.type == 2)
  104. {
  105. EventLogInfoWidget eventLogInfoWidget = await UIManager.Instance.CreateGComponent<EventLogInfoWidget>(null, ContentRoot);
  106. eventLogInfoWidget.CustomInit(xianTuLogInfoData.message);
  107. components.Add(eventLogInfoWidget);
  108. return eventLogInfoWidget;
  109. }
  110. else if (xianTuLogInfoData.type == 3)
  111. {
  112. EventLogMessageWidget eventLogInfoWidget = await UIManager.Instance.CreateGComponent<EventLogMessageWidget>(null, ContentRoot);
  113. eventLogInfoWidget.CustomInit(xianTuLogInfoData.message);
  114. components.Add(eventLogInfoWidget);
  115. return eventLogInfoWidget;
  116. }
  117. return null;
  118. }
  119. public void HindIScorllListWidget(IScorllListWidget widget)
  120. {
  121. UIManager.Instance.DormancyGComponent(widget as UIComponent);
  122. }
  123. public override void Close()
  124. {
  125. showXianTuLogInfoData.Clear();
  126. foreach (var uiComponent in components)
  127. {
  128. UIManager.Instance.DormancyGComponent(uiComponent);
  129. }
  130. components.Clear();
  131. base.Close();
  132. }
  133. public async static CTask OpenPanel(int id)
  134. {
  135. XianTuLogInfoPanel xianTuLogInfoPanel = await UIManager.Instance.LoadAndOpenPanel<XianTuLogInfoPanel>(null);
  136. xianTuLogInfoPanel.CustomInit(id);
  137. }
  138. }
  139. }