EvilBossSlotData.lua 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. local EvilBossSlotData = class("EvilBossSlotData")
  2. function EvilBossSlotData:ctor(id)
  3. self.slotId = id
  4. self.bossId = 0
  5. self.bossIcon = nil
  6. self.bossName = nil
  7. self.bossQuality = 1
  8. self.expireTime = nil
  9. self.rewardEvilExp = 0 --胜利奖励的技能经验
  10. self.leftCDTime = 0
  11. self.leftCDTimeHandler = nil
  12. self.changeState = false
  13. end
  14. function EvilBossSlotData:GetChangeState()
  15. return self.changeState
  16. end
  17. function EvilBossSlotData:SetChangeState(state)
  18. self.changeState = state
  19. end
  20. function EvilBossSlotData:IsBossDead()
  21. return self.bossId > 0 and self.expireTime > 0
  22. end
  23. function EvilBossSlotData:GetLeftCDTime()
  24. return self.leftCDTime
  25. end
  26. function EvilBossSlotData:SetServerData(srvData,evilBossCfg,bossHead)
  27. self.bossId = srvData.boss_id
  28. self.bossIcon = bossHead
  29. local npcCfg = ManagerContainer.CfgMgr:GetNpcCfgById(self.bossId)
  30. if npcCfg ~= nil then
  31. self.bossName = npcCfg.Name
  32. end
  33. self.rewardEvilExp = srvData.reward_evil_exp
  34. if evilBossCfg ~= nil then
  35. -- LogError(Inspect(evilBossCfg))
  36. self.bossQuality = evilBossCfg[4]
  37. end
  38. self.expireTime = srvData.expire_time
  39. if self.expireTime > 0 then
  40. self.leftCDTime = LuaBattleBridge.CaclLeftTimeWitTimeStamp(tostring(self.expireTime))
  41. if self.leftCDTime < 0 then
  42. self.leftCDTime = 0
  43. end
  44. else
  45. self.leftCDTime = 0
  46. end
  47. self:ClearTimer()
  48. if self.bossId > 0 and self.leftCDTime > 0 then
  49. self.leftCDTimeHandler = ManagerContainer.LuaTimerMgr:AddTimer(1000, self.leftCDTime,self,self.RefreshCDTime,nil);
  50. end
  51. end
  52. function EvilBossSlotData:RefreshCDTime()
  53. self.leftCDTime = self.leftCDTime - 1
  54. if self.leftCDTime <= 0 then
  55. self:ClearTimer()
  56. ManagerContainer.DataMgr.EvilData:SendEvilRefreshReq(false)
  57. end
  58. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.EID_Evil_Refresh_SlotCDTime,self.slotId,self.leftCDTime)
  59. end
  60. function EvilBossSlotData:ClearTimer()
  61. if self.leftCDTimeHandler ~= nil then
  62. ManagerContainer.LuaTimerMgr:RemoveTimer(self.leftCDTimeHandler);
  63. self.leftCDTimeHandler = nil;
  64. end
  65. end
  66. function EvilBossSlotData:CanRefresh()
  67. return self.expireTime > 0 and self.leftCDTime <= 0
  68. end
  69. return EvilBossSlotData