源战役客户端
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.

105 lines
2.6 KiB

  1. CommonMultiKillCon = CommonMultiKillCon or BaseClass(BaseItem)
  2. local CommonMultiKillCon = CommonMultiKillCon
  3. function CommonMultiKillCon:__init()
  4. self.base_file = "common"
  5. self.layout_file = "CommonMultiKillCon"
  6. self.is_play_multi_action = false
  7. self.is_need_hide_anim = false
  8. self:Load()
  9. end
  10. function CommonMultiKillCon:Load_callback()
  11. self.nodes = {
  12. "multi_con/multi_text:txt", "multi_con:obj",
  13. }
  14. self:GetChildren(self.nodes)
  15. self.multi_con_canvas = self.multi_con:GetComponent("CanvasGroup")
  16. self:AddEvents()
  17. if self.need_refreshData then
  18. self:SetMultiKillNum(self.multi_num, self.no_action)
  19. end
  20. end
  21. function CommonMultiKillCon:AddEvents( )
  22. end
  23. function CommonMultiKillCon:SetIsNeedHideAnim(bool)
  24. self.is_need_hide_anim = bool
  25. end
  26. function CommonMultiKillCon:SetMultiKillNum( num,no_action )
  27. self.multi_num = num
  28. self.no_action = no_action
  29. if not self.is_loaded then
  30. self.need_refreshData = true
  31. return
  32. else
  33. self.need_refreshData = false
  34. end
  35. self.multi_text_txt.text = num
  36. if self.is_play_multi_action or self.no_action then
  37. return
  38. else
  39. if self.multi_kill_anim_id then
  40. TweenLite.Stop(self.multi_kill_anim_id)
  41. self.multi_kill_anim_id = nil
  42. end
  43. self.multi_con_canvas.alpha = 1
  44. self.is_play_multi_action = true
  45. SetLocalScale(self.multi_text, 1.3,1.3,1.3)
  46. local function onComplete( ... )
  47. self.is_play_multi_action = false
  48. if self.is_need_hide_anim then
  49. self:StartMultiKillCountDown(2)
  50. end
  51. end
  52. self.scale_id = TweenLite.to(self, self.multi_text, TweenLite.UiAnimationType.SCALE, Vector3.one ,0.3, onComplete)
  53. end
  54. end
  55. function CommonMultiKillCon:StartMultiKillCountDown( time )
  56. self:StopMultiKillCountDown()
  57. local function onBoxTimer()
  58. time = time - 1
  59. if time <= 0 then
  60. local function anim_end_func( ... )
  61. end
  62. self.multi_kill_anim_id = TweenLite.to(self, self.multi_con_canvas,TweenLite.UiAnimationType.ALPHA, 0, 0.5, anim_end_func)
  63. end
  64. end
  65. self.multi_timer_id = GlobalTimerQuest:AddPeriodQuest(onBoxTimer, 1, -1)
  66. end
  67. function CommonMultiKillCon:StopMultiKillCountDown( )
  68. if self.multi_timer_id then
  69. GlobalTimerQuest:CancelQuest(self.multi_timer_id)
  70. self.multi_timer_id = nil
  71. end
  72. end
  73. function CommonMultiKillCon:StopMultiKillAction( )
  74. if self.scale_id then
  75. TweenLite.Stop(self.scale_id)
  76. self.scale_id = nil
  77. end
  78. end
  79. function CommonMultiKillCon:SetData( data )
  80. self.data = data
  81. if self.is_loaded then
  82. self.need_refreshData = false
  83. self:UpdateView()
  84. else
  85. self.need_refreshData = true
  86. end
  87. end
  88. function CommonMultiKillCon:__delete( )
  89. self:StopMultiKillCountDown()
  90. self:StopMultiKillAction()
  91. end