源战役客户端
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

76 linhas
2.7 KiB

4 semanas atrás
  1. DialogueTaskBtnItem = DialogueTaskBtnItem or BaseClass(BaseItem)
  2. local DialogueTaskBtnItem = DialogueTaskBtnItem
  3. function DialogueTaskBtnItem:__init(parent_wnd,prefab_asset,layer_name)
  4. self.base_file = "dialogue"
  5. self.layout_file = "DialogueTaskBtnItem"
  6. self.parent_wnd = parent_wnd
  7. self.layer_name = layer_name
  8. self.model = DialogueModel:getInstance()
  9. self:Load()
  10. end
  11. function DialogueTaskBtnItem:Load_callback()
  12. self.nodes = {
  13. "btn:obj:img", "name:tmp", "task_type_main:obj", "task_type_reg:obj", "flag:img",
  14. "bg:obj",
  15. }
  16. self:GetChildren(self.nodes)
  17. self:AddEvents()
  18. if self.need_refreshData then
  19. self:UpdateView()
  20. end
  21. end
  22. function DialogueTaskBtnItem:AddEvents( )
  23. local function click_event(target)
  24. if target == self.bg_obj then
  25. if self.callback and self.data then
  26. self.callback(self.data)
  27. end
  28. end
  29. end
  30. AddClickEvent(self.bg_obj, click_event, 2)
  31. end
  32. function DialogueTaskBtnItem:UpdateView( )
  33. local task_cfg = ConfigItemMgr.Instance:GetTaskData(self.data.task_id)
  34. SetAnchoredPosition(self.transform, self.pos.x, self.pos.y)
  35. local is_main_task = task_cfg.type and task_cfg.type == TaskType.MAIN_LINE
  36. local color = is_main_task and "#fdffc2" or "#ffffff"
  37. self.name_tmp.text = HtmlColorTxt( self.data.task_name, color)
  38. -- self.name_tmp.color = color
  39. self.task_type_main_obj:SetActive(is_main_task)
  40. self.task_type_reg_obj:SetActive(not is_main_task)
  41. -- self.task_type_tmp.text = (task_cfg.type and task_cfg.type == TaskType.MAIN_LINE) and "主" or "支"
  42. lua_resM:setImageSprite(self, self.btn_img, "dialogue_asset", (task_cfg.type and task_cfg.type == TaskType.MAIN_LINE) and "dialogue_taskbtn_main" or "dialog_taskbtn_regional")
  43. local flag_img_str = "com_empty"
  44. -- task_state 0:无 1:有可接任务 2:有未完成的任务 3:有可提交的任务 4:有任务对话
  45. if self.data.task_state == 3 then
  46. flag_img_str = "dialog_task_finished_pointfilter"
  47. lua_resM:setImageSprite(self, self.flag_img, "dialogue_asset", flag_img_str)
  48. elseif self.data.task_state == 1 then
  49. flag_img_str = "dialog_task_acceptable_pointfilter"
  50. lua_resM:setImageSprite(self, self.flag_img, "dialogue_asset", flag_img_str)
  51. else
  52. lua_resM:setImageSprite(self, self.flag_img, "uiComponent_asset","com_empty")
  53. end
  54. end
  55. function DialogueTaskBtnItem:SetData( data, pos, callback )
  56. self.data = data
  57. self.pos = pos
  58. self.callback = callback
  59. if self.is_loaded then
  60. self.need_refreshData = false
  61. self:UpdateView()
  62. else
  63. self.need_refreshData = true
  64. end
  65. end
  66. function DialogueTaskBtnItem:__delete( )
  67. end