源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

216 rindas
6.9 KiB

pirms 1 mēnesi
  1. GuildSpeedModel = GuildSpeedModel or BaseClass(BaseVo, true)
  2. local GuildSpeedModel = GuildSpeedModel
  3. GuildSpeedModel.REQUEST_INFO = "GuildSpeedModel.REQUEST_INFO"
  4. GuildSpeedModel.OPEN_GUILD_SPEED_VIEW = "GuildSpeedModel.OPEN_GUILD_SPEED_VIEW"--打开主界面
  5. GuildSpeedModel.UPDATE_GUILD_SPEED_VIEW = "GuildSpeedModel.UPDATE_GUILD_SPEED_VIEW"--更新主界面
  6. GuildSpeedModel.REQUEST_INFO = "GuildSpeedModel.REQUEST_INFO"--请求协议
  7. GuildSpeedModel.UPDATE_TASK_INFO = "GuildSpeedModel.UPDATE_TASK_INFO"--更新任务信息
  8. GuildSpeedModel.SubID = {
  9. RUNE = 1,--御魂
  10. Peak = 2,
  11. Extreme = 3,
  12. Rune = 4,
  13. }
  14. function GuildSpeedModel:__init()
  15. GuildSpeedModel.Instance = self
  16. self:Reset()
  17. end
  18. function GuildSpeedModel:Reset()
  19. self.login_red = true--登陆红点
  20. self.my_guild_rank = nil--个人公会排行
  21. self.my_rank = nil--个人排行
  22. self.my_live = nil--个人活跃
  23. self.my_guild_live_rank = nil--个人活跃社团排行
  24. self.show_rank_award_index = 0--当前大奖展示index
  25. self.guild_rank_list_info = {}--社团排行榜数据
  26. self.rank_list_info = {}--个人排行榜数据
  27. self.active_rank_list_info = {}--活跃值排行
  28. self.award_state_info = {}--1-战力奖励 2-活跃奖励 3-战力榜团长专属 4-活跃榜团长专属
  29. self.task_info = {}--任务信息
  30. self:InitCfg()
  31. end
  32. function GuildSpeedModel:getInstance()
  33. if GuildSpeedModel.Instance == nil then
  34. GuildSpeedModel.Instance = GuildSpeedModel.New()
  35. end
  36. return GuildSpeedModel.Instance
  37. end
  38. --初始化配置
  39. function GuildSpeedModel:InitCfg( )
  40. self.guildSpeed_com_cfg = {}--社团竞榜常量配置
  41. local guildSpeed_com_cfg = DeepCopy(Config.Guildracerankkv)
  42. for k,v in pairs(guildSpeed_com_cfg) do
  43. self.guildSpeed_com_cfg[Trim(v.key)] = v
  44. end
  45. self.guildSpeed_task_cfg = {}--社团竞榜常量配置
  46. local guildSpeed_task_cfg = DeepCopy(Config.Guildraceranktask)
  47. for k,v in ipairs(guildSpeed_task_cfg) do
  48. v.task_name = Trim(v.task_name)
  49. v.task_desc = Trim(v.task_desc)
  50. v.reward = stringtotable(v.reward)
  51. v.condition = stringtotable(v.condition)
  52. v.client_skip = stringtotable(v.client_skip)
  53. self.guildSpeed_task_cfg[v.id] = v
  54. end
  55. self.guildSpeed_last_day = self.guildSpeed_com_cfg["last_day"].value
  56. self.guildSpeed_clear_time = stringtotable(self.guildSpeed_com_cfg["reward_time"].value)
  57. self.guildSpeed_common_reward = stringtotable(self.guildSpeed_com_cfg["common_reward"].value)[1]
  58. self.guildSpeed_active_reward = stringtotable(self.guildSpeed_com_cfg["active_common_reward"].value)
  59. self.guildSpeed_leader_fight_reward = stringtotable(self.guildSpeed_com_cfg["power_chairman_reward"].value)
  60. self.guildSpeed_leader_active_reward = stringtotable(self.guildSpeed_com_cfg["active_chairman_reward"].value)
  61. self.guildSpeed_award_cfg = {}--社团竞榜奖励配置
  62. local guildSpeed_award_cfg = DeepCopy(Config.Guildracerankreward)
  63. for k,v in pairs(guildSpeed_award_cfg) do
  64. v.reward = stringtotable(v.reward)[1]
  65. if not self.guildSpeed_award_cfg[v.guild_rank] then
  66. self.guildSpeed_award_cfg[v.guild_rank] = {}
  67. end
  68. self.guildSpeed_award_cfg[v.guild_rank][#self.guildSpeed_award_cfg[v.guild_rank] + 1] = v
  69. end
  70. local sort_func = function ( a, b )--排序
  71. return a.rank_low < b.rank_low
  72. end
  73. for k,v in pairs(self.guildSpeed_award_cfg) do
  74. table.sort(v, sort_func)
  75. end
  76. end
  77. --等到奖励配置(自己社团前三则对应展示奖励 否者展示社团第一名奖励)
  78. function GuildSpeedModel:GetAwardCfg( guild_rank )
  79. guild_rank = guild_rank or 1
  80. if guild_rank > 3 or guild_rank == 0 then
  81. guild_rank = 1
  82. end
  83. return self.guildSpeed_award_cfg[guild_rank]
  84. end
  85. --检测公会竞速活动图标是否需要开启[兼顾设置公会竞速活动内部的活动列表]
  86. function GuildSpeedModel:CheckIconBoolOpen()
  87. self.act_base_list = {} --公会竞速活动内部的活动列表
  88. local all_list = CustomActivityModel:getInstance():getAllActListByBaseType(CustomActivityModel.CustomActBaseType.GUILD_SPEED) or {}
  89. if all_list and TableSize(all_list) > 0 then
  90. all_list = DeepCopy(all_list)
  91. local server_time = TimeUtil:getServerTime()
  92. self.red_dot_info = {}--红点信息
  93. for k,v in pairs(all_list) do
  94. if server_time > v.stime and v.etime > server_time then
  95. if GetModuleIsOpen(331,CustomActivityModel.CustomActBaseType.GUILD_SPEED) then
  96. ActivityIconManager:getInstance():addIcon(331066, -1)
  97. else
  98. ActivityIconManager:getInstance():deleteIcon(331066)
  99. end
  100. else
  101. ActivityIconManager:getInstance():deleteIcon(331066)
  102. end
  103. end
  104. self:CheckMainIconRedDot()
  105. else
  106. ActivityIconManager:getInstance():deleteIcon(331066)
  107. end
  108. end
  109. function GuildSpeedModel:CheckMainIconRedDot()
  110. local show = false
  111. -- if self.login_red then--登陆红点暂时去掉2021.8.5炫材
  112. -- show = true
  113. -- end
  114. if not show then
  115. for k,v in pairs(self.award_state_info) do
  116. if v == 1 then
  117. show = true
  118. break
  119. end
  120. end
  121. end
  122. local guild_position = RoleManager.Instance.mainRoleInfo.position
  123. if not show and guild_position == 1 then--任务信息
  124. for k,v in pairs(self.task_info) do
  125. if v.status == 1 then
  126. show = true
  127. break
  128. end
  129. end
  130. end
  131. GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS, 331066, show)
  132. end
  133. --设置社团排行榜数据
  134. function GuildSpeedModel:SetGuildRankInfo( guild_list )
  135. self.show_rank_award_index = 0
  136. self.guild_rank_list_info = {}
  137. for i,v in ipairs(guild_list) do
  138. self.guild_rank_list_info[v.rank] = v
  139. if RoleManager.Instance.mainRoleInfo.guild_id == v.guild_id then
  140. self.show_rank_award_index = v.old_rank
  141. end
  142. end
  143. end
  144. function GuildSpeedModel:GetGuildRankInfo( )
  145. return self.guild_rank_list_info
  146. end
  147. --设置个人排行榜数据
  148. function GuildSpeedModel:SetRankInfo( rank_list )
  149. self.rank_list_info = {}
  150. for i,v in ipairs(rank_list) do
  151. self.rank_list_info[v.rank] = v
  152. end
  153. end
  154. function GuildSpeedModel:GetRankInfo( )
  155. return self.rank_list_info
  156. end
  157. --设置个人社团活跃排行榜数据
  158. function GuildSpeedModel:SetActiveRankInfo( guild_list )
  159. self.active_rank_list_info = {}
  160. for i,v in ipairs(guild_list) do
  161. self.active_rank_list_info[v.rank] = v
  162. end
  163. end
  164. function GuildSpeedModel:GetActiveRankInfo( )
  165. return self.active_rank_list_info
  166. end
  167. --设置每个类型的奖励领取状态--1-战力奖励 2-活跃奖励 3-战力榜团长专属 4-活跃榜团长专属
  168. function GuildSpeedModel:SetTypeAwardInfo( scmd )
  169. self.award_state_info[scmd.type] = scmd.is_receive
  170. self:CheckMainIconRedDot()
  171. end
  172. function GuildSpeedModel:GetTypeAwardState( type )
  173. return self.award_state_info[type] or 0
  174. end
  175. --设置任务信息
  176. function GuildSpeedModel:SetTaskInfo( scmd )
  177. self.task_info = {}
  178. for i,v in ipairs(scmd.task_list) do
  179. self.task_info[v.task_id] = v
  180. end
  181. -- print("huangcong:GuildSpeedModel [start:202] :", self.task_info)
  182. -- PrintTable(self.task_info)
  183. -- print("huangcong:GuildSpeedModel [end]")
  184. self:CheckMainIconRedDot()
  185. end
  186. --获得任务信息
  187. function GuildSpeedModel:GetTaskInfo( task_id )
  188. return self.task_info[task_id]
  189. end
  190. --获得任务配置
  191. function GuildSpeedModel:GetTaskCfg( id )
  192. return self.guildSpeed_task_cfg[id]
  193. end