源战役客户端
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

106 wiersze
3.7 KiB

1 miesiąc temu
  1. GuildActiveTaskItem = GuildActiveTaskItem or BaseClass(BaseItem)
  2. local GuildActiveTaskItem = GuildActiveTaskItem
  3. function GuildActiveTaskItem:__init(parent_wnd,prefab_asset,layer_name)
  4. self.base_file = "guild"
  5. self.layout_file = "GuildActiveTaskItem"
  6. self.parent_wnd = parent_wnd
  7. self.layer_name = layer_name
  8. self.model = GuildModel:getInstance()
  9. self:Load()
  10. end
  11. function GuildActiveTaskItem:Load_callback()
  12. self.nodes = {
  13. "bg:imgex", "go_btn:obj", "item_con", "finish_flag:obj",
  14. "task_desc:tmp", "task_name:tmp", "task_act:obj:tmp",
  15. "finish_btn:obj:img",
  16. }
  17. self:GetChildren(self.nodes)
  18. self.award_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_con)
  19. self.award_item:SetItemSize(78, 78)
  20. self.award_item:SetVisible(false)
  21. self.award_item:SetAnchoredPosition(0, 0)
  22. self:AddEvents()
  23. if self.need_refreshData then
  24. self:UpdateView()
  25. end
  26. end
  27. function GuildActiveTaskItem:AddEvents( )
  28. local function click_event(target)
  29. if target == self.go_btn_obj then
  30. self:ClickGoBtnFunc()
  31. elseif target == self.finish_btn_obj then
  32. self:ClickFinishBtnFunc()
  33. end
  34. end
  35. AddClickEvent(self.go_btn_obj, click_event)
  36. AddClickEvent(self.finish_btn_obj, click_event)
  37. end
  38. function GuildActiveTaskItem:UpdateView( )
  39. if self.data then
  40. self.task_name_tmp.text = Trim(self.data.name)
  41. local task_desc_str = Trim(self.data.desc)
  42. self.task_act_tmp.text = string.format("活跃 <color=#fdffc2>%s</color>", self.data.add)
  43. local act_condition = stringtotable(self.data.content)
  44. local progress_condition = act_condition[3]
  45. local task_data = self.model:GetGuildActiveTaskData(self.data.id)
  46. local cur_progress = task_data and task_data.progress or act_condition[2]
  47. local state = task_data and task_data.state or 0 -- 完成情况
  48. if state == 0 then
  49. task_desc_str = task_desc_str .. string.format("(%s/%s)", cur_progress, progress_condition)
  50. end
  51. self.task_desc_tmp.text = task_desc_str
  52. self.finish_flag_obj:SetActive(state == 2)
  53. self.go_btn_obj:SetActive(state == 0)
  54. self.task_act_obj:SetActive(state ~= 2)
  55. self.finish_btn_obj:SetActive(state == 1)
  56. -- 加载奖励
  57. local reward = stringtotable(self.data.awards)
  58. self.award_item:SetDataWithMapId(reward[1][2], reward[1][3], reward[1][1])
  59. self.award_item:SetVisible(true)
  60. end
  61. end
  62. function GuildActiveTaskItem:SetData( data )
  63. self.data = data
  64. if self.is_loaded then
  65. self.need_refreshData = false
  66. self:UpdateView()
  67. else
  68. self.need_refreshData = true
  69. end
  70. end
  71. function GuildActiveTaskItem:ClickGoBtnFunc( )
  72. if not self.data then return end
  73. if self.data.id == 1 then -- 完成跑环任务10环
  74. TaskModel:getInstance():DoGuildTask()
  75. -- OpenFun.Open(157, 0)
  76. GlobalEventSystem:Fire(EventName.CLOSE_GUILD_MAIN_VIEW)
  77. elseif self.data.id == 2 then -- 完成派单
  78. OpenFun.Open(400, 3)
  79. elseif self.data.id == 3 then -- 午间幻魔
  80. OpenFun.Open(406, 1)
  81. elseif self.data.id == 4 then -- 晚间幻魔
  82. OpenFun.Open(406, 2)
  83. elseif self.data.id == 5 then -- 封印裂隙
  84. OpenFun.Open(408, 0)
  85. elseif self.data.id == 6 then -- 社团晚宴
  86. OpenFun.Open(400, 7)
  87. end
  88. end
  89. function GuildActiveTaskItem:ClickFinishBtnFunc( )
  90. self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40407, self.data.id)
  91. end
  92. function GuildActiveTaskItem:__delete( )
  93. if self.award_item then
  94. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.award_item)
  95. end
  96. self.award_item = nil
  97. end