源战役客户端
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

98 satır
3.7 KiB

  1. --[[
  2. <*
  3. @Author: Saber
  4. @Description: item
  5. *>
  6. ]]
  7. GuildActiveActItem = GuildActiveActItem or BaseClass(BaseItem)
  8. local GuildActiveActItem = GuildActiveActItem
  9. function GuildActiveActItem:__init(parent_wnd,prefab_asset,layer_name)
  10. self.base_file = "guild"
  11. self.layout_file = "GuildActiveActItem"
  12. self.parent_wnd = parent_wnd
  13. self.layer_name = layer_name
  14. self.model = GuildModel:getInstance()
  15. self:Load()
  16. end
  17. function GuildActiveActItem:Load_callback()
  18. self.nodes = {
  19. -- "botton:img", "act_require:txt:outline", "light:img",
  20. "item_con", "touch_con:obj", "reddot:obj", "received:obj",
  21. }
  22. self:GetChildren(self.nodes)
  23. self.award_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.item_con)
  24. self.award_item:SetItemSize(83,83)
  25. self.award_item:SetVisible(false)
  26. self.award_item:SetEnableClick(false)
  27. self:AddEvents()
  28. if self.need_refreshData then
  29. self:UpdateView()
  30. end
  31. end
  32. function GuildActiveActItem:AddEvents( )
  33. local function click_event(target)
  34. if target == self.touch_con_obj then
  35. local guild_active, guild_active_stage = self.model:GetGuildActiveData()
  36. if self.data and self.data.id == guild_active_stage + 1 and guild_active >= self.data.need then -- 当前阶段是已领取阶段的下一阶段,且超过了改阶段需要的活跃值
  37. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40403, 1) -- 1为社团周常活跃奖励领取
  38. else
  39. self.award_item:ClickCallFun()
  40. end
  41. end
  42. end
  43. AddClickEvent(self.touch_con_obj, click_event)
  44. -- 刷新红点
  45. local function update_red(view_type)
  46. if not view_type or view_type == Config.ConfigGuild.TabId.Active then
  47. self:UpdateWeekRewardRed()
  48. end
  49. end
  50. self:BindEvent(self.model, GuildModel.UPDATE_RED_DOT_BY_TYPE, update_red)
  51. end
  52. function GuildActiveActItem:UpdateView( )
  53. -- 社团本周活跃度
  54. self.guild_active, self.guild_active_stage = self.model:GetGuildActiveData()
  55. -- self.act_require_txt.text = self.data.need
  56. -- local is_next = self.data.id - self.guild_active_stage == 1 -- 是否是下一波活跃奖励节点
  57. local is_received = self.data.id <= self.guild_active_stage -- 是否是已经领过的奖励节点
  58. -- lua_resM:setImageSprite(self, self.light_img, "guild_asset", is_next and "guild_active_img2" or "guild_active_img1", true)
  59. -- lua_resM:setImageSprite(self, self.botton_img, "guild_asset", is_next and "guild_active_img4" or "guild_active_img3", true)
  60. -- self.act_require_outline.effectColor = ColorUtil:ConvertHexToRGBColor(is_next and "ff4949" or "174994")
  61. local reward = stringtotable(self.data.awards)[1]
  62. local type_Id, lock = GoodsModel:getInstance():GetMappingTypeId(reward[1], reward[2])
  63. self.award_item:SetData(type_Id, reward[3], nil, nil, lock)
  64. self.award_item:SetVisible(true)
  65. self.award_item:SetIconGray(is_received)
  66. self.received_obj:SetActive(is_received)
  67. self:UpdateWeekRewardRed()
  68. end
  69. function GuildActiveActItem:UpdateWeekRewardRed( )
  70. if not self.data then return end
  71. self.reddot_obj:SetActive(self.model:GetGuildActiveProgressRed(self.data.id))
  72. end
  73. function GuildActiveActItem:SetData(data)
  74. self.data = data
  75. if self.is_loaded then
  76. self.need_refreshData = false
  77. self:UpdateView()
  78. else
  79. self.need_refreshData = true
  80. end
  81. end
  82. function GuildActiveActItem:__delete( )
  83. if self.award_item then
  84. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.award_item)
  85. self.award_item = nil
  86. end
  87. end