源战役客户端
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
5.5 KiB

  1. GuildEventCollectView = GuildEventCollectView or BaseClass(BaseItem)
  2. local GuildEventCollectView = GuildEventCollectView
  3. function GuildEventCollectView:__init()
  4. self.base_file = "guild"
  5. self.layout_file = "GuildEventCollectView"
  6. self.model = GuildModel:getInstance()
  7. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40802) --打开界面时要请求活动次数
  8. self:Load()
  9. end
  10. function GuildEventCollectView:Load_callback()
  11. self.nodes = {
  12. "bg:raw",
  13. "event_time:tmp",--活动时间
  14. "activityTimes:tmp",--活动次数
  15. "enter_btn/reddot:obj",
  16. -- 活动奖励容器
  17. "reward_scroll", "reward_scroll/Viewport/reward_con",
  18. -- 入口按钮
  19. "enter_btn:obj",
  20. "help_btn:obj",
  21. "title_txt_img:img",
  22. }
  23. self:GetChildren(self.nodes)
  24. lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("guild_event_bg_408_0"), false)
  25. lua_resM:setOutsideImageSprite(self,self.title_txt_img_img,GameResPath.GetGuildImage("guild_event_ad_txt_pointfilter"))
  26. self:AddEvents()
  27. if self.need_refresh_evt_time then
  28. self:UpdateView()
  29. self:UpdateEventTime()
  30. end
  31. end
  32. function GuildEventCollectView:AddEvents( )
  33. local on_click = function ( click_obj )
  34. if self.enter_btn_obj == click_obj then -- 进入社团驻地场景
  35. self.model:Fire(GuildModel.ENTER_GUILD_BASE)
  36. elseif click_obj == self.help_btn_obj then
  37. EventSystem.Fire(GlobalEventSystem,EventName.OPEN_INSTRUCTION_VIEW, 40801)
  38. end
  39. end
  40. AddClickEvent(self.enter_btn_obj, on_click, LuaSoundManager.SOUND_UI.NONE)
  41. AddClickEvent(self.help_btn_obj, on_click, LuaSoundManager.SOUND_UI.NONE)
  42. local function onUpdateActivityTimes()
  43. if not self.is_loaded then return end
  44. self:UpdateActivityTimes()
  45. end
  46. self:BindEvent(self.model,GuildModel.UODATE_GUILD_COLLECT_ACTIVITY_TIMES,onUpdateActivityTimes)
  47. local function update_nightboss_red(type)
  48. if type == GuildEventType.NoonCollect then
  49. self:UpdateRedDot()
  50. end
  51. end
  52. self:BindEvent(self.model, GuildModel.UPDATE_RED_DOT_BY_TYPE, update_nightboss_red)
  53. end
  54. function GuildEventCollectView:UpdateView( )
  55. self:UpdateActivityTimes()
  56. self:UpdateRewardItem()
  57. self:UpdateRedDot()
  58. end
  59. -- 刷新活动次数显示
  60. function GuildEventCollectView:UpdateActivityTimes( )
  61. local MaxCollectDayTimes = self.model:GetGuildCollectKvByKey("join_time_day").value
  62. local NowCollectDayTimes = self.model:GetDayTotalCollectTimes()
  63. local day_collect_color = NowCollectDayTimes < MaxCollectDayTimes and ColorUtil.GREEN_TIPS or ColorUtil.RED_DARK
  64. local left_day_collect_times = MaxCollectDayTimes-NowCollectDayTimes >= 0 and MaxCollectDayTimes-NowCollectDayTimes or 0
  65. local day_collect_str = left_day_collect_times.."/"..MaxCollectDayTimes
  66. self.activityTimes_tmp.text =
  67. "今日封印总次数:"..WordManager:AddColorToString(left_day_collect_times,day_collect_color,true).."<color=#ffffff>/"..MaxCollectDayTimes.."</color>"
  68. end
  69. --刷新活动时间显示
  70. function GuildEventCollectView:UpdateEventTime( )
  71. -- self.event_time_tmp.text = self.model:GetGuildEventOpenTime(self.evt_time_data.module_id, self.evt_time_data.module_sub)
  72. local s_h = Split((Split(self.evt_time_data.time_str, "~")[1]),":")[1]
  73. local s_m = Split((Split(self.evt_time_data.time_str, "~")[1]),":")[2]
  74. local round = self.model:GetActivityRound(s_h,s_m)--获取活动场次
  75. self.event_time_tmp.text = self.model:GetGuildEventCollectOpenTime(round)
  76. end
  77. -- 这里只传入活动日历中的活动时间相关数据,活动协议内容界面自己获取
  78. function GuildEventCollectView:SetEventAcData( evt_time_data)
  79. self.evt_time_data = evt_time_data
  80. if self.is_loaded then
  81. self.need_refresh_evt_time = false
  82. self:UpdateView()
  83. self:UpdateEventTime()
  84. self:UpdateRedDot()
  85. else
  86. self.need_refresh_evt_time = true
  87. end
  88. end
  89. function GuildEventCollectView:UpdateRewardItem( )
  90. local reward_data = DailyModel.Instance:GetRewardList(408,0,1)
  91. self.reward_item_creator = self.reward_item_creator or self:AddUIComponent(UI.ItemListCreator)
  92. local info = {
  93. data_list = reward_data,
  94. item_con = self.reward_con,
  95. scroll_view = self.reward_scroll,
  96. obj_pool_type = UIObjPool.UIType.AwardItem,
  97. item_width = 78,
  98. -- item_height = 78,
  99. start_x = 5,
  100. start_y = -6,
  101. space_x = 9,
  102. create_frequency = 0.01,
  103. alignment = UnityEngine.TextAnchor.UpperLeft,
  104. on_update_item = function(item, i, v)
  105. local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
  106. local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
  107. if goodVo then
  108. item:SetData(goodVo.type_id, v.count , goodVo.color, nil, lock)
  109. end
  110. end,
  111. }
  112. self.reward_item_creator:UpdateItems(info)
  113. end
  114. function GuildEventCollectView:UpdateRedDot( )
  115. if self.is_loaded then
  116. local s_h = Split((Split(self.evt_time_data.time_str, "~")[1]),":")[1]
  117. local s_m = Split((Split(self.evt_time_data.time_str, "~")[1]),":")[2]
  118. local round = self.model:GetActivityRound(s_h,s_m)--获取活动场次
  119. -- self.reddot_obj:SetActive(self.model:GetGuildEventTabRed("408@"..round))
  120. -- 2021.3.23 优化需求:社团活动页签不再给红点
  121. self.reddot_obj:SetActive(false)
  122. end
  123. end
  124. function GuildEventCollectView:__delete( )
  125. end