源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 rivejä
3.7 KiB

4 viikkoa sitten
  1. GuildEventPartyView = GuildEventPartyView or BaseClass(BaseItem)
  2. local GuildEventPartyView = GuildEventPartyView
  3. function GuildEventPartyView:__init()
  4. self.base_file = "guild"
  5. self.layout_file = "GuildEventPartyView"
  6. self.model = GuildModel:getInstance()
  7. self:Load()
  8. end
  9. function GuildEventPartyView:Load_callback()
  10. self.nodes = {
  11. "bg:raw",
  12. "event_time:tmp",--活动时间
  13. "enter_btn/reddot:obj",
  14. -- 活动奖励容器
  15. "reward_scroll", "reward_scroll/Viewport/reward_con",
  16. -- 入口按钮
  17. "enter_btn:obj",
  18. "help_btn:obj",
  19. "title_txt_img:img",
  20. }
  21. self:GetChildren(self.nodes)
  22. lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("guild_event_party_bg_1020_618"), false)
  23. lua_resM:setOutsideImageSprite(self,self.title_txt_img_img,GameResPath.GetGuildImage("guild_event_ad_txt2_pointfilter"))
  24. self:AddEvents()
  25. if self.need_refresh_evt_time then
  26. self:UpdateEventTime()
  27. self:UpdateView()
  28. end
  29. end
  30. function GuildEventPartyView:AddEvents( )
  31. local on_click = function ( click_obj )
  32. if self.enter_btn_obj == click_obj then -- 进入社团驻地场景
  33. self.model:Fire(GuildModel.ENTER_GUILD_BASE)
  34. elseif click_obj == self.help_btn_obj then
  35. EventSystem.Fire(GlobalEventSystem,EventName.OPEN_INSTRUCTION_VIEW, 40007)
  36. end
  37. end
  38. AddClickEvent(self.enter_btn_obj, on_click, LuaSoundManager.SOUND_UI.NONE)
  39. AddClickEvent(self.help_btn_obj, on_click, LuaSoundManager.SOUND_UI.NONE)
  40. local function updatePartyRed(type)
  41. if type == GuildEventType.GuildParty then
  42. self:UpdateRedDot()
  43. end
  44. end
  45. self:BindEvent(self.model, GuildModel.UPDATE_RED_DOT_BY_TYPE, updatePartyRed)
  46. end
  47. function GuildEventPartyView:UpdateView( )
  48. self:UpdateRewardItem()
  49. self:UpdateRedDot()
  50. end
  51. -- 这里只传入活动日历中的活动时间相关数据,活动协议内容界面自己获取
  52. function GuildEventPartyView:SetEventAcData( evt_time_data)
  53. self.evt_time_data = evt_time_data
  54. if self.is_loaded then
  55. self.need_refresh_evt_time = false
  56. self:UpdateView()
  57. self:UpdateEventTime()
  58. self:UpdateRedDot()
  59. else
  60. self.need_refresh_evt_time = true
  61. end
  62. end
  63. -- 设置活动的开始时间
  64. function GuildEventPartyView:UpdateEventTime( )
  65. self.event_time_tmp.text = self.model:GetGuildEventOpenTime(self.evt_time_data.module_id, self.evt_time_data.module_sub)
  66. end
  67. function GuildEventPartyView:UpdateRewardItem( )
  68. local reward_data = DailyModel.Instance:GetRewardList(400,7,1)
  69. self.reward_item_creator = self.reward_item_creator or self:AddUIComponent(UI.ItemListCreator)
  70. local info = {
  71. data_list = reward_data,
  72. item_con = self.reward_con,
  73. scroll_view = self.reward_scroll,
  74. obj_pool_type = UIObjPool.UIType.AwardItem,
  75. item_width = 78,
  76. --item_height = 78,
  77. start_x = 5,
  78. start_y = -6,
  79. space_x = 9,
  80. create_frequency = 0.01,
  81. alignment = UnityEngine.TextAnchor.UpperLeft,
  82. on_update_item = function(item, i, v)
  83. local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
  84. local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
  85. if goodVo then
  86. item:SetData(goodVo.type_id, v.count , goodVo.color, nil, lock)
  87. end
  88. end,
  89. }
  90. self.reward_item_creator:UpdateItems(info)
  91. end
  92. function GuildEventPartyView:UpdateRedDot( )
  93. -- self.reddot_obj:SetActive(self.model:GetGuildEventTabRed("400@7"))
  94. -- 2021.3.23 优化需求:社团活动页签不再给红点
  95. self.reddot_obj:SetActive(false)
  96. end
  97. function GuildEventPartyView:__delete( )
  98. end