OpenServerStoryView.cs 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. using UnityEngine;
  2. using FairyGUI;
  3. using UI.OpenServerActivity;
  4. using UI.CommonGame;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using cfg.GfgCfg;
  8. namespace GFGGame
  9. {
  10. public class OpenServerStoryView : BaseWindow
  11. {
  12. private UI_OpenServerStoryUI _ui;
  13. private Dictionary<int, List<StoryLevelCfg>> _storyLevelCfgs = new Dictionary<int, List<StoryLevelCfg>>();
  14. private int _activityId;
  15. private int _activityType;
  16. private ActivityOpenCfg _activityCfg;
  17. //private ValueBarController _valueBarController;
  18. public override void Dispose()
  19. {
  20. // if (_valueBarController != null)
  21. // {
  22. // _valueBarController.Dispose();
  23. // _valueBarController = null;
  24. // }
  25. if (_ui != null)
  26. {
  27. _ui.Dispose();
  28. _ui = null;
  29. }
  30. base.Dispose();
  31. }
  32. protected override void Init()
  33. {
  34. base.Init();
  35. }
  36. protected override void OnInit()
  37. {
  38. base.OnInit();
  39. packageName = UI_OpenServerStoryUI.PACKAGE_NAME;
  40. _ui = UI_OpenServerStoryUI.Create();
  41. viewCom = _ui.target;
  42. isfullScreen = true;
  43. isReturnView = true;
  44. //_valueBarController = new ValueBarController(_ui.m_valueBar);
  45. _ui.m_btnBack.onClick.Add(OnClickBtnBack);
  46. _ui.m_list.itemRenderer = RenderListItem;
  47. }
  48. protected override void AddEventListener()
  49. {
  50. base.AddEventListener();
  51. }
  52. protected override void OnShown()
  53. {
  54. base.OnShown();
  55. // _valueBarController.OnShown();
  56. // _valueBarController.UpdateList(new List<int>() { ConstItemID.GET_TICKETS });
  57. _activityType = (int)this.viewData;
  58. StudioDataManager.Instance.VIEW_NAME = typeof(OpenServerStoryView).FullName;
  59. StudioDataManager.Instance.PROPERTY_SELECT_INDEX = _activityType;
  60. _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("sdcy_jq_bg");
  61. _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(_activityType);
  62. _activityCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(_activityId);
  63. _storyLevelCfgs.Clear();
  64. _ui.m_list.numItems = _activityCfg.Params1.Count;
  65. }
  66. protected override void OnHide()
  67. {
  68. base.OnHide();
  69. //_valueBarController.OnHide();
  70. }
  71. protected override void RemoveEventListener()
  72. {
  73. base.RemoveEventListener();
  74. }
  75. private void OnClickBtnBack()
  76. {
  77. ViewManager.GoBackFrom(typeof(OpenServerStoryView).FullName);
  78. }
  79. private void RenderListItem(int index, GObject obj)
  80. {
  81. int posRedX = -130;
  82. int posRedY = 30;
  83. bool redVisible = false;
  84. UI_StoryItem item = UI_StoryItem.Proxy(obj);
  85. ActivityStoryCfg activityStoryCfg =
  86. CommonDataManager.Tables.TblActivityStoryCfg.GetOrDefault(_activityCfg.Params4[index]);
  87. var storyLevelCfg = CommonDataManager.Tables.TblStoryLevelCfg.DataList
  88. .Where(a => a.Type == activityStoryCfg.Type &&
  89. a.SubType == activityStoryCfg.SubType &&
  90. a.ChapterId == _activityCfg.Params4[index]).ToList();
  91. _storyLevelCfgs.Add(index, storyLevelCfg);
  92. item.m_posType.selectedIndex = index % 2;
  93. item.m_txtTitle.text = activityStoryCfg.Name;
  94. item.m_txtNumber.text = "0" + (index + 1);
  95. item.m_rewardItem.m_txtCount.text = storyLevelCfg[0].BonusOnce[0].Count.ToString();
  96. ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(storyLevelCfg[0].BonusOnce[0].ItemId);
  97. item.m_rewardItem.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg);
  98. if (item.m_rewardItem.target.data == null)
  99. item.m_rewardItem.target.onClick.Add(OnClickIcon);
  100. item.m_rewardItem.target.data = itemCfg.Id;
  101. if (index > 0 && (!InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].Id) ||
  102. !ItemDataManager.ItemCollect.ContainsKey(activityStoryCfg.NeedItems[0].ItemId) ||
  103. ItemDataManager.ItemCollect[activityStoryCfg.NeedItems[0].ItemId] <
  104. activityStoryCfg.NeedItems[0].Count))
  105. {
  106. item.m_storyImageType.selectedIndex = 0;
  107. }
  108. else
  109. {
  110. item.m_storyImageType.selectedIndex = index + 1;
  111. }
  112. if (item.m_posType.selectedIndex == 1)
  113. {
  114. posRedX = -52;
  115. posRedY = 30;
  116. }
  117. if ((index == 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index][0].Id)) || (index > 0 &&
  118. InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].Id) &&
  119. !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index][0].Id) &&
  120. ItemDataManager.ItemCollect.ContainsKey(activityStoryCfg.NeedItems[0].ItemId) &&
  121. ItemDataManager.ItemCollect[activityStoryCfg.NeedItems[0].ItemId] >=
  122. activityStoryCfg.NeedItems[0].Count))
  123. {
  124. redVisible = true;
  125. }
  126. RedDotController.Instance.SetComRedDot(item.target, redVisible, "", posRedX, posRedY);
  127. if (activityStoryCfg.NeedItems.Count > 0)
  128. {
  129. int count;
  130. if (ItemDataManager.ItemCollect.TryGetValue(activityStoryCfg.NeedItems[0].ItemId, out count))
  131. {
  132. if (count < activityStoryCfg.NeedItems[0].Count)
  133. {
  134. item.m_openCloseType.selectedIndex = 0;
  135. item.m_txtNotOpenTitle.text = string.Format("收集{0}/{1}个",
  136. ItemDataManager.ItemCollect[activityStoryCfg.NeedItems[0].ItemId],
  137. activityStoryCfg.NeedItems[0].Count);
  138. ItemCfg itemNeedCfg =
  139. CommonDataManager.Tables.TblItemCfg.GetOrDefault(activityStoryCfg.NeedItems[0].ItemId);
  140. item.m_loaNeedIcon.url = ResPathUtil.GetIconPath(itemNeedCfg);
  141. }
  142. else
  143. {
  144. item.m_openCloseType.selectedIndex = 1;
  145. }
  146. }
  147. else
  148. {
  149. item.m_openCloseType.selectedIndex = 0;
  150. item.m_txtNotOpenTitle.text = string.Format("收集{0}/{1}个", 0, activityStoryCfg.NeedItems[0].Count);
  151. ItemCfg itemNeedCfg =
  152. CommonDataManager.Tables.TblItemCfg.GetOrDefault(activityStoryCfg.NeedItems[0].ItemId);
  153. item.m_loaNeedIcon.url = ResPathUtil.GetIconPath(itemNeedCfg);
  154. }
  155. }
  156. if (item.m_loaItemBg.data == null)
  157. item.m_loaItemBg.onClick.Add(OnClickBtnPlay);
  158. item.m_loaItemBg.data = index;
  159. UI_StoryItem.ProxyEnd();
  160. }
  161. private void OnClickIcon(EventContext context)
  162. {
  163. GObject obj = context.sender as GObject;
  164. int itemId = (int)obj.data;
  165. GoodsItemTipsController.ShowItemTips(itemId);
  166. }
  167. private void OnClickBtnPlay(EventContext context)
  168. {
  169. GObject obj = context.sender as GObject;
  170. int index = (int)obj.data;
  171. ActivityStoryCfg activityStoryCfg =
  172. CommonDataManager.Tables.TblActivityStoryCfg.GetOrDefault(_activityCfg.Params4[index]);
  173. StoryLevelCfg storyLevelCfg = _storyLevelCfgs[index][0];
  174. if (index > 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].Id))
  175. {
  176. PromptController.Instance.ShowFloatTextPrompt("需通关前置关卡");
  177. return;
  178. }
  179. if (index > 0)
  180. {
  181. int count;
  182. if (ItemDataManager.ItemCollect.TryGetValue(activityStoryCfg.NeedItems[0].ItemId, out count))
  183. {
  184. if (count < activityStoryCfg.NeedItems[0].Count)
  185. {
  186. PromptController.Instance.ShowFloatTextPrompt("需收集物达到开启需求");
  187. return;
  188. }
  189. }
  190. else
  191. {
  192. PromptController.Instance.ShowFloatTextPrompt("需收集物达到开启需求");
  193. return;
  194. }
  195. }
  196. MainStoryDataManager.currentLevelCfgId = storyLevelCfg.Id;
  197. InstanceZonesController.ShowLevelView(storyLevelCfg.Id,
  198. StudioDataManager.Instance.OnFinishStudioStoryLevel);
  199. }
  200. }
  201. }