源战役客户端
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

118 Zeilen
3.2 KiB

  1. BufferTipsItem = BufferTipsItem or BaseClass(BaseItem)
  2. function BufferTipsItem:__init(parent_wnd)
  3. self.base_file = "autoFight"
  4. self.layout_file = "BufferTipsItem"
  5. self.data = nil
  6. self.model = AutoFightManager:getInstance()
  7. self:Load()
  8. end
  9. function BufferTipsItem:Load_callback()
  10. self.name = self:GetChild("name"):GetComponent(typeof(TMPro.TextMeshProUGUI))
  11. self.leftTimeObj = self:GetChild("leftTime").gameObject
  12. self.leftTime = self:GetChild("leftTime"):GetComponent(typeof(TMPro.TextMeshProUGUI))
  13. self.leftTime.text = ""
  14. self.desc = self:GetChild("desc"):GetComponent(typeof(TMPro.TextMeshProUGUI))
  15. self.iconImg = self:GetChild("iconBg"):GetComponent("Image")
  16. self.line_obj = self:GetChild("line").gameObject
  17. if self.need_refreshData then
  18. self:SetData(self.data, self.is_end)
  19. end
  20. self:InitEvent()
  21. end
  22. function BufferTipsItem:InitEvent()
  23. end
  24. --1是VIP,2是永恒回复,3是经验药水,4是技能buff
  25. function BufferTipsItem:SetData(data, is_end)
  26. self.data = data
  27. self.is_end = is_end
  28. if self.is_loaded then
  29. self.need_refreshData = false
  30. if self.data == nil then return end
  31. self:UpdateBuffView()
  32. else
  33. self.need_refreshData = true
  34. end
  35. end
  36. function BufferTipsItem:UpdateBuffView()
  37. local cfg = Config.ConfigBuffIcon[self.data.id]
  38. if cfg then
  39. if self.data.style == 1 then
  40. local vip_level = RoleManager.Instance.mainRoleInfo.vip_flag
  41. local temp_cfg = cfg.level_info[vip_level]
  42. if temp_cfg then
  43. self.name.text = temp_cfg.name
  44. self.desc.text = ChuanWenManager:getInstance():FormatColorTag(temp_cfg.desc)
  45. end
  46. else
  47. self.name.text = cfg.name
  48. self.desc.text = ChuanWenManager:getInstance():FormatColorTag(cfg.desc)
  49. end
  50. lua_resM:setImageSprite(self, self.iconImg, "mainUI_asset", cfg.icon_id)
  51. --倒计时
  52. if self.data.style == 3 then
  53. local left_time = self.data.end_time - TimeUtil:getServerTime()
  54. self:CreateBuffTimer(left_time)
  55. elseif self.data.style == 4 then
  56. local main_role = Scene.Instance.main_role
  57. if not main_role then
  58. return
  59. end
  60. local buff_manager = main_role.buff_manager
  61. if not buff_manager then
  62. return
  63. end
  64. local buff_list_vo = buff_manager:getBuffDic(self.data.buff_type)
  65. local buff_vo = buff_list_vo and buff_list_vo:GetBuffBySkillId(self.data.skill_id)
  66. local left_time = buff_vo and buff_vo:GetLeftTime() or 0
  67. self:CreateBuffTimer(round(left_time))
  68. end
  69. self.line_obj:SetActive(not self.is_end)
  70. end
  71. end
  72. function BufferTipsItem:GetAllHeight()
  73. return 96
  74. end
  75. function BufferTipsItem:CancelTimer( )
  76. if self.buff_timer_id then
  77. GlobalTimerQuest:CancelQuest(self.buff_timer_id)
  78. self.buff_timer_id = nil
  79. end
  80. end
  81. function BufferTipsItem:CreateBuffTimer(time)
  82. self:CancelTimer()
  83. local time = time or 0
  84. if time > 0 then
  85. local function onTimer()
  86. time = time - 1
  87. if time > 0 then
  88. self.leftTime.text = TimeUtil:qianggouTimeLeft2(tonumber(time))
  89. else
  90. self.leftTime.text = ""
  91. self:CancelTimer()
  92. end
  93. end
  94. onTimer()
  95. self.buff_timer_id = GlobalTimerQuest:AddPeriodQuest(onTimer,1,-1)
  96. end
  97. end
  98. function BufferTipsItem:SetVisible(flag)
  99. BaseItem.SetVisible(self,flag)
  100. if not flag then
  101. self:CancelTimer()
  102. end
  103. end
  104. function BufferTipsItem:__delete()
  105. self:CancelTimer()
  106. end