KLUISystemLeftPanel.lua 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  1. ---@class KLUISystemLeftPanel:UIKmlLuaPanelBase
  2. ---@field view KLUISystemLeftPanelView
  3. ---@field mountPanelItem KLUISystemItem
  4. local KLUISystemLeftPanel = class(UIKmlLuaPanelBase)
  5. local this =KLUISystemLeftPanel
  6. local ESystemType = {
  7. NoShow = enum(0),
  8. ShowRight = enum(1),
  9. ShowTop = enum(2),
  10. }
  11. local ETopSystemType = {
  12. None = enum(0),
  13. Show = enum(1),
  14. }
  15. ---创建时调用一次
  16. function this:Init()
  17. self.systemTemplateList = {}
  18. GUI:setVisible(self.view.maxBagTips, false)
  19. end
  20. ---创建或者刷新界面数据时调用
  21. function this:Refresh()
  22. self:Clear()
  23. PrivilegeCardManager.onHookType = EOnHookType.Situ
  24. PrivilegeCardManager.StopPatrolOnHook()
  25. self.systemType = ESystemType.ShowRight
  26. self.topSystemType = ETopSystemType.None
  27. self:RefreshSystemMenu()
  28. local onHookState = SL:GetMetaValue(EMetaVarGetKey.GET_ONHOOK_STATE)
  29. self:SetOnHookIcon(onHookState)
  30. if not SL:GetIsExpandSystemFunction() then
  31. GUI:UIPanel_Open("dev/ui/MainUI/Panel/KLMainAttack_PC/KLMainAttackPanel")
  32. end
  33. SL:RefreshPanelALLRedPoint("KLUISystemLeftPanel")
  34. self.shiftShow = false
  35. end
  36. function this:RefreshSystemMenu()
  37. self:Clear()
  38. local tbl = SL:GetConfigTable("cfg_MainPanelUI")
  39. local data = {}
  40. ---@param v cfg_MainPanelUI_column
  41. for i, v in pairs(tbl) do
  42. if v.displayLocation == self.systemType then
  43. table.insert(data,v)
  44. end
  45. if v.systemId == "背包" then
  46. GUI:setPosition(self.view.bagBtn, -60, -5)
  47. self:ChangeBagIcon()
  48. end
  49. if v.systemId == "变身卡牌变身" and v.displayLocation == 0 then
  50. GUI:setPosition(self.view.shapeShiftRoot,v.positionOffset[1] or 25,v.positionOffset[2] or -74)
  51. end
  52. end
  53. table.sort(data,function(a, b)
  54. if a.id < b.id then
  55. return true
  56. end
  57. return false
  58. end)
  59. ---@param v cfg_MainPanelUI_column
  60. for i, v in pairs(data) do
  61. ---@type KLUISystemItem
  62. local systemPanelItem = GUI:UIPanel_Open("dev/ui/MainUI/Item/KLUISystem/KLUISystemItem",self.view.systemMenu,self,v,true)
  63. table.insert(self.systemTemplateList,systemPanelItem)
  64. GUI:SetID(systemPanelItem.view.root,v.btnName)
  65. SL:AddRedPoint(systemPanelItem)
  66. local isMeet = SL:GetMetaValue(EMetaVarGetKey.IS_OPEN_SYSTEMFUNCTION,v.systemId)
  67. if v.dec == "坐骑" then
  68. self.mountPanelItem = systemPanelItem
  69. GUI:setVisible(self.mountPanelItem.view.root,InfoManager.mountInfo.isHasOwnerMount)
  70. else
  71. GUI:setVisible(systemPanelItem.view.root,isMeet)
  72. end
  73. end
  74. end
  75. function this:ChangeBagIcon()
  76. local is_empty = SL:GetMetaValue(EMetaVarGetKey.BAG_REMAIN_COUNT)
  77. if is_empty then
  78. GUI:Image_loadTexture(self.view.bagBtn,"btn_beibao", "Atlas/UIMainPanel.spriteatlas")
  79. GUI:setVisible(self.view.maxBagTips, false)
  80. else
  81. GUI:Image_loadTexture(self.view.bagBtn,"bag_btn_full", "Atlas/UIMainPanel.spriteatlas")
  82. local show = SL:GetLocalString("showMaxBagTips", "true")
  83. if show=="true" then
  84. GUI:setVisible(self.view.maxBagTips, true)
  85. end
  86. end
  87. end
  88. ---注册UI事件和服务器消息
  89. function this:RegistEvents()
  90. GUI:AddOnClickEvent(self.view.expandBtn,self,self.OnClicksysExpandBtn)
  91. GUI:AddOnClickEvent(self.view.foldBtn,self,self.OnClicksysFoldBtn)
  92. GUI:AddOnClickEvent(self.view.bagBtn,self,self.OnClickBagBtn)
  93. GUI:AddOnClickEvent(self.view.hookBtn,self,self.OnClickHookBtn)
  94. GUI:AddOnClickEvent(self.view.autoHookIconContainer,self,self.OnClickAutoHookIconContainerBtn)
  95. GUI:AddOnClickEvent(self.view.autoHookIconContainer_2,self,self.OnClickAutoHookIconContainerBtn_2)
  96. GUI:AddOnClickEvent(self.view.btn_hook_out, self, self.OnClickHootOutBtn)
  97. GUI:AddOnClickEvent(self.view.img_auto_2_close, self, self.OnClickHootInBtn)
  98. GUI:AddOnClickEvent(self.view.btn_hook_in, self, self.OnClickHootInBtn)
  99. GUI:AddOnClickEvent(self.view.btn_patrol, self, self.OnClickPatrolBtn)
  100. GUI:AddOnClickEvent(self.view.btn_situ, self, self.OnClickSituBtn)
  101. GUI:AddOnClickEvent(self.view.btn_offline, self, self.OnClickOffLineBtn)
  102. GUI:AddOnClickEvent(self.view.btn_shift, self, self.OnClickShapeShiftBtn)
  103. GUI:AddOnClickEvent(self.view.btn_shift_cancel, self, self.OnClickShapeShiftCancelBtn)
  104. GUI:AddOnClickEvent(self.view.maxTipsCloseBtn, self, self.maxTipsCloseBtn)
  105. GUI:AddOnClickEvent(self.view.equipRecycleBtn, self, self.equipRecycleBtn)
  106. GUI:AddOnClickEvent(self.view.autoRecycleBtn, self, self.autoRecycleBtn)
  107. for i = 1, 3 do
  108. GUI:AddOnClickEvent(self.view["btn_shift_" .. i], self, self.OnClickEachShapeShiftBtn, i)
  109. end
  110. SL:RegisterLUAEvent(LUA_EVENT_ONHOOK_STATE_CHANGE,self.LUA_EVENT_ONHOOK_STATE_CHANGE,self)
  111. SL:RegisterLUAEvent(LUA_EVENT_BAG_CHANGE_AFTER,self.LUA_EVENT_BAG_CHANGE_AFTER,self)
  112. SL:RegisterLUAEvent(LUA_EVENT_SHAPE_SHIFT_CARD_SKILL_CHANGE,self.RefreshShapeShiftCardBtn,self)
  113. SL:RegisterLUAEvent(LUA_EVENT_ROLE_PROPERTY_CHANGE,self.LUA_EVENT_ROLE_PROPERTY_CHANGE,self)
  114. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_MOUNT_LOGO,self.RES_MOUNT_LOGO,self)
  115. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_TRANSFER_CARD_CD,self.RES_TRANSFER_CARD_CD,self)
  116. SL:RegisterLUAEvent(LUA_EVENT_ROLE_TRANSFER, self.RoleTransfer, self)
  117. GUI:SetToggleOnValueChange(self.view.notNoticeToggle, self, self.notNoticeToggleChange)
  118. end
  119. function this:notNoticeToggleChange(_, customData, eventData)
  120. if eventData[1] then
  121. SL:SetLocalString("showMaxBagTips", "false")
  122. else
  123. SL:SetLocalString("showMaxBagTips", "true")
  124. end
  125. end
  126. function this:autoRecycleBtn()
  127. --if PrivilegeCardManager.isautoRecovery() then
  128. --
  129. --else
  130. --
  131. --end
  132. local panel = GUI:UIPanel_Open("dev/ui/Recover/Panel/KLRecover/KLRecoverPanel")
  133. panel:SetAutoRecover(true)
  134. end
  135. function this:equipRecycleBtn()
  136. GUI:UIPanel_Open("dev/ui/Recover/Panel/KLRecover/KLRecoverPanel")
  137. end
  138. function this:maxTipsCloseBtn()
  139. GUI:setVisible(self.view.maxBagTips, false)
  140. end
  141. ---人物属性改变时(刷新红点)
  142. function this:LUA_EVENT_ROLE_PROPERTY_CHANGE()
  143. SL:RefreshPanelALLRedPoint("KLUISystemLeftPanel")
  144. end
  145. function this:LUA_EVENT_BAG_CHANGE_AFTER()
  146. self:ChangeBagIcon()
  147. end
  148. function this:RES_MOUNT_LOGO(id,message)
  149. if self.mountPanelItem then
  150. GUI:setVisible(self.mountPanelItem.view.root,message.logo == 1)
  151. end
  152. end
  153. function this:OnClicksysExpandBtn()
  154. GUI:setVisible(self.view.expandBtn,false)
  155. GUI:setVisible(self.view.foldBtn,true)
  156. GUI:setVisible(self.view.systemArea,false)
  157. --GUI:UIPanel_Open("dev/ui/MainUI/Panel/KLMainAttack/KLMainAttackPanel")
  158. --SL:onLUAEvent(LUA_EVENT_EXPAND_RIGHTSYSTEMFUNCTION,false)
  159. end
  160. function this:OnClicksysFoldBtn()
  161. GUI:setVisible(self.view.expandBtn,true)
  162. GUI:setVisible(self.view.foldBtn,false)
  163. GUI:setVisible(self.view.systemArea,true)
  164. -- GUI:UIPanel_Close("dev/ui/MainUI/Panel/KLMainAttack/KLMainAttackPanel")
  165. --SL:onLUAEvent(LUA_EVENT_EXPAND_RIGHTSYSTEMFUNCTION,true)
  166. end
  167. function this:OnClickBagBtn()
  168. ---@type cfg_MainPanelUI_column
  169. local tbl = SL:GetConfig("cfg_MainPanelUI",107,"id")
  170. SL:onLUAEvent(LUA_EVENT_OPENMAINSYSTEMFUNCTION, tbl and tbl.systemId or "背包")
  171. --EventManager.Dispatch(LUA_EVENT_OPENMAINSYSTEMFUNCTION,tbl and tbl.systemId or "背包")
  172. end
  173. function this:OnClickHookBtn()
  174. local onHookState = SL:GetMetaValue(EMetaVarGetKey.GET_ONHOOK_STATE)
  175. if onHookState == EAutoOnHookStatus.PauseOnHook then
  176. SL:StopOnHook(true)
  177. PrivilegeCardManager.StopPatrolOnHook()
  178. elseif onHookState == EAutoOnHookStatus.StopOnHook then
  179. if PrivilegeCardManager.onHookType == EOnHookType.Situ then
  180. if SL:GetMetaValue(EMetaVarGetKey.GET_IS_SAFEAREA) then
  181. return
  182. end
  183. SL:StartOnHook(true,true)
  184. elseif PrivilegeCardManager.onHookType == EOnHookType.Patrol then
  185. self:OnClickPatrolBtn()
  186. end
  187. end
  188. end
  189. function this:OnClickAutoHookIconContainerBtn()
  190. local onHookState = SL:GetMetaValue(EMetaVarGetKey.GET_ONHOOK_STATE)
  191. if onHookState == EAutoOnHookStatus.OnHooking then
  192. SL:StopOnHook(true)
  193. end
  194. if PrivilegeCardManager.onHookType == EOnHookType.Patrol then
  195. --巡逻刷新状态与主界面挂机图标
  196. PrivilegeCardManager.StopPatrolOnHook()
  197. SL:Me_StopMove(true, true)
  198. self:RefreshAutoOnHookIcon_2State(true)
  199. self:SetOnHookIcon()
  200. end
  201. end
  202. ---挂机新界面自动按钮
  203. function this:OnClickAutoHookIconContainerBtn_2()
  204. if SL:GetMetaValue(EMetaVarGetKey.GET_IS_SAFEAREA) then
  205. return
  206. end
  207. --local errorCode = AutoFightManager.CheckAutoFight()
  208. --if errorCode ~= EAutoFightErrorTip.OK then
  209. -- SL:TipMessage(errorCode, 1, NoticeType.NoticeMid)
  210. -- return
  211. --end
  212. ---挂机状态是原地
  213. if PrivilegeCardManager.onHookType == EOnHookType.Situ then
  214. if self.autoIcon_2State then
  215. SL:StartOnHook(true, true)
  216. self:RefreshAutoOnHookIcon_2State(false)
  217. else
  218. SL:StopOnHook(true)
  219. self:RefreshAutoOnHookIcon_2State(true)
  220. end
  221. end
  222. ---挂机状态是巡逻
  223. if PrivilegeCardManager.onHookType == EOnHookType.Patrol then
  224. if self.autoIcon_2State then
  225. self:OnClickPatrolBtn()
  226. else
  227. local onHookState = SL:GetMetaValue(EMetaVarGetKey.GET_ONHOOK_STATE)
  228. if onHookState == EAutoOnHookStatus.OnHooking then
  229. SL:StopOnHook(true)
  230. end
  231. --巡逻刷新状态与主界面挂机图标
  232. PrivilegeCardManager.StopPatrolOnHook()
  233. SL:Me_StopMove(true, true)
  234. self:RefreshAutoOnHookIcon_2State(true)
  235. end
  236. self:SetOnHookIcon()
  237. end
  238. self:RefreshOnHookIconType(PrivilegeCardManager.onHookType)
  239. end
  240. ---打开挂机新界面
  241. function this:OnClickHootOutBtn()
  242. GUI:setVisible(self.view.img_new_hook, true)
  243. self:RefreshOnHookIconType(PrivilegeCardManager.onHookType)
  244. if PrivilegeCardManager.onHookType == EOnHookType.Patrol then
  245. self:RefreshAutoOnHookIcon_2State(not PrivilegeCardManager.patrolOnHookState)
  246. else
  247. self:RefreshAutoOnHookIcon_2State(not self.animationStart)
  248. end
  249. end
  250. ---刷新挂机新界面自动按钮动画
  251. function this:RefreshAutoOnHookIcon_2State(state)
  252. GUI:SetControlAnimation_stop(self.view.autoMaxIcon_2,state)
  253. GUI:SetControlAnimation_stop(self.view.autoMinIcon_2,state)
  254. self.autoIcon_2State = state
  255. end
  256. ---隐藏挂机新界面
  257. function this:OnClickHootInBtn()
  258. GUI:setVisible(self.view.img_new_hook, false)
  259. end
  260. ---点击巡逻按钮
  261. function this:OnClickPatrolBtn()
  262. ---如果之前再挂机则暂停
  263. local onHookState = SL:GetMetaValue(EMetaVarGetKey.GET_ONHOOK_STATE)
  264. if onHookState == EAutoOnHookStatus.OnHooking then
  265. SL:StopOnHook(true)
  266. end
  267. ---判断激活特权是否能巡逻
  268. if PrivilegeCardManager.isAutoPatrolOnHook() then
  269. if PrivilegeCardManager.StartPatrolOnHook() then
  270. if SL:GetMetaValue(EMetaVarGetKey.GET_IS_SAFEAREA) then
  271. return
  272. end
  273. ---找直线距离最近的黄金boss
  274. if not PrivilegeCardManager:GetThisMapGoldBossAttack() then
  275. self:RefreshOnHookIconType(EOnHookType.Patrol)
  276. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SET_PATROL, EOnHookType.Patrol)
  277. PrivilegeCardManager.onHookType = EOnHookType.Patrol
  278. self:RefreshAutoOnHookIcon_2State(false)
  279. self:SetOnHookIcon()
  280. end
  281. end
  282. else
  283. SL:CommonTipsMessage({ stringTblID = 481, ui = self, sureBtnText = "确定", cancelBtnText = "取消",
  284. callback = self.OpenFirsh })
  285. end
  286. end
  287. function this:OpenFirsh()
  288. --[[ if InfoManager.monthCardInfo:IsHaveMonthCardRights("privilege") then
  289. GUI:UIPanel_Open("dev/outui/MonthCard/Panel/KLUIMonthCardMain/KLUIMonthCardMainPanel", nil, nil, { type = "privilege" })
  290. else
  291. GUI:UIPanel_Open("dev/outui/MonthCard/Panel/KLUIMonthCardMain/KLUIMonthCardMainPanel")
  292. end]]
  293. GUI:UIPanel_Open("dev/outui/ShopMain/Panel/KLShopMain/KLShopMainPanel",nil,nil,{2})
  294. end
  295. ---点击挂机新界面原地挂机按钮
  296. function this:OnClickSituBtn()
  297. if SL:GetMetaValue(EMetaVarGetKey.GET_IS_SAFEAREA) then
  298. return
  299. end
  300. ---刷新挂机按钮状态
  301. if PrivilegeCardManager.IsCanOnHookCheck() then
  302. self:RefreshAutoOnHookIcon_2State(false)
  303. self:RefreshOnHookIconType(EOnHookType.Situ)
  304. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SET_PATROL, EOnHookType.Situ)
  305. PrivilegeCardManager.onHookType = EOnHookType.Situ
  306. ---停止巡逻挂机
  307. if PrivilegeCardManager.patrolOnHookState then
  308. PrivilegeCardManager.StopPatrolOnHook()
  309. SL:Me_StopMove(true, true)
  310. end
  311. SL:StartOnHook(true,true)
  312. end
  313. end
  314. ---离线挂机,退出游戏
  315. function this:OnClickOffLineBtn()
  316. SL:CommonTipsMessage({ stringTblID = 448, callback = function()
  317. if MuInterface.Instance:IsSdk() then
  318. MuInterface.Instance:LogoutAccount()
  319. end
  320. SL:QuitGame()
  321. end })
  322. end
  323. ---刷新挂机新界面挂机状态图标
  324. function this:RefreshOnHookIconType(type)
  325. local patrol = "icon_patrol"
  326. local situ = "icon_situ"
  327. local offline = "icon_offline"
  328. if EOnHookType.No == type then
  329. situ = situ .. "_no"
  330. offline = offline .. "_no"
  331. patrol = patrol .. "_no"
  332. elseif type == EOnHookType.Patrol then
  333. situ = situ .. "_no"
  334. offline = offline .. "_no"
  335. elseif type == EOnHookType.Situ then
  336. patrol = patrol .. "_no"
  337. offline = offline .. "_no"
  338. elseif type == EOnHookType.OffLine then
  339. situ = situ .. "_no"
  340. patrol = patrol .. "_no"
  341. end
  342. GUI:Image_loadTexture(self.view.btn_patrol, patrol, "Atlas/KLUIPrivilegePanel.spriteatlas")
  343. GUI:Image_loadTexture(self.view.btn_situ, situ, "Atlas/KLUIPrivilegePanel.spriteatlas")
  344. GUI:Image_loadTexture(self.view.btn_offline, offline, "Atlas/KLUIPrivilegePanel.spriteatlas")
  345. end
  346. ---@param onHookState EAutoOnHookStatus
  347. function this:LUA_EVENT_ONHOOK_STATE_CHANGE(_,onHookState)
  348. self:SetOnHookIcon(onHookState)
  349. end
  350. function this:SetOnHookIcon(onHookState)
  351. if PrivilegeCardManager.onHookType == EOnHookType.Situ then
  352. if onHookState == EAutoOnHookStatus.OnHooking then
  353. GUI:setVisible(self.view.hookBtn,false)
  354. GUI:setVisible(self.view.autoHookIconContainer,true)
  355. GUI:SetControlAnimation_stop(self.view.autoMaxIcon,false)
  356. GUI:SetControlAnimation_stop(self.view.autoMinIcon,false)
  357. self.animationStart = true
  358. elseif onHookState == EAutoOnHookStatus.PauseOnHook then
  359. GUI:setVisible(self.view.hookBtn,true)
  360. GUI:setVisible(self.view.autoHookIconContainer,false)
  361. GUI:SetControlAnimation_stop(self.view.autoMaxIcon,true)
  362. GUI:SetControlAnimation_stop(self.view.autoMinIcon,true)
  363. self.animationStart = false
  364. GUI:Image_loadTexture(self.view.hookBtn,"button_main_pause","Atlas/UIMainPanel.spriteatlas")
  365. elseif onHookState == EAutoOnHookStatus.StopOnHook then
  366. GUI:setVisible(self.view.hookBtn,true)
  367. GUI:setVisible(self.view.autoHookIconContainer,false)
  368. GUI:SetControlAnimation_stop(self.view.autoMaxIcon,true)
  369. GUI:SetControlAnimation_stop(self.view.autoMinIcon,true)
  370. self.animationStart = false
  371. GUI:Image_loadTexture(self.view.hookBtn,"button_main_notclicked","Atlas/UIMainPanel.spriteatlas")
  372. end
  373. elseif PrivilegeCardManager.onHookType == EOnHookType.Patrol then
  374. ---巡逻挂机走另一断逻辑
  375. if PrivilegeCardManager.patrolOnHookState then
  376. GUI:setVisible(self.view.hookBtn,false)
  377. GUI:setVisible(self.view.autoHookIconContainer,true)
  378. GUI:SetControlAnimation_stop(self.view.autoMaxIcon,false)
  379. GUI:SetControlAnimation_stop(self.view.autoMinIcon,false)
  380. else
  381. GUI:setVisible(self.view.hookBtn,true)
  382. GUI:setVisible(self.view.autoHookIconContainer,false)
  383. GUI:SetControlAnimation_stop(self.view.autoMaxIcon,true)
  384. GUI:SetControlAnimation_stop(self.view.autoMinIcon,true)
  385. end
  386. end
  387. end
  388. function this:RefreshShapeShiftCardBtn()
  389. self:ShapeShiftStateChangeRefreshUI()
  390. local info = InfoManager.shapeShiftCardInfo.shiftSkill
  391. self.btnInfo = {}
  392. local index = 1
  393. for i, v in pairs(info) do
  394. GUI:setVisible(self.view["btn_shift_" .. index], true)
  395. local icon = InfoManager.shapeShiftCardInfo:GetMonsterIcon(i)
  396. GUI:Image_loadTexture(self.view["img_shift_icon_" .. index], icon, "Atlas/UIbianshentb.spriteatlas")
  397. self.btnInfo[index] = v
  398. index = index + 1
  399. end
  400. if index <= 3 then
  401. for i = index, 3 do
  402. GUI:setVisible(self.view["btn_shift_" .. index], false)
  403. end
  404. end
  405. if self.allSkillCDTbl then
  406. self:RES_TRANSFER_CARD_CD(_, self.allSkillCDTbl)
  407. end
  408. end
  409. function this:OnClickShapeShiftBtn()
  410. self.shiftShow = not self.shiftShow
  411. GUI:setVisible(self.view.img_shift_bg, self.shiftShow)
  412. end
  413. function this:OnClickShapeShiftCancelBtn()
  414. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_TRANSFORMATION, 0)
  415. end
  416. function this:OnClickEachShapeShiftBtn(_, eventData)
  417. if self.btnInfo[eventData].group ~= InfoManager.shapeShiftCardInfo.shiftMonsterGroup then
  418. if self.shiftSkillCDTbl and self.shiftSkillCDTbl[self.btnInfo[eventData].group] then
  419. local time = Time.GetServerTime()
  420. local time2 = self.shiftSkillCDTbl[self.btnInfo[eventData].group]
  421. if time < time2 then
  422. return
  423. end
  424. end
  425. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_TRANSFORMATION, self.btnInfo[eventData].group)
  426. end
  427. end
  428. function this:ShapeShiftStateChangeRefreshUI()
  429. ---@type cfg_system_switch_column
  430. local cfg = SL:GetConfig("cfg_system_switch", 113)
  431. if cfg.needLevel > SL:GetMetaValue("LEVEL") or cfg.needDay > SL:GetOpenServerDay() then
  432. GUI:setVisible(self.view.shapeShiftRoot, false)
  433. return
  434. end
  435. local info = InfoManager.shapeShiftCardInfo.shiftSkill
  436. if table.count(info) > 0 then
  437. GUI:setVisible(self.view.shapeShiftRoot, true)
  438. else
  439. GUI:setVisible(self.view.shapeShiftRoot, false)
  440. return
  441. end
  442. if InfoManager.shapeShiftCardInfo:isShiftMonster() then
  443. GUI:setVisible(self.view.btn_shift_cancel, true)
  444. GUI:setVisible(self.view.btn_shift, false)
  445. if self.shiftShow then
  446. self:OnClickShapeShiftBtn()
  447. end
  448. else
  449. GUI:setVisible(self.view.btn_shift_cancel, false)
  450. GUI:setVisible(self.view.btn_shift, true)
  451. end
  452. end
  453. function this:RES_TRANSFER_CARD_CD(_, message)
  454. if not self.shiftSkillCDTbl then
  455. self.shiftSkillCDTbl = {}
  456. end
  457. for j, k in pairs(self.btnInfo) do
  458. local isRefresh = false
  459. for i, v in pairs(message) do
  460. if tonumber(i) == k.group then
  461. isRefresh = true
  462. local time = (v - Time.GetServerTime()) / 1000
  463. if time < 0 then
  464. GUI:SetCirclebar_startper(self.view["Img_cdTime_" .. j], 0)
  465. else
  466. GUI:SetCirclebar_startper(self.view["Img_cdTime_" .. j], 100)
  467. GUI:SetCirclebar_time(self.view["Img_cdTime_" .. j], time)
  468. end
  469. self.shiftSkillCDTbl[k.group] = v
  470. end
  471. end
  472. if not isRefresh then
  473. GUI:SetCirclebar_startper(self.view["Img_cdTime_" .. j], 0)
  474. end
  475. end
  476. self:ShapeShiftStateChangeRefreshUI()
  477. self.allSkillCDTbl = message
  478. end
  479. function this:RoleTransfer()
  480. if PrivilegeCardManager.onHookType == EOnHookType.Patrol then
  481. local onHookState = SL:GetMetaValue(EMetaVarGetKey.GET_ONHOOK_STATE)
  482. if onHookState == EAutoOnHookStatus.OnHooking then
  483. SL:StopOnHook(true)
  484. end
  485. PrivilegeCardManager.StopPatrolOnHook()
  486. self:RefreshAutoOnHookIcon_2State(true)
  487. self:SetOnHookIcon()
  488. end
  489. end
  490. function this:RefreshTransferDurationCD(duration)
  491. local time = (duration - Time.GetServerTime()) / 1000
  492. if time <= 0 then
  493. GUI:SetCirclebar_startper(self.view.circlebar_cancel, 0)
  494. else
  495. GUI:SetCirclebar_startper(self.view.circlebar_cancel, 100)
  496. GUI:SetCirclebar_time(self.view.circlebar_cancel, time)
  497. end
  498. end
  499. ---清除数据
  500. function this:Clear()
  501. ---@param systemItem KLUISystemItem
  502. for i, systemItem in pairs(self.systemTemplateList) do
  503. GUI:UIPanel_Close(nil,systemItem)
  504. end
  505. self.systemTemplateList = {}
  506. self.shiftSkillCDTbl = {}
  507. self.allSkillCDTbl = nil
  508. end
  509. function this:Close()
  510. self.systemTemplateList = {}
  511. self.shiftSkillCDTbl = {}
  512. self.allSkillCDTbl = nil
  513. end
  514. return this