HeadFrameData.lua 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. local HeadFrameData = class("HeadFrameData")
  2. function HeadFrameData:ctor(cfg)
  3. self.frameId = cfg.HeadFrameId
  4. self.cfgId = cfg.HeadFrameId
  5. self.name = I18N.T(cfg.HeadFrameName)
  6. self.desc = I18N.T(cfg.HeadFrameDesc)
  7. self.source = cfg.HeadFrameSource
  8. self.icon = cfg.HeadFrameIcon
  9. self.type = cfg.HeadFrameType
  10. self.tips = I18N.T(cfg.HeadFrameGetTips)
  11. self.jumpId = cfg.HeadFrameGetJump
  12. self.attrs = cfg.HeadFrameQuality
  13. self.state = Enum.HeadFrameState.Loss
  14. if cfg.ResolveItem~= nil and #cfg.ResolveItem > 0 then
  15. self.resolveCost = cfg.ResolveItem[1][2]
  16. else
  17. self.resolveCost = 0
  18. end
  19. self.redPointState = false
  20. self.deadlineTime = nil
  21. end
  22. function HeadFrameData:SyncServerData(headFrameTime)
  23. self.deadlineTime = headFrameTime
  24. end
  25. function HeadFrameData:SetFrameState(state)
  26. if self.state ~= state then
  27. if self.state == Enum.HeadFrameState.Using then
  28. self.redPointState = false
  29. end
  30. self.state = state
  31. end
  32. end
  33. function HeadFrameData:SetRedPointStatus(hasRP)
  34. if self.redPointState ~= hasRP then
  35. self.redPointState = hasRP
  36. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Refresh_HeadFrame_RP)
  37. end
  38. end
  39. function HeadFrameData:GetAttrs()
  40. return self.attrs
  41. end
  42. function HeadFrameData:IsUsing()
  43. return self.state == Enum.HeadFrameState.Using
  44. end
  45. function HeadFrameData:IsActivated()
  46. return self.state == Enum.HeadFrameState.GotFrame
  47. end
  48. function HeadFrameData:IsGot()
  49. return self.state == Enum.HeadFrameState.GotItem
  50. end
  51. function HeadFrameData:IsOwned()
  52. return self:IsActivated() or self:IsUsing()
  53. end
  54. function HeadFrameData:IsLoss()
  55. return self.state == Enum.HeadFrameState.Loss
  56. end
  57. function HeadFrameData:GetLeftTime()
  58. if self.deadlineTime == nil or self.deadlineTime == -1 then
  59. return -1
  60. end
  61. local leftTime = self.deadlineTime - ManagerContainer.LuaTimerMgr:GetTimeSecond()
  62. if leftTime < 0 then
  63. leftTime = 0
  64. end
  65. return leftTime
  66. end
  67. function HeadFrameData:IsForever()
  68. return self.deadlineTime == nil or self.deadlineTime == -1
  69. end
  70. function HeadFrameData:IsTimeLimited()
  71. return self.deadlineTime ~= -1
  72. end
  73. return HeadFrameData