Progressor.lua.txt 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. local Progressor = require("CommonUtils/Object/Object.lua"):new()
  2. Progressor.nFillTime = 0
  3. Progressor.nCooldownTime = 0
  4. Progressor.bFilled = false
  5. Progressor.nCanFillTime = os.time()
  6. local FULL_FILL_TIME = 1.5
  7. function Progressor:FillProgressor(bFill, funCallback)
  8. local nTimeNow = os.time()
  9. if nTimeNow < self.nCanFillTime then
  10. return 0
  11. end
  12. if self.bFilled then
  13. return 1
  14. end
  15. if bFill then
  16. local eventManager = require('Base/ZEventDispatchCenter.lua')
  17. eventManager:DispatchEvent(eventManager.EventType.COMMON_SET_GESTUREINPUT)
  18. self.nFillTime = self.nFillTime + CS.UnityEngine.Time.deltaTime
  19. local nFillAmount = self.nFillTime / FULL_FILL_TIME
  20. if nFillAmount >= 1 then
  21. nFillAmount = 1
  22. self.bFilled = true
  23. funCallback()
  24. end
  25. return nFillAmount
  26. end
  27. self.nFillTime = self.nFillTime - CS.UnityEngine.Time.deltaTime
  28. local nFillAmount = self.nFillTime / FULL_FILL_TIME
  29. if nFillAmount <= 0 then
  30. self.nFillTime = 0
  31. nFillAmount = 0
  32. end
  33. return nFillAmount
  34. end
  35. function Progressor:FillProgressorRepeat(bFill, funCallback)
  36. local nTimeNow = os.time()
  37. if nTimeNow < self.nCanFillTime then
  38. return 0
  39. end
  40. if bFill then
  41. local eventManager = require('Base/ZEventDispatchCenter.lua')
  42. eventManager:DispatchEvent(eventManager.EventType.COMMON_SET_GESTUREINPUT)
  43. self.nFillTime = self.nFillTime + CS.UnityEngine.Time.deltaTime
  44. local nFillAmount = self.nFillTime / FULL_FILL_TIME
  45. if nFillAmount >= 1 then
  46. nFillAmount = 1
  47. self.nFillTime = 0
  48. funCallback()
  49. end
  50. return nFillAmount
  51. end
  52. self.nFillTime = self.nFillTime - CS.UnityEngine.Time.deltaTime
  53. local nFillAmount = self.nFillTime / FULL_FILL_TIME
  54. if nFillAmount <= 0 then
  55. self.nFillTime = 0
  56. nFillAmount = 0
  57. end
  58. return nFillAmount
  59. end
  60. function Progressor:SetCooldown(nPeriodTime)
  61. if not nPeriodTime then nPeriodTime = 1 end
  62. self.nFillTime = 0
  63. self.bFilled = false
  64. self.nCanFillTime = os.time() + nPeriodTime
  65. end
  66. -- function Progressor.FillProgressor(szDataRelayKey, bFill, funCallback)
  67. -- local tProgessor = GetCache(szDataRelayKey)
  68. -- local nTimeNow = os.time()
  69. -- if nTimeNow < tProgessor.nCanFillTime then
  70. -- return 0
  71. -- end
  72. -- if tProgessor.bFilled then
  73. -- return 1
  74. -- end
  75. -- if bFill then
  76. -- local eventManager = require('Base/ZEventDispatchCenter.lua')
  77. -- eventManager:DispatchEvent(eventManager.EventType.COMMON_SET_GESTUREINPUT)
  78. -- tProgessor.nFillTime = tProgessor.nFillTime + CS.UnityEngine.Time.deltaTime
  79. -- local nFillAmount = tProgessor.nFillTime / FULL_FILL_TIME
  80. -- if nFillAmount >= 1 then
  81. -- funCallback()
  82. -- nFillAmount = 1
  83. -- tProgessor.bFilled = true
  84. -- end
  85. -- SetCache(szDataRelayKey, tProgessor)
  86. -- return nFillAmount
  87. -- end
  88. -- tProgessor.nFillTime = tProgessor.nFillTime - CS.UnityEngine.Time.deltaTime
  89. -- local nFillAmount = tProgessor.nFillTime / FULL_FILL_TIME
  90. -- if nFillAmount <= 0 then
  91. -- tProgessor.nFillTime = 0
  92. -- nFillAmount = 0
  93. -- end
  94. -- SetCache(szDataRelayKey, tProgessor)
  95. -- return nFillAmount
  96. -- end
  97. -- function Progressor.SetCooldown(szDataRelayKey, nPeriodTime)
  98. -- if not nPeriodTime then nPeriodTime = 1 end
  99. -- local tProgessor = GetCache(szDataRelayKey)
  100. -- tProgessor.nCanFillTime = os.time() + nPeriodTime
  101. -- SetCache(szDataRelayKey, tProgessor)
  102. -- end
  103. -- function Progressor.InitDataRelay(szDataRelayKey)
  104. -- local tProgressorData = {
  105. -- ["nFillTime"] = 0,
  106. -- ["nCooldownTime"] = 0,
  107. -- ["bFilled"] = false,
  108. -- ["nCanFillTime"] = os.time(),
  109. -- }
  110. -- SetCache(szDataRelayKey, tProgressorData)
  111. -- end
  112. return Progressor