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

79 linhas
2.4 KiB

  1. DungeonTimer = DungeonTimer or BaseClass(UIPartical)
  2. function DungeonTimer:__init(parent, endTime, callBack, layer_name,position)
  3. self.gameObject = GameObject.New("timer")
  4. self.gameObject.transform:SetParent(parent, false)
  5. -- self.img = self.gameObject:AddComponent(typeof(UnityEngine.UI.Image))
  6. self.transform = self.gameObject.transform
  7. -- self.transform.sizeDelta = Vector2(0,0)
  8. self.position = position
  9. self.runOut_callBack = callBack
  10. self.endTime = endTime
  11. self.layer_name = layer_name or "Main"
  12. self:Run()
  13. end
  14. function DungeonTimer:Run()
  15. self:Stop()
  16. local leftTime = self.endTime - TimeUtil:getServerTime()
  17. if leftTime <= 0 then
  18. if self.runOut_callBack then self.runOut_callBack() end
  19. return
  20. elseif leftTime == 3 then
  21. self:AddUIEffect("ui_effect_paiweinumber", self.transform, self.layer_name, nil, 1, false, 3)
  22. -- lua_resM:setImageSprite(self, self.img, "sceneUI_asset", "scene_countdown_"..leftTime, true)
  23. end
  24. if self.timer_id then
  25. GlobalTimerQuest:CancelQuest(self.timer_id)
  26. self.timer_id = nil
  27. end
  28. local function timer_handler()
  29. local leftTime = self.endTime - TimeUtil:getServerTime()
  30. if leftTime == 0 then
  31. -- lua_resM:setImageSprite(self, self.img, "sceneUI_asset", "scene_countdown_start", true)
  32. -- self:AddUIEffect("effect_paiwei_02", self.transform, self.layer_name, nil, 1, false, 2, nil, function()
  33. self:Stop(true)
  34. if self.runOut_callBack then
  35. self.runOut_callBack()
  36. self.runOut_callBack = nil
  37. end
  38. -- end)
  39. elseif leftTime < 0 then
  40. if self.runOut_callBack then
  41. self.runOut_callBack()
  42. self.runOut_callBack = nil
  43. end
  44. else
  45. if leftTime == 3 then
  46. self:AddUIEffect("ui_effect_paiweinumber", self.transform, self.layer_name, nil, 1, false, 3)
  47. -- lua_resM:setImageSprite(self, self.img, "sceneUI_asset", "scene_countdown_"..leftTime, true)
  48. end
  49. end
  50. end
  51. if self.position then
  52. SetLocalPosition(self.transform,self.position.x,self.position.y,0)
  53. end
  54. self.gameObject:SetActive(true)
  55. self.timer_id = GlobalTimerQuest:AddPeriodQuest(timer_handler, 1)
  56. end
  57. function DungeonTimer:Stop(hide)
  58. if self.timer_id then
  59. GlobalTimerQuest:CancelQuest(self.timer_id)
  60. self.timer_id = nil
  61. end
  62. if hide and self.gameObject then
  63. self.gameObject:SetActive(false)
  64. end
  65. end
  66. function DungeonTimer:__delete()
  67. self:Stop()
  68. if self.gameObject then
  69. destroy(self.gameObject, false)
  70. self.gameObject = nil
  71. end
  72. self.runOut_callBack = nil
  73. end