OpenServerStoryView.cs 8.4 KB

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