RedFortInfo.lua 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. ---@class RedFortInfo
  2. ---@field cfgTabel cfg_rep_column[]
  3. ---@field activityId number @活动id
  4. ---@field activityCfg cfg_activity_rule_column @活动表
  5. ---@field nowRedFortCfg cfg_rep_column @最后一次获取的表数据(防止在副本中升级先存起来)
  6. ---@field cfg_repRedfortress cfg_repRedfortress_column @跟服务器相关的赤色要塞表数据
  7. ---@field isEnter boolean @是否进入副本
  8. RedFortInfo = class()
  9. local this = RedFortInfo
  10. function this:ctor()
  11. end
  12. function this:Init()
  13. self.activityId = EActivityType.RedFort
  14. self.cfgTabel = {}
  15. ---@ type cfg_rep_column[]
  16. local repTable = SL:GetConfigTable("cfg_rep")
  17. for k, v in pairs(repTable) do
  18. if v.type == self.activityId then
  19. table.insert(self.cfgTabel, v)
  20. end
  21. end
  22. self:InitData()
  23. self:RegistMessages()
  24. self.activityCfg = SL:GetConfigMultiKeys("cfg_activity_rule", self.activityId , "id")
  25. end
  26. function this:InitData()
  27. end
  28. function this:RegistMessages()
  29. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_RED_FORTRESS_STATE_UPDATE, self.RES_RED_FORTRESS_STATE_UPDATE, self)
  30. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_RED_FORTRESS_PREPARE_COUNT, self.RES_RED_FORTRESS_PREPARE_COUNT, self)
  31. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_RED_FORTRESS_TASK_INFO, self.RES_RED_FORTRESS_TASK_INFO, self)
  32. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_RED_FORTRESS_SHRINKING_STAGE, self.RES_RED_FORTRESS_SHRINKING_STAGE, self)
  33. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_RED_FORTRESS_SETTLEMENT_PANEL, self.RES_RED_FORTRESS_SETTLEMENT_PANEL, self)
  34. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_QUIT_DUPLICATE, self.RES_QUIT_DUPLICATE, self)
  35. SL:RegisterLuaNetMsg(MessageDef.ResReliveMessage, self.ResReliveMessage, self)
  36. SL:RegisterLUAEvent(LUA_EVENT_MAIN_PLAYER_DIE,self.LUA_EVENT_MAIN_PLAYER_DIE,self)
  37. end
  38. ---赤色要塞缩圈数据
  39. function this:RES_RED_FORTRESS_SHRINKING_STAGE(_, message)
  40. end
  41. ----赤色要塞阶段
  42. ----@param message table @1:阶段 2 结束时间 3 活动id
  43. function this:RES_RED_FORTRESS_STATE_UPDATE(_, message)
  44. self.isEnter = true
  45. end
  46. ---赤色要塞准备阶段人数
  47. function this:RES_RED_FORTRESS_PREPARE_COUNT(_, message)
  48. end
  49. ---赤色要塞任务面板信息
  50. function this:RES_RED_FORTRESS_TASK_INFO(_, message)
  51. end
  52. ---赤色要塞结算
  53. function this:RES_RED_FORTRESS_SETTLEMENT_PANEL(_, message)
  54. GUI:UIPanel_Open("dev/outui/Activity/Panel/KLRedFortSettlement/KLRedFortSettlementPanel",nil,nil,message)
  55. end
  56. ---退出赤色要塞
  57. function this:RES_QUIT_DUPLICATE()
  58. local isDie = SL:GetMetaValue(EMetaVarGetKey.USER_IS_DIE)
  59. if isDie then
  60. SL:ShowMainPanel()
  61. end
  62. self.isEnter = false
  63. end
  64. function this:LUA_EVENT_MAIN_PLAYER_DIE()
  65. SL:HideMainPanel()
  66. end
  67. ---通知玩家复活
  68. function this:ResReliveMessage()
  69. SL:ShowMainPanel()
  70. end
  71. ---@return cfg_rep_column
  72. function this:GetCfgByLevel()
  73. self.nowRedFortCfg = nil
  74. local myLevel = SL:GetMetaValue(EMetaVarGetKey.LEVEL)
  75. for k, v in pairs(self.cfgTabel) do
  76. if myLevel >= v.level[1] and (not self.nowRedFortCfg or self.nowRedFortCfg.level[1] < v.level[1]) then
  77. self.nowRedFortCfg = v
  78. end
  79. end
  80. if self.nowRedFortCfg then
  81. self.cfg_repRedfortress = SL:GetConfigMultiKeys("cfg_repRedfortress", self.nowRedFortCfg.id, "id")
  82. end
  83. return self.nowRedFortCfg
  84. end
  85. -----@return cfg_rep_column
  86. function this:GetCfgByMinLevel()
  87. local minLevel = 0
  88. local minCfg = nil
  89. for k, v in pairs(self.cfgTabel) do
  90. if minLevel <= v.level[1] then
  91. minCfg = v
  92. end
  93. end
  94. return minCfg
  95. end
  96. function this:Reset()
  97. end