KLGemInlayPanel.lua 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677
  1. ---@class KLGemInlayPanel:UIKmlLuaPanelBase
  2. ---@field view KLGemInlayPanelView
  3. ---@field equipPanel KLGemEquipUIPanel
  4. local KLGemInlayPanel = class(UIKmlLuaPanelBase)
  5. local this =KLGemInlayPanel
  6. ---创建时调用一次
  7. function this:Init()
  8. ---第一次打开界面
  9. self.firstOpen = true
  10. self:OpenGemEquipUI()
  11. InfoManager.gemSlateInfo:SetOptEquip(nil)
  12. InfoManager.gemSlateInfo:ChangeGemPosId(nil)
  13. InfoManager.gemSlateInfo:ChangeEquipPosId(nil)
  14. self.curSelectGemInlayType=E_GemInlayType.Gem
  15. self.curSelectSchemeType=1
  16. self.bagItems = {}
  17. self.currentAttList = {}
  18. GUI:DataListInitData(self.view.datalist_gemAttrs, function()
  19. return self:CurrentCountFunc()
  20. end, function(realIndex)
  21. return self:CurrentGetFunc(realIndex)
  22. end, function(realIndex, kmlcontrol)
  23. return self:CurrentInitFunc(realIndex, kmlcontrol)
  24. end, function(realIndex, kmlcontrol)
  25. return self:CurrentUpdateFunc(realIndex, kmlcontrol)
  26. end)
  27. GUI:DataListInitData(self.view.datalist_AllGemAttrs, function()
  28. return self:AllGemAttrCountFunc()
  29. end, function(realIndex)
  30. return self:AllGemAttrCurrentGetFunc(realIndex)
  31. end, function(realIndex, kmlcontrol)
  32. return self:AllGemAttrCurrentInitFunc(realIndex, kmlcontrol)
  33. end, function(realIndex, kmlcontrol)
  34. return self:AllGemAttrCurrentUpdateFunc(realIndex, kmlcontrol)
  35. end)
  36. end
  37. ---打开萤石装备界面
  38. function this:OpenGemEquipUI()
  39. local selectType = nil
  40. local equip_boot = SL:GetMetaValue("EQUIP_TARGET_DATA", 1, EEquipSlotType.TwoHandWeapon)
  41. if equip_boot then-- 策划要求先选中武器
  42. selectType = EEquipSlotType.Weapon
  43. end
  44. if not selectType then
  45. for index=1, 15 do
  46. if table.contains(InfoManager.gemSlateInfo.CanInlayGemEquipPosTbl,tostring(index)) then
  47. local equip = SL:GetMetaValue("EQUIP_TARGET_DATA", 1, index)
  48. if equip then
  49. selectType = index
  50. break
  51. end
  52. end
  53. end
  54. end
  55. GUI:UIPanel_Open("dev/outui/Equip/Panel/KLGemEquipUI/KLGemEquipUIPanel",
  56. nil,
  57. nil,
  58. { x = -465, hideTips = true, callBack = self.CloseEquipUi,selectType = selectType},
  59. true,
  60. function(equipPanel)
  61. self.equipPanel = equipPanel
  62. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SCHEME_INFO)
  63. end)
  64. end
  65. E_GemInlayType = {
  66. Gem = enum(0),
  67. Slate = enum(1),
  68. }
  69. ---注册UI事件和服务器消息
  70. function this:RegistEvents()
  71. GUI:AddOnClickEvent(self.view.CloseButton, self, self.ClosePanel)
  72. GUI:AddOnClickEvent(self.view.GemCellImg1, self, self.OnClickGemCellImg1)
  73. GUI:AddOnClickEvent(self.view.GemCellImg2, self, self.OnClickGemCellImg2)
  74. GUI:AddOnClickEvent(self.view.GemCellImg3, self, self.OnClickGemCellImg3)
  75. GUI:AddOnClickEvent(self.view.SlateImg, self, self.OnClickSlateImg)
  76. GUI:AddOnClickEvent(self.view.zhu_click, self, self.OnClickOptEquip)
  77. GUI:AddOnClickEvent(self.view.HelpBtn, self, self.OnClickHelpBtn)
  78. GUI:SetToggleOnValueChange(self.view.schemeToggle1, self, self.SchemeToggleChanged,1)
  79. GUI:SetToggleOnValueChange(self.view.schemeToggle2, self, self.SchemeToggleChanged,2)
  80. GUI:SetToggleOnValueChange(self.view.gemBtn, self, self.GemSlateToggleChanged,E_GemInlayType.Gem)
  81. --GUI:SetToggleOnValueChange(self.view.slateBtn, self, self.GemSlateToggleChanged,E_GemInlayType.Slate)
  82. SL:RegisterLUAEvent(LUA_EVENT_EQUIP_GRID_CLICK, self.OnClickEquipPanelPos, self)
  83. SL:RegisterLUAEvent(LUA_EVENT_REFRESH_GEM_SLATE_INFO, self.RefreshPanelShow, self)
  84. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_GEM_SCHEME, self.InitSchemeByMsg, self)
  85. SL:RegisterLUAEvent(LUA_EVENT_FORGE_GROUP_PANEL_CLOSE, self.ClosePanel, self)
  86. end
  87. ---创建或者刷新界面数据时调用
  88. function this:Refresh()
  89. self:RefreshRedPoint()
  90. end
  91. function this:RefreshPanelShow()
  92. if self.firstOpen then
  93. self.firstOpen = false
  94. local equip_boot = SL:GetMetaValue("EQUIP_TARGET_DATA", 1, EEquipSlotType.TwoHandWeapon)
  95. if equip_boot then
  96. InfoManager.gemSlateInfo:ChangeEquipPosId(EEquipSlotType.TwoHandWeapon)
  97. self.bagIndex = nil
  98. self:ClickEquip(equip_boot)
  99. self.selectEquipType = EEquipSlotType.TwoHandWeapon
  100. return
  101. end
  102. for index=1, 15 do
  103. if table.contains(InfoManager.gemSlateInfo.CanInlayGemEquipPosTbl,tostring(index)) then
  104. local equip = SL:GetMetaValue("EQUIP_TARGET_DATA", 1, index)
  105. if equip then
  106. InfoManager.gemSlateInfo:ChangeEquipPosId(index)
  107. self.bagIndex = nil
  108. self.selectEquipType = index
  109. self:ClickEquip(equip)
  110. return
  111. end
  112. end
  113. end
  114. self:RefreshGemSlateShow(self.curSelectGemInlayType)
  115. return
  116. end
  117. self:RefreshGemSlateShow(self.curSelectGemInlayType)
  118. end
  119. function this:CurrentCountFunc()
  120. return #self.currentAttList
  121. end
  122. function this:CurrentGetFunc(realIndex)
  123. end
  124. function this:CurrentInitFunc(realIndex,kmlcontrol)
  125. end
  126. function this:CurrentUpdateFunc(realIndex,kmlcontrol)
  127. local data = self.currentAttList[realIndex + 1]
  128. local singleAttrTxt = GUI:GetChildControl(self.view.datalist_gemAttrs, realIndex, "singleAttrTxt")
  129. local cfg=SL:GetConfig("cfg_equip_gem", data)
  130. local attrTbl = SL:GetConfig("cfg_att_info", cfg.gemAtt[1][1])
  131. local slateCfg
  132. local addValue=0
  133. local factor=1
  134. if self.curSelectGemInlayType==E_GemInlayType.Slate then
  135. local inlaySlate=InfoManager.gemSlateInfo:GetCurActiveSchemeGem(nil,true)
  136. if inlaySlate then
  137. slateCfg=SL:GetConfig("cfg_equip_stoneBoard", inlaySlate)
  138. end
  139. if slateCfg then
  140. for k, v in pairs(slateCfg.stoneAtt2) do
  141. if cfg.gemBelong[1]==v[1] then
  142. factor=v[2]*0.0001
  143. break
  144. end
  145. end
  146. else
  147. factor=0
  148. end
  149. -- GUI:SetActive(self.view.NoAttribute,not slateCfg)
  150. end
  151. local attrName=attrTbl.showname
  152. addValue=math.floor(cfg.gemAtt[1][2]*factor)
  153. if cfg.gemAtt[2] then
  154. if cfg.gemAtt[1][1]==200011 and cfg.gemAtt[2][1]==200021 then
  155. attrName="攻击力"
  156. addValue=string.format("%s~%s",math.floor(cfg.gemAtt[1][2]*factor),math.floor(cfg.gemAtt[2][2]*factor))
  157. elseif cfg.gemAtt[1][1]==201011 and cfg.gemAtt[2][1]==201021 then
  158. attrName="攻击力"--"物理攻击力"
  159. addValue=string.format("%s~%s",math.floor(cfg.gemAtt[1][2]*factor),math.floor(cfg.gemAtt[2][2]*factor))
  160. elseif cfg.gemAtt[1][1]==202011 and cfg.gemAtt[2][1]==202021 then
  161. attrName="攻击力"--"魔法攻击力"
  162. addValue=string.format("%s~%s",math.floor(cfg.gemAtt[1][2]*factor),math.floor(cfg.gemAtt[2][2]*factor))
  163. elseif cfg.gemAtt[1][1]==205011 and cfg.gemAtt[2][1]==205021 then
  164. attrName="攻击力"--"诅咒攻击力"
  165. addValue=string.format("%s~%s",math.floor(cfg.gemAtt[1][2]*factor),math.floor(cfg.gemAtt[2][2]*factor))
  166. elseif cfg.gemAtt[1][1]==203011 and cfg.gemAtt[2][1]==203021 then
  167. attrName="攻击力"--"天鹰攻击力"
  168. addValue=string.format("%s~%s",math.floor(cfg.gemAtt[1][2]*factor),math.floor(cfg.gemAtt[2][2]*factor))
  169. end
  170. end
  171. GUI:Text_setString(singleAttrTxt,string.format("%s %s:<color=#00ff00ff>%s</color>",cfg.gemName,attrName,addValue))
  172. end
  173. function this:AllGemAttrCountFunc()
  174. return #InfoManager.gemSlateInfo.ActiveGemSuitCfgTbl
  175. end
  176. function this:AllGemAttrCurrentGetFunc(realIndex)
  177. end
  178. function this:AllGemAttrCurrentInitFunc(realIndex,kmlcontrol)
  179. end
  180. function this:AllGemAttrCurrentUpdateFunc(realIndex,kmlcontrol)
  181. ---@type cfg_equip_gemSuit_column
  182. local data = InfoManager.gemSlateInfo.ActiveGemSuitCfgTbl[realIndex + 1]
  183. local NotActive = GUI:GetChildControl(self.view.datalist_AllGemAttrs, realIndex, "NotActive")
  184. local ActiveTxt = GUI:GetChildControl(self.view.datalist_AllGemAttrs, realIndex, "ActiveTxt")
  185. local detialBtn = GUI:GetChildControl(self.view.datalist_AllGemAttrs, realIndex, "detialBtn")
  186. GUI:AddOnClickEvent(detialBtn, self, self.OnClickAllGemsInfoBtn)
  187. GUI:SetActive(NotActive,data.sortId>0)
  188. GUI:SetActive(ActiveTxt,data.sortId<0)
  189. local txtShowColor="#DCE1E5"
  190. if data.sortId>0 then
  191. txtShowColor="#8E8E8E"
  192. end
  193. local gemTitleParent = GUI:GetChildControl(self.view.datalist_AllGemAttrs, realIndex, "gemTitleParent")
  194. local attrInfoTxt = GUI:GetChildControl(self.view.datalist_AllGemAttrs, realIndex, "attrInfoTxt")
  195. local skillInfoTxt = GUI:GetChildControl(self.view.datalist_AllGemAttrs, realIndex, "skillInfoTxt")
  196. GUI:Text_setString(gemTitleParent,data.title)
  197. GUI:Text_setTextColor(gemTitleParent,txtShowColor)
  198. local attrStr=""
  199. for i,v in ipairs(data.suitAtt) do
  200. local tmpStr=SL:GetConfig("cfg_att_info", v[1]).showname..v[2].." "
  201. attrStr=attrStr..tmpStr
  202. end
  203. -- local attrTbl = SL:GetConfig("cfg_att_info", v[1])
  204. GUI:Text_setString(attrInfoTxt,attrStr)
  205. GUI:Text_setTextColor(attrInfoTxt,txtShowColor)
  206. GUI:Text_setString(skillInfoTxt,data.skillText)
  207. GUI:Text_setTextColor(skillInfoTxt,txtShowColor)
  208. end
  209. function this:RefreshGemSlateShow(EGemInlayType)
  210. local inlayGem1=InfoManager.gemSlateInfo:GetCurActiveSchemeGem("1")
  211. local inlayGem2=InfoManager.gemSlateInfo:GetCurActiveSchemeGem("2")
  212. local inlayGem3=InfoManager.gemSlateInfo:GetCurActiveSchemeGem("3")
  213. local inlaySlate=InfoManager.gemSlateInfo:GetCurActiveSchemeGem(nil,true)
  214. self.currentAttList={}
  215. if inlayGem1 then
  216. table.insert(self.currentAttList,inlayGem1)
  217. end
  218. if inlayGem2 then
  219. table.insert(self.currentAttList,inlayGem2)
  220. end
  221. if inlayGem3 then
  222. table.insert(self.currentAttList,inlayGem3)
  223. end
  224. if EGemInlayType==E_GemInlayType.Gem then
  225. GUI:SetActive(self.view.GemCellParentImg,true)
  226. GUI:SetActive(self.view.SlateCellParentImg,false)
  227. GUI:Text_setString(self.view.gemAddParentTitle,"萤石加成")
  228. self:SetGem1Model(inlayGem1)
  229. self:SetGem2Model(inlayGem2)
  230. self:SetGem3Model(inlayGem3)
  231. else
  232. if not inlaySlate then
  233. self:SetSlateModel(nil)
  234. else
  235. self:SetSlateModel(inlaySlate)
  236. end
  237. GUI:SetActive(self.view.GemCellParentImg,false)
  238. GUI:SetActive(self.view.SlateCellParentImg,true)
  239. GUI:Text_setString(self.view.gemAddParentTitle,"石板加成")
  240. end
  241. GUI:DataListUpdateData(self.view.datalist_gemAttrs)
  242. GUI:DataListUpdateData(self.view.datalist_AllGemAttrs)
  243. GUI:SetActive(self.view.NoAttribute,table.isNullOrEmpty(self.currentAttList))
  244. end
  245. function this:SetEquipModel(equipInfo)
  246. if equipInfo then
  247. GUI:setVisible(self.view.zhu_add, false)
  248. GUI:setVisible(self.view.zhu_item, true)
  249. GUI:Item_setItemId(self.view.zhu_item, equipInfo.cfgId)
  250. self:SetLiuGuang(equipInfo)
  251. else
  252. GUI:setVisible(self.view.zhu_add, true)
  253. GUI:setVisible(self.view.zhu_item, false)
  254. GUI:ResetStreamAttr(self.view.zhu_item)
  255. end
  256. end
  257. function this:SetLiuGuang(equipInfo)
  258. local liuGuangId = EquipFunc.GetEquipLiuGuangId(equipInfo)
  259. if liuGuangId then
  260. GUI:SetStreamAttr(self.view.zhu_item, liuGuangId)
  261. else
  262. GUI:ResetStreamAttr(self.view.zhu_item)
  263. end
  264. end
  265. function this:SetSlateModel(cfgId)
  266. if not cfgId then
  267. GUI:setVisible(self.view.SlateCell, false)
  268. GUI:setVisible(self.view.SlateAddImg, true)
  269. GUI:setVisible(self.view.slateLevelTxt, false)
  270. else
  271. GUI:setVisible(self.view.slateLevelTxt, true)
  272. local cfg=SL:GetConfig("cfg_equip_stoneBoard", cfgId)
  273. GUI:Text_setString(self.view.slateLevelTxt,cfg.stoneBoardLevel.."级")
  274. GUI:setVisible(self.view.SlateCell, true)
  275. GUI:setVisible(self.view.SlateAddImg, false)
  276. GUI:Item_setItemId(self.view.SlateCell, cfgId)
  277. end
  278. end
  279. function this:SetGem1Model(cfgId)
  280. if not cfgId then
  281. GUI:setVisible(self.view.GemCell1, false)
  282. GUI:setVisible(self.view.AddImg1, true)
  283. GUI:setVisible(self.view.gemLevelTxt1, false)
  284. else
  285. GUI:setVisible(self.view.gemLevelTxt1, true)
  286. local cfg=SL:GetConfig("cfg_equip_gem", cfgId)
  287. GUI:Text_setString(self.view.gemLevelTxt1,cfg.gemBelong[2].."级")
  288. GUI:setVisible(self.view.GemCell1, true)
  289. GUI:setVisible(self.view.AddImg1, false)
  290. GUI:Item_setItemId(self.view.GemCell1, cfgId)
  291. end
  292. end
  293. function this:SetGem2Model(cfgId)
  294. if not cfgId then
  295. GUI:setVisible(self.view.GemCell2, false)
  296. GUI:setVisible(self.view.AddImg2, true)
  297. GUI:setVisible(self.view.gemLevelTxt2, false)
  298. else
  299. GUI:setVisible(self.view.gemLevelTxt2, true)
  300. local cfg=SL:GetConfig("cfg_equip_gem", cfgId)
  301. GUI:Text_setString(self.view.gemLevelTxt2,cfg.gemBelong[2].."级")
  302. GUI:setVisible(self.view.GemCell2, true)
  303. GUI:setVisible(self.view.AddImg2, false)
  304. GUI:Item_setItemId(self.view.GemCell2, cfgId)
  305. end
  306. end
  307. function this:SetGem3Model(cfgId)
  308. if not cfgId then
  309. GUI:setVisible(self.view.GemCell3, false)
  310. GUI:setVisible(self.view.AddImg3, true)
  311. GUI:setVisible(self.view.gemLevelTxt3, false)
  312. else
  313. GUI:setVisible(self.view.gemLevelTxt3, true)
  314. local cfg=SL:GetConfig("cfg_equip_gem", cfgId)
  315. GUI:Text_setString(self.view.gemLevelTxt3,cfg.gemBelong[2].."级")
  316. GUI:setVisible(self.view.GemCell3, true)
  317. GUI:setVisible(self.view.AddImg3, false)
  318. GUI:Item_setItemId(self.view.GemCell3, cfgId)
  319. end
  320. end
  321. function this:CloseEquipUi()
  322. GUI:UIPanel_Close("dev/ui/UIForgeGroup/Panel/KLUIForgeGroup/KLUIForgeGroupPanel")
  323. GUI:UIPanel_Close("dev/outui/Equip/Panel/KLGemEquipUI/KLGemEquipUIPanel")
  324. GUI:UIPanel_Close("dev/outui/Equip/Panel/KLGemInlay/KLGemInlayPanel")
  325. end
  326. function this:ItemClick(itemControl, itemData)
  327. local pos = self:GetPos(itemData.id)
  328. SL:OpenTips(pos, itemData.cfgId, itemData.id)
  329. end
  330. function this:GetPos(itemId)
  331. for _, v in pairs(self.bagItems) do
  332. if v == itemId then
  333. return "bag"
  334. end
  335. end
  336. return "equip"
  337. end
  338. function this:GetSlateItems()
  339. local data = {}
  340. local bagItemTabl = SL:GetMetaValue("BAG_DATA")[1]
  341. if bagItemTabl then
  342. for _, v in pairs(bagItemTabl) do
  343. if SL:HasConfig("cfg_equip_stoneBoard", v.cfgId, "id") then
  344. --data[SL:GetBagIndex(v.id) - 10000] = v
  345. table.insert(data, v)
  346. table.insert(self.bagItems, v.id)
  347. end
  348. end
  349. end
  350. return SL.Bag:SortItemList(data)
  351. end
  352. function this:GetGemItems()
  353. local data = {}
  354. local bagItemTabl = SL:GetMetaValue("BAG_DATA")[1]
  355. if bagItemTabl then
  356. for _, v in pairs(bagItemTabl) do
  357. if SL:HasConfig("cfg_equip_gem", v.cfgId, "id") then
  358. --data[SL:GetBagIndex(v.id) - 10000] = v
  359. table.insert(data, v)
  360. table.insert(self.bagItems, v.id)
  361. end
  362. end
  363. end
  364. return SL.Bag:SortItemList(data)
  365. end
  366. function this:OnClickEquipPanelPos(_, index)
  367. local equip = SL:GetMetaValue("EQUIP_TARGET_DATA", 1, index)
  368. local realIndex=index
  369. if index == E_AppearEquipType.Weapon and equip == nil then
  370. equip = SL:GetMetaValue("EQUIP_TARGET_DATA", 1, E_AppearEquipType.TwoHandWeapon)
  371. realIndex=E_AppearEquipType.TwoHandWeapon
  372. end
  373. if equip then
  374. InfoManager.gemSlateInfo:ChangeEquipPosId(realIndex)
  375. if self.curSelectGemInlayType==E_GemInlayType.Gem then
  376. self.bagIndex = nil
  377. if table.contains(InfoManager.gemSlateInfo.CanInlayGemEquipPosTbl,tostring(index)) then
  378. self.equipPanel:SetSelectIndex(index)
  379. self:ClickEquip(equip)
  380. self.selectEquipType = index
  381. else
  382. SL:TipMessage( SL:GetConfig("cfg_string",325).text ,3, NoticeType.NoticeMid )
  383. end
  384. else
  385. self.bagIndex = nil
  386. if table.contains(InfoManager.gemSlateInfo.CanInlaySlateEquipPosTbl,tostring(index)) then
  387. self.equipPanel:SetSelectIndex(index)
  388. self:ClickEquip(equip)
  389. self.selectEquipType = index
  390. else
  391. SL:TipMessage( SL:GetConfig("cfg_string",326).text ,3, NoticeType.NoticeMid )
  392. end
  393. end
  394. else
  395. if self.curSelectGemInlayType==E_GemInlayType.Gem then
  396. SL:TipMessage( SL:GetConfig("cfg_string",327).text ,3, NoticeType.NoticeMid )
  397. else
  398. SL:TipMessage( SL:GetConfig("cfg_string",328).text ,3, NoticeType.NoticeMid )
  399. end
  400. end
  401. end
  402. -- 装备名字
  403. function this:SetEquipName(cfgId, strengthLevel)
  404. GUI:setVisible(self.view.equipName, true)
  405. local equipName = SL:GetConfig('cfg_item', cfgId).name
  406. local colorStr = EquipFunc.GetEquipNameColor(cfgId)
  407. --if strengthLevel > 0 then
  408. -- equipName = equipName .. '+' .. strengthLevel
  409. --end
  410. GUI:Text_setString(self.view.equipName, string.format("<color=%s>%s</color>", colorStr, equipName))
  411. end
  412. function this:ClickEquip(equip)
  413. local strengthLevel = EquipFunc.GetEquipStrengthLevel(equip)
  414. self:SetEquipName(equip.cfgId, strengthLevel)
  415. self:SetEquipModel(equip)
  416. InfoManager.gemSlateInfo:SetOptEquip(equip)
  417. -- if self.curSelectGemInlayType==E_GemInlayType.Gem then
  418. -- else
  419. -- end
  420. self:RefreshGemSlateShow(self.curSelectGemInlayType)
  421. end
  422. function this:SchemeToggleChanged(kmlCtrl, eventData, args,isMessage)
  423. if args[1] then
  424. -- logError("切换方案"..eventData)
  425. if eventData==1 then
  426. self.curSelectSchemeType=1
  427. GUI:Text_setString(self.view.schemeTxt1,"方案一"..string.format("<color=#00ff00ff>%s</color>", "(激活)"))
  428. GUI:Text_setString(self.view.schemeTxt2,"方案二")
  429. if not isMessage then
  430. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SCHEME_SWITCH,{schemepos=1})
  431. end
  432. elseif eventData==2 then
  433. self.curSelectSchemeType=2
  434. GUI:Text_setString(self.view.schemeTxt1,"方案一")
  435. GUI:Text_setString(self.view.schemeTxt2,"方案二"..string.format("<color=#00ff00ff>%s</color>", "(激活)"))
  436. if not isMessage then
  437. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SCHEME_SWITCH,{schemepos=2})
  438. end
  439. end
  440. end
  441. end
  442. function this:GemSlateToggleChanged(kmlCtrl, eventData, args)
  443. if args[1] then
  444. local tmpUI=GUI:GetUI("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel")
  445. self.curSelectGemInlayType=eventData
  446. if eventData==E_GemInlayType.Gem then
  447. self:RefreshGemSlateShow(E_GemInlayType.Gem)
  448. if tmpUI then
  449. GUI:UIPanel_Close("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel")
  450. GUI:UIPanel_Open("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel", nil, nil, { itemList = self:GetGemItems(), x = -482, y = 0, itemClick = self.ItemClick, callBackUI = self,bagType=E_GemInlayType.Gem })
  451. end
  452. self:OnClickGemCellImg1()
  453. elseif eventData==E_GemInlayType.Slate then
  454. self:RefreshGemSlateShow(E_GemInlayType.Slate)
  455. if tmpUI then
  456. GUI:UIPanel_Close("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel")
  457. GUI:UIPanel_Open("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel", nil, nil, { itemList = self:GetSlateItems(), x = -482, y = 0, itemClick = self.ItemClick, callBackUI = self,bagType=E_GemInlayType.Slate })
  458. end
  459. self:OnClickSlateImg()
  460. end
  461. end
  462. end
  463. ---@param message {cur:number, data:table}
  464. function this:InitSchemeByMsg(id, message)
  465. if message.cur==1 then
  466. GUI:SetIsOnWithoutNotify(self.view.schemeToggle1,true)
  467. self:SchemeToggleChanged(self.view.schemeToggle1,message.cur,{true},true)
  468. elseif message.cur==2 then
  469. GUI:SetIsOnWithoutNotify(self.view.schemeToggle2,true)
  470. self:SchemeToggleChanged(self.view.schemeToggle2,message.cur,{true},true)
  471. end
  472. GUI:SetIsOnWithoutNotify(self.view.gemBtn,true)
  473. end
  474. function this:ClosePanel()
  475. GUI:UIPanel_Close("dev/ui/UIForgeGroup/Panel/KLUIForgeGroup/KLUIForgeGroupPanel")
  476. GUI:UIPanel_Close("dev/outui/Equip/Panel/KLGemEquipUI/KLGemEquipUIPanel")
  477. self.equipPanel = nil
  478. GUI:UIPanel_Close("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel")
  479. GUI:UIPanel_Close("dev/outui/Equip/Panel/KLGemInlay/KLGemInlayPanel")
  480. end
  481. function this:OnClickGemCellImg1()
  482. InfoManager.gemSlateInfo:ChangeGemPosId(1)
  483. local tmpUI=GUI:GetUI("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel")
  484. if not tmpUI then
  485. GUI:UIPanel_Close("dev/outui/Equip/Panel/KLGemEquipUI/KLGemEquipUIPanel")
  486. self.equipPanel = nil
  487. GUI:UIPanel_Open("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel", nil, nil, { itemList = self:GetGemItems(), x = -482, y = 0, itemClick = self.ItemClick, callBackUI = self,bagType=E_GemInlayType.Gem })
  488. end
  489. local inlayGem=InfoManager.gemSlateInfo:GetCurActiveSchemeGem("1")
  490. SL:OpenTips("gems", inlayGem)
  491. GUI:SetActive(self.view.SelectImg1,true)
  492. GUI:SetActive(self.view.SelectImg2,false)
  493. GUI:SetActive(self.view.SelectImg3,false)
  494. end
  495. function this:OnClickGemCellImg2()
  496. InfoManager.gemSlateInfo:ChangeGemPosId(2)
  497. local tmpUI=GUI:GetUI("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel")
  498. if not tmpUI then
  499. GUI:UIPanel_Close("dev/outui/Equip/Panel/KLGemEquipUI/KLGemEquipUIPanel")
  500. self.equipPanel = nil
  501. GUI:UIPanel_Open("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel", nil, nil, { itemList = self:GetGemItems(), x = -482, y = 0, itemClick = self.ItemClick, callBackUI = self,bagType=E_GemInlayType.Gem })
  502. end
  503. local inlayGem=InfoManager.gemSlateInfo:GetCurActiveSchemeGem("2")
  504. SL:OpenTips("gems", inlayGem)
  505. GUI:SetActive(self.view.SelectImg1,false)
  506. GUI:SetActive(self.view.SelectImg2,true)
  507. GUI:SetActive(self.view.SelectImg3,false)
  508. end
  509. function this:OnClickGemCellImg3()
  510. InfoManager.gemSlateInfo:ChangeGemPosId(3)
  511. local tmpUI=GUI:GetUI("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel")
  512. if not tmpUI then
  513. GUI:UIPanel_Close("dev/outui/Equip/Panel/KLGemEquipUI/KLGemEquipUIPanel")
  514. self.equipPanel = nil
  515. GUI:UIPanel_Open("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel", nil, nil, { itemList = self:GetGemItems(), x = -482, y = 0, itemClick = self.ItemClick, callBackUI = self,bagType=E_GemInlayType.Gem })
  516. end
  517. local inlayGem=InfoManager.gemSlateInfo:GetCurActiveSchemeGem("3")
  518. SL:OpenTips("gems", inlayGem)
  519. GUI:SetActive(self.view.SelectImg1,false)
  520. GUI:SetActive(self.view.SelectImg2,false)
  521. GUI:SetActive(self.view.SelectImg3,true)
  522. end
  523. function this:OnClickSlateImg()
  524. InfoManager.gemSlateInfo:ChangeGemPosId(nil)
  525. local tmpUI=GUI:GetUI("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel")
  526. if not tmpUI then
  527. GUI:UIPanel_Close("dev/outui/Equip/Panel/KLGemEquipUI/KLGemEquipUIPanel")
  528. self.equipPanel = nil
  529. GUI:UIPanel_Open("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel", nil, nil, { itemList = self:GetSlateItems(), x = -482, y = 0, itemClick = self.ItemClick, callBackUI = self,bagType=E_GemInlayType.Slate })
  530. end
  531. local inlaySlate=InfoManager.gemSlateInfo:GetCurActiveSchemeGem(nil,true)
  532. SL:OpenTips("gems", inlaySlate)
  533. end
  534. function this:OnClickOptEquip()
  535. GUI:UIPanel_Close("dev/outui/Bag/Panel/KLGemSlateBag/KLGemSlateBagPanel")
  536. if not self.equipPanel then
  537. GUI:UIPanel_Open("dev/outui/Equip/Panel/KLGemEquipUI/KLGemEquipUIPanel",
  538. nil,
  539. nil,
  540. { x = -465, hideTips = true, callBack = self.CloseEquipUi,selectType = self.selectEquipType},
  541. true,function(equipPanel)
  542. self.equipPanel = equipPanel
  543. end)
  544. end
  545. end
  546. function this:OnClickHelpBtn()
  547. local helpCfg=nil
  548. if self.curSelectGemInlayType==E_GemInlayType.Gem then
  549. helpCfg=SL:GetConfig("cfg_rule_text",1)
  550. else
  551. helpCfg=SL:GetConfig("cfg_rule_text",2)
  552. end
  553. if helpCfg then
  554. SL:CommonStrTipsMessage({title =helpCfg.menutxt,str=helpCfg.location})
  555. end
  556. end
  557. function this:OnClickAllGemsInfoBtn()
  558. GUI:UIPanel_Open("dev/outui/Equip/Panel/KLGemInlayAllInfo/KLGemInlayAllInfoPanel", nil, nil, { x = -465})
  559. end
  560. function this:RefreshRedPoint()
  561. -- local gemData = {}
  562. -- local slateData = {}
  563. -- local bagItemTabl = SL:GetMetaValue("BAG_DATA")[1]
  564. -- if bagItemTabl then
  565. -- for _, v in pairs(bagItemTabl) do
  566. -- if SL:HasConfig("cfg_equip_gem", v.cfgId, "id") then
  567. -- table.insert(gemData, v)
  568. -- end
  569. -- if SL:HasConfig("cfg_equip_stoneBoard", v.cfgId, "id") then
  570. -- table.insert(slateData, v)
  571. -- end
  572. -- end
  573. -- end
  574. -- GUI:SetActive( self.view.redPointImg1,false)
  575. -- GUI:SetActive( self.view.redPointImg2,false)
  576. end
  577. function this:Close()
  578. end
  579. return this