123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858 |
- ---@class KLArchangelGrailTipsPanel:UIKmlLuaPanelBase
- ---@field view KLArchangelGrailTipsPanelView
- local KLArchangelGrailTipsPanel = class(UIKmlLuaPanelBase)
- local this = KLArchangelGrailTipsPanel
- function this:AsyncLoadUI()
- end
- ---创建时调用一次
- function this:Init()
- self.otherGrail = nil
- if self.args.info and self.args.info.hideMask then
- GUI:setVisible(self.view.background_close, false)
- else
- GUI:setVisible(self.view.background_close, true)
- end
- if self.args.info and self.args.info.isRight then
- GUI:setAnchorPoint(self.view.root, 2, 0)
- end
- if self.args.info and self.args.info.posX then
- GUI:setPositionX(self.view.root, self.args.info.posX)
- end
- GUI:DataListInitData(self.view.all_info_data, function()
- return self:EquipAttrDataListItemCountFunc()
- end, function(realIndex)
- return self:EquipAttrDataListItemGetFunc(realIndex)
- end, function(realIndex, kmlcontrol)
- return self:EquipAttrDataListItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:EquipAttrDataListItemUpdateFunc(realIndex, kmlcontrol)
- end)
- self.firstCharge_list = { 28810531, 28820531, 28830531 }
- self.left_all = {}
- end
- ---界面显示时调用一次
- function this:Show()
- if self.args.info and self.args.info.otherRid and self.args.id then
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_OTHER_ANGE_GRAIL_INFO, { rid = tonumber(self.args.info.otherRid), itemId = tonumber(self.args.id) })
- end
- end
- ---创建或者刷新界面数据时调用
- function this:Refresh()
- self.archenge = {}
- self.all_info = {}
- GUI:Item_setItemId(self.view.item5, self.args.cfgId)
- local itemTbl = SL:GetConfig("cfg_item", self.args.cfgId)
- local shape = itemTbl.shape[1]
- local rotation = SL:GetConfig("cfg_model_charactor", shape).rotateAxis
- local rotation_str = rotation .. ",50,0"
- self.Schedule1 = SL:ScheduleOnce(0.2, function()
- GUI:Item_Rotate(self.view.item5, rotation_str)
- end)
- GUI:Text_setTextColor(self.view.item_name, SL:GetConfig("cfg_color", tonumber(itemTbl.color), "id").color)
- GUI:Text_setString(self.view.item_name, itemTbl.name)
- local tbl = SL:GetConfig("cfg_equip_angelGrail", self.args.cfgId, "id")
- local strPart = "可融合部位:<color='#e6e600'>"
- for i, v in pairs(tbl.strPart) do
- strPart = strPart .. E_ArchangelGrailstrPart[v] .. " "
- end
- strPart = strPart.."</color>"
- GUI:Text_setString(self.view.fusion_pos, strPart)
- --self:NoHaveGrail()
- if not self.args.id then
- self:NoHaveGrail()
- else
- self:HaveGrail()
- end
- if self.args.info and self.args.info.hideBtn then
- GUI:setVisible(self.view.bag_root, false)
- GUI:setVisible(self.view.equip_root, false)
- elseif self.args.equip_pos == "bag" then
- GUI:setVisible(self.view.bag_root, true)
- GUI:setVisible(self.view.equip_root, false)
- self:bagBtnUpdate()
- elseif self.args.equip_pos == "depots" then
- GUI:setVisible(self.view.bag_root, true)
- GUI:setVisible(self.view.equip_root, false)
- self:depotsBtnUpdate()
- elseif self.args.equip_pos == "equip" then
- GUI:setVisible(self.view.equip_root, true)
- GUI:setVisible(self.view.bag_root, false)
- local wearBarId = SL:GetEquipValue(EMetaVarGetKey.EQUIP_WEAR_BAR_ID, nil, self.args.cfgId)
- if wearBarId[1] and wearBarId[1] > 2 then
- GUI:setVisible(self.view.duanzaobtn, false)
- elseif self.subType == 14 then
- GUI:setVisible(self.view.duanzaobtn, false)
- else
- GUI:setVisible(self.view.duanzaobtn, true)
- end
- if self.subType == 10 or self.subType == 11 or self.subType == 12 then
- GUI:setVisible(self.view.tuoxiabtn, false)
- GUI:setVisible(self.view.shengjibtn, true)
- else
- GUI:setVisible(self.view.tuoxiabtn, true)
- GUI:setVisible(self.view.shengjibtn, false)
- end
- elseif self.args.equip_pos == "synthesis" then
- GUI:setVisible(self.view.left_btn, true)
- GUI:setVisible(self.view.right_btn, true)
- GUI:setVisible(self.view.equip_root, false)
- GUI:Button_setTitleText(self.view.left_btn, "取消")
- GUI:Button_setTitleText(self.view.right_btn, "替换")
- else
- GUI:setVisible(self.view.equip_root, false)
- GUI:setVisible(self.view.bag_root, false)
- --没有下方二个按钮的模型位置(equip_pos不是bag)
- --GUI:setPositionY(self.view.model1, -220)
- end
- GUI:DataListUpdateData(self.view.all_info_data)
- end
- ---注册UI事件和服务器消息
- function this:RegistEvents()
- GUI:AddOnClickEvent(self.view.background_close, self, self.CloseEquipTips)
- GUI:AddOnClickEvent(self.view.left_btn, self, self.BtnLeftOnClick)
- GUI:AddOnClickEvent(self.view.right_btn, self, self.BtnRightOnClick)
- --GUI:AddOnClickEvent(self.view.tuoxiabtn, self, self.TakeOffEquip)
- --GUI:AddOnClickEvent(self.view.shengjibtn, self, self.ShengJi)
- --GUI:AddOnClickEvent(self.view.duanzaobtn, self, self.ForgeOnClick)
- SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_OTHER_ANGE_GRAIL_INFO, self.RES_OTHER_ANGE_GRAIL_INFO, self)
- end
- function this:HaveGrail()
- local grailInfo = InfoManager.archangeEquipInfo:GetGrailInfo(self.args.id)
- if not grailInfo then
- grailInfo = self.otherGrail
- end
- if not grailInfo then
- self:NoHaveGrail()
- return
- end
- local itemTbl = SL:GetConfig("cfg_item", self.args.cfgId)
- GUI:Text_setTextColor(self.view.item_name, SL:GetConfig("cfg_color", tonumber(itemTbl.color), "id").color)
- if grailInfo.level > 0 then
- GUI:Text_setString(self.view.item_name, itemTbl.name .. "+" .. tostring(grailInfo.level))
- else
- GUI:Text_setString(self.view.item_name, itemTbl.name)
- end
- ---@type CommonProtos.Item
- local iteminfo = SL:GetPosItemInfo(self.args.equip_pos, self.args.cfgId, self.args.id)
- if not iteminfo then
- GUI:setVisible(self.view.bing_text, false)
- else
- GUI:setVisible(self.view.bing_text, true)
- if iteminfo.bind then
- GUI:Text_setString(self.view.bing_text, "不可交易")
- else
- GUI:Text_setString(self.view.bing_text, "可交易")
- end
- end
- if grailInfo.score and grailInfo.score ~= 0 then
- GUI:Text_setString(self.view.score_text, "圣杯评分:" .. tostring(grailInfo.score))
- GUI:setVisible(self.view.score_text, true)
- else
- GUI:setVisible(self.view.score_text, false)
- end
- GUI:Text_setString(self.view.rant_text, "圣杯阶数:" .. tostring(grailInfo.grailGrade) .. "阶")
- local grailQuality = SL:GetConfig("cfg_equip_angelGrail", grailInfo.itemConfigId, "id").grailQuality
- GUI:Text_setString(self.view.quality_text, "圣杯品质:<color='" .. E_ArchangelGrailQualityColor[grailQuality] .. "'>" .. E_ArchangelGrailQualityName[grailQuality] .. "</color>")
- self.all_info = {}
- ---主属性
- table.insert(self.all_info, { title = "tips_attribute27" })
- local maxAtt = nil
- local minAtt = nil
- for i, v in pairs(grailInfo.main) do
- if tonumber(v.attrId) == 200021 then
- maxAtt = v.value
- if minAtt then
- table.insert(self.all_info, { name = "攻击力", value = tostring(minAtt) .. "~" .. tostring(maxAtt), color = E_ArchangelGrailQualityColor[SL:GetConfig("cfg_equip_angelEntry", v.id, "id").attQuality] })
- minAtt = nil
- maxAtt = nil
- end
- elseif tonumber(v.attrId) == 200011 then
- minAtt = v.value
- if maxAtt then
- table.insert(self.all_info, { name = "攻击力", value = tostring(minAtt) .. "~" .. tostring(maxAtt), color = E_ArchangelGrailQualityColor[SL:GetConfig("cfg_equip_angelEntry", v.id, "id").attQuality] })
- minAtt = nil
- maxAtt = nil
- end
- else
- ---@type cfg_att_info_column
- local attTbl = SL:GetConfig("cfg_att_info", tonumber(v.attrId), "id")
- local strName = attTbl.name
- local strValeue = ""
- if attTbl.remarks == 2 then
- strValeue = tostring(v.value / 100) .. "%"
- else
- strValeue = tostring(v.value)
- end
- --SL:GetConfig("cfg_equip_angelEntry",v.id,"id").attQuality
- table.insert(self.all_info, { name = strName, value = strValeue, color = E_ArchangelGrailQualityColor[SL:GetConfig("cfg_equip_angelEntry", v.id, "id").attQuality] })
- end
- end
- ---副属性
- table.insert(self.all_info, { title = "tips_attribute26" })
- maxAtt = nil
- minAtt = nil
- if grailInfo.secondary then
- for i, v in pairs(grailInfo.secondary) do
- for _, k in pairs(v) do
- if tonumber(k.attrId) == 200021 then
- maxAtt = k.value
- if minAtt then
- table.insert(self.all_info, { name = "攻击力", value = tostring(minAtt) .. "~" .. tostring(maxAtt), color = v.color })
- minAtt = nil
- maxAtt = nil
- end
- elseif tonumber(k.attrId) == 200011 then
- minAtt = k.value
- if maxAtt then
- table.insert(self.all_info, { name = "攻击力", value = tostring(minAtt) .. "~" .. tostring(maxAtt), color = v.color })
- minAtt = nil
- maxAtt = nil
- end
- else
- ---@type cfg_att_info_column
- local attTbl = SL:GetConfig("cfg_att_info", tonumber(k.attrId), "id")
- local strName = attTbl.name
- local strValeue = ""
- if attTbl.remarks == 2 then
- strValeue = tostring(k.value / 100) .. "%"
- else
- strValeue = tostring(k.value)
- end
- --SL:GetConfig("cfg_equip_angelEntry",k.id,"id").attQuality
- table.insert(self.all_info, { name = strName, value = strValeue, color = E_ArchangelGrailQualityColor[SL:GetConfig("cfg_equip_angelEntry", k.id, "id").attQuality] })
- end
- end
- end
- end
- ---圣杯套装
- table.insert(self.all_info, { title = "tips_attribute2" })
- table.insert(self.all_info, { name = "融合一定数量该圣杯,即可获得额外效果", value = "", isSuit = true, color = "#e6e600" })
- ---@type cfg_equip_angelGrail_column
- local tbl = SL:GetConfig("cfg_equip_angelGrail", self.args.cfgId)
- ---@type cfg_equip_angelGrailSuit_column[]
- local angelGrailTbl = SL:GetConfigTable("cfg_equip_angelGrailSuit")
- for _, v in pairs(angelGrailTbl) do
- if v.group == tbl.grailGrade and v.level == tbl.grailQuality then
- local count = InfoManager.archangeEquipInfo:GetGrailSuitCount(v.group, v.level) or 0
- local groupInfo = InfoManager.archangeEquipInfo:GetGrailGroupInfo(v.group) or {}
- local heightCount = 0
- for m, n in pairs(groupInfo) do
- if m > v.level then
- heightCount = heightCount + n
- end
- end
- table.insert(self.all_info, { name = v.name, value = "(" .. count .. "/7)", isSuit = true, color = "#ff8a00" })
- for j, k in pairs(v.suitEffect) do
- local colorStr = "#999999"
- if k[1] <= count and k[1] > heightCount then
- colorStr = E_ArchangelGrailQualityColor[v.level]
- end
- ---@type cfg_att_info_column
- local attTbl = SL:GetConfig("cfg_att_info", tonumber(k[2]))
- local strValeue = ""
- if attTbl.remarks == 2 then
- strValeue = tostring(k[3] / 100) .. "%"
- else
- strValeue = tostring(k[3])
- end
- table.insert(self.all_info, { name = k[1] .. "件套效果", value = attTbl.name .. "+" .. strValeue, color = colorStr, isSuit = true })
- end
- break
- end
- end
- end
- function this:NoHaveGrail()
- GUI:Text_setString(self.view.bing_text, "可交易")
- ---@type cfg_equip_angelGrail_column
- local grailTbl = SL:GetConfig("cfg_equip_angelGrail", self.args.cfgId, "id")
- GUI:setVisible(self.view.score_text, false)
- GUI:Text_setString(self.view.rant_text, "圣杯阶数:" .. tostring(grailTbl.grailGrade) .. "阶")
- local grailQuality = grailTbl.grailQuality
- GUI:Text_setString(self.view.quality_text, "圣杯品质:<color='" .. E_ArchangelGrailQualityColor[grailQuality] .. "'>" .. E_ArchangelGrailQualityName[grailQuality] .. "</color>")
- self.all_info = {}
- table.insert(self.all_info, { title = "tips_attribute27" })
- --主词条
- local entryGroup = grailTbl.mainAttGroup
- ---@type cfg_equip_angelEntry_column[]
- local mainEntry = SL:FindConfigs("cfg_equip_angelEntry", "group", entryGroup)
- --走表的老铁 todo
- local data = {}
- local maxAtt = nil
- local minAtt = nil
- for i, v in pairs(mainEntry) do
- for _, att in pairs(v.att) do
- local attTbl = SL:GetConfig("cfg_att_info", tonumber(att[1]), "id")
- local strName = attTbl.name
- local strValeue
- if tonumber(att[1]) == 200021 then
- maxAtt = att[3]
- if minAtt then
- if minAtt == maxAtt then
- table.insert(self.all_info, { name = "攻击力", value = tostring(minAtt), color = E_ArchangelGrailQualityColor[v.attQuality] })
- else
- table.insert(self.all_info, { name = "攻击力", value = tostring(minAtt) .. "~" .. tostring(maxAtt), color = E_ArchangelGrailQualityColor[v.attQuality] })
- end
- minAtt = nil
- maxAtt = nil
- end
- elseif tonumber(att[1]) == 200011 then
- minAtt = att[2]
- if maxAtt then
- if minAtt == maxAtt then
- table.insert(self.all_info, { name = "攻击力", value = tostring(minAtt), color = E_ArchangelGrailQualityColor[v.attQuality] })
- else
- table.insert(self.all_info, { name = "攻击力", value = tostring(minAtt) .. "~" .. tostring(maxAtt), color = E_ArchangelGrailQualityColor[v.attQuality] })
- end
- minAtt = nil
- maxAtt = nil
- end
- else
- if att[2] == att[3] then
- if attTbl.remarks == 2 then
- strValeue = tostring(att[2] / 100) .. "%"
- else
- strValeue = tostring(att[2])
- end
- else
- if attTbl.remarks == 2 then
- strValeue = tostring(att[2] / 100) .. "%~" .. tostring(att[3] / 100) .. "%"
- else
- strValeue = tostring(att[2]) .. "~" .. tostring(att[3])
- end
- end
- table.insert(self.all_info, { name = strName, value = strValeue, color = E_ArchangelGrailQualityColor[v.attQuality] })
- end
- end
- end
- table.insert(self.all_info, { title = "tips_attribute26" })
- local haveEntry = {}
- --副词条
- entryGroup = grailTbl.randomAttGroup
- -- 存储词条信息
- for _, v in pairs(entryGroup) do
- for _, j in pairs(v) do
- ---@type cfg_equip_angelEntry_column[]
- local entry = SL:FindConfigs("cfg_equip_angelEntry", "group", j)
- for _, c in pairs(entry) do
- for _, att in pairs(c.att) do
- if not haveEntry[att[1]] then
- haveEntry[att[1]] = {}
- haveEntry[att[1]].att = {}
- end
- table.insert(haveEntry[att[1]].att, { value = att[2], color = E_ArchangelGrailQualityColor[c.attQuality] })
- end
- end
- end
- end
- maxAtt = nil
- minAtt = nil
- for i, v in pairs(haveEntry) do
- table.sort(v.att, function(a, b)
- return a.value < b.value
- end)
- local attTbl = SL:GetConfig("cfg_att_info", tonumber(i), "id")
- local strName = attTbl.name
- local strValeue
- if i == 200021 then
- maxAtt = v.att[table.count(v.att)]
- if minAtt then
- if minAtt.value == maxAtt.value then
- table.insert(self.all_info, { name = "攻击力", value = tostring(minAtt.value) })
- else
- table.insert(self.all_info, { name = "攻击力", value = "<color='" .. minAtt.color .. "'>" .. tostring(minAtt.value) .. "</color>~<color='" .. maxAtt.color .. "'>" .. tostring(maxAtt.value) .. "</color>" })
- end
- minAtt = nil
- maxAtt = nil
- end
- elseif i == 200011 then
- minAtt = v.att[1]
- if maxAtt then
- if minAtt.value == maxAtt.value then
- table.insert(self.all_info, { name = "攻击力", value = tostring(minAtt.value) })
- else
- table.insert(self.all_info, { name = "攻击力", value = "<color='" .. minAtt.color .. "'>" .. tostring(minAtt.value) .. "</color>~<color='" .. maxAtt.color .. "'>" .. tostring(maxAtt.value) .. "</color>" })
- end
- minAtt = nil
- maxAtt = nil
- end
- else
- if v.att[1].value == v.att[table.count(v.att)].value then
- if attTbl.remarks == 2 then
- strValeue = "<color='" .. v.att[table.count(v.att)].color .. "'>" .. tostring(v.att[table.count(v.att)].value / 100) .. "%</color>"
- else
- strValeue = "<color='" .. v.att[table.count(v.att)].color .. "'>" .. tostring(v.att[table.count(v.att)].value) .. "</color>"
- end
- else
- if attTbl.remarks == 2 then
- strValeue = "<color='" .. v.att[1].color .. "'>" .. tostring(v.att[1].value / 100) .. "%</color>~<color='" .. v.att[table.count(v.att)].color .. "'>" .. tostring(v.att[table.count(v.att)].value / 100) .. "%</color>"
- else
- strValeue = "<color='" .. v.att[1].color .. "'>" .. tostring(v.att[1].value) .. "</color>~<color='" .. v.att[table.count(v.att)].color .. "'>" .. tostring(v.att[table.count(v.att)].value) .. "</color>"
- end
- end
- table.insert(self.all_info, { name = strName, value = strValeue })
- end
- end
- end
- function this:CloseEquipTips()
- GUI:UIPanel_Close("dev/outui/Archangel/Panel/KLArchangelGrailTips/KLArchangelGrailTipsPanel")
- end
- function this:Close()
- if self.Schedule1 then
- SL:UnSchedule(self.Schedule1)
- end
- end
- function this:EquipAttrDataListItemCountFunc()
- return #self.all_info
- end
- function this:EquipAttrDataListItemGetFunc(realIndex)
- end
- function this:EquipAttrDataListItemInitFunc(realIndex, kmlcontrol)
- end
- function this:EquipAttrDataListItemUpdateFunc(realIndex, kmlcontrol)
- local data = self.all_info[realIndex + 1]
- local root = GUI:GetChildControl(self.view.all_info_data, realIndex, "root")
- local title = GUI:GetChildControl(self.view.all_info_data, realIndex, "title")
- local di = GUI:GetChildControl(self.view.all_info_data, realIndex, "di")
- local bg = GUI:GetChildControl(self.view.all_info_data, realIndex, "bg")
- local value = GUI:GetChildControl(self.view.all_info_data, realIndex, "value")
- local desc = GUI:GetChildControl(self.view.all_info_data, realIndex, "desc")
- if data.title then
- GUI:setContentSize(root, 350, 25)
- GUI:setVisible(title, true)
- GUI:setVisible(di, true)
- GUI:setVisible(value, false)
- GUI:setVisible(desc, false)
- GUI:setVisible(bg, false)
- GUI:Image_loadTexture(title, data.title, "Atlas/TipsAttTitle.spriteatlas")
- else
- GUI:setContentSize(root, 350, 16)
- GUI:setVisible(title, false)
- GUI:setVisible(di, false)
- GUI:setVisible(value, true)
- GUI:setVisible(bg, true)
- local value_str = data.name .. " " .. data.value
- GUI:Text_setString(value, value_str)
- if data.color then
- GUI:Text_setTextColor(value, data.color)
- end
- if not data.isSuit then
- if data.color == E_ArchangelGrailQualityColor[E_ArchangelGrailQuality.Green] then
- GUI:Image_loadTexture(bg, "bg_tips_1", "Atlas/UIArchangelGrail.spriteatlas")
- elseif data.color == E_ArchangelGrailQualityColor[E_ArchangelGrailQuality.Blue] then
- GUI:Image_loadTexture(bg, "bg_tips_2", "Atlas/UIArchangelGrail.spriteatlas")
- elseif data.color == E_ArchangelGrailQualityColor[E_ArchangelGrailQuality.Purple] then
- GUI:Image_loadTexture(bg, "bg_tips_3", "Atlas/UIArchangelGrail.spriteatlas")
- elseif data.color == E_ArchangelGrailQualityColor[E_ArchangelGrailQuality.Golden] then
- GUI:Image_loadTexture(bg, "bg_tips_4", "Atlas/UIArchangelGrail.spriteatlas")
- elseif data.color == E_ArchangelGrailQualityColor[E_ArchangelGrailQuality.Color] then
- GUI:Image_loadTexture(bg, "bg_tips_5", "Atlas/UIArchangelGrail.spriteatlas")
- end
- end
-
- if data.desc then
- GUI:setVisible(desc, true)
- GUI:Text_setString(desc, data.desc)
- end
- if data.descColor then
- GUI:Text_setTextColor(desc, data.descColor)
- end
- end
- end
- function this:depotsBtnUpdate()
- GUI:setVisible(self.view.left_btn, true)
- GUI:Button_setTitleText(self.view.left_btn, "丢弃")
- GUI:setVisible(self.view.right_btn, true)
- GUI:Button_setTitleText(self.view.right_btn, "取出")
- self.left_all = {{"11"}}
- end
- function this:bagBtnUpdate()
- local leftButton = SL:GetEquipValue(EMetaVarGetKey.EQUIP_TIPS_LEFT_BUTTON, self.args.equip_pos, self.args.cfgId, self.args.id)
- local rightButton = SL:GetEquipValue(EMetaVarGetKey.EQUIP_TIPS_RIGHT_BUTTON, self.args.equip_pos, self.args.cfgId, self.args.id)
- local isDelete = SL:GetConfig("cfg_item", self.args.cfgId).isDelete
-
- self.left_all = {}
- self.left_all_item = {}
- for i, v in ipairs(leftButton) do
- -- for j, btn_type in ipairs(v) do
- -- if btn_type == "9" and isDelete == 0 then
- -- else
- -- table.insert(self.left_all, btn_type)
- -- end
- -- end
- local btn_type = v[1]
- if btn_type == "9" and isDelete == 0 then
- else
- table.insert(self.left_all, v)
- end
- end
- self.right_all = {}
- self.right_all_item = {}
- for i, v in ipairs(rightButton) do
- -- for j, btn_type in ipairs(v) do
- -- if btn_type == "9" and isDelete == 0 then
- -- else
- -- table.insert(self.right_all, btn_type)
- -- end
- -- end
- local btn_type = v[1]
- if btn_type == "9" and isDelete == 0 then
- else
- table.insert(self.right_all, v)
- end
- end
- self.left_is_open = false
- local ui = GUI:GetUI("dev/outui/Archangel/Panel/KLArchangelGrail/KLArchangelGrailPanel")
- if not ui then
- if #self.left_all < 1 then
- GUI:setVisible(self.view.left_btn, false)
- elseif #self.left_all == 1 then
- GUI:setVisible(self.view.left_btn, true)
- local str = self:getBtnName(self.left_all[1])
- GUI:Button_setTitleText(self.view.left_btn, str)
- else
- GUI:setVisible(self.view.left_btn, true)
- GUI:Button_setTitleText(self.view.left_btn, "更多")
- GUI:DataListInitData(self.view.left_data_list, function()
- return self:LeftDataListItemCountFunc()
- end, function(realIndex)
- return self:LeftDataListItemGetFunc(realIndex)
- end, function(realIndex, kmlcontrol)
- return self:LeftDataListItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:LeftDataListItemUpdateFunc(realIndex, kmlcontrol)
- end)
- end
- end
- if GUI:GetUI("dev/ui/Bag/Panel/KLDepots/KLDepotsPanel") then
- GUI:setVisible(self.view.right_btn, true)
- GUI:Button_setTitleText(self.view.right_btn, "放入")
- return
- end
- self.right_is_open = false
- if ui then
- GUI:setVisible(self.view.left_btn, true)
- GUI:setVisible(self.view.right_btn, true)
- GUI:Button_setTitleText(self.view.left_btn, "分解")
- GUI:Button_setTitleText(self.view.right_btn, "融合")
- return
- end
- if #self.right_all < 1 then
- GUI:setVisible(self.view.right_btn, false)
- elseif #self.right_all == 1 then
- GUI:setVisible(self.view.right_btn, true)
- local str = self:getBtnName(self.right_all[1])
- GUI:Button_setTitleText(self.view.right_btn, str)
- else
- GUI:setVisible(self.view.right_btn, true)
- GUI:Button_setTitleText(self.view.right_btn, "更多")
- GUI:DataListInitData(self.view.right_data_list, function()
- return self:RightDataListItemCountFunc()
- end, function(realIndex)
- return self:RightDataListItemGetFunc(realIndex)
- end, function(realIndex, kmlcontrol)
- return self:RightDataListItemInitFunc(realIndex, kmlcontrol)
- end, function(realIndex, kmlcontrol)
- return self:RightDataListItemUpdateFunc(realIndex, kmlcontrol)
- end)
- end
- end
- function this:BtnLeftOnClick()
- ---@type KLArchangelGrailPanel
- local archangelGroup = GUI:GetUI("dev/outui/Archangel/Panel/KLArchangelGroup/KLArchangelGroupPanel")
- if archangelGroup then
- GUI:Toggle_setIsOn(archangelGroup.view.decomposeToggle, true)
- self:CloseEquipTips()
- return
- end
- if #self.left_all < 1 then
- elseif #self.left_all == 1 then
- local btnType = self.left_all[1][1]
- if not InfoManager.equipOrItemTipsInfo:IsCanOnClickButton(self.left_all[1]) then
- return
- end
- if btnType == "0" then
- self:CloseEquipTips()
- elseif btnType == "2" then
- self:CloseEquipTips()
- elseif btnType == "3" then
- self:PutOneEquip()
- elseif btnType == "9" then
- local name = SL:GetEquipValue(EMetaVarGetKey.EQUIP_NAME, self.args.equip_pos, self.args.cfgId, self.args.id)
- SL:CommonTipsMessage({ showTips = "是否摧毁" .. name,
- ui = self,
- sureBtnText = "确定",
- cancelBtnText = "取消",
- callback = self.DestroyItem
- })
- elseif btnType == "10" then
- self:JieFeng()
- elseif btnType == "11" then
- self:DiuQi()
- elseif btnType == "13" then
- self:Decompose()
- elseif btnType == "99" then
- self:OpenPanel(self.left_all[1])
- end
- else
- if not self.left_is_open then
- GUI:setVisible(self.view.left_btn_content, true)
- self.left_is_open = true
- GUI:DataListUpdateData(self.view.left_data_list)
- else
- GUI:setVisible(self.view.left_btn_content, false)
- self.left_is_open = false
- end
- end
- end
- function this.DestroyItem(returnData)
- local ui = returnData.ui
- local index = SL:GetBagIndex(ui.args.id)
- SL:ReqDestroyItemMessage(index)
- ui:CloseEquipTips()
- end
- function this:getBtnName(data)
- local btn_type = data[1]
- if btn_type == "0" then
- return "取消"
- elseif btn_type == "1" then
- return "使用"
- elseif btn_type == "2" then
- return "回收"
- elseif btn_type == "3" then
- return "穿戴"
- elseif btn_type == "4" then
- return "强化"
- elseif btn_type == "5" then
- return "上架"
- elseif btn_type == "6" then
- return "合并"
- elseif btn_type == "7" then
- return "拆分"
- elseif btn_type == "8" then
- return "批量使用"
- elseif btn_type == "9" then
- return "摧毁"
- elseif btn_type == "10" then
- return "解封"
- elseif btn_type == "11" then
- return "丢弃"
- elseif btn_type == "13" then
- return "分解"
- elseif btn_type == "14" then
- return "装备"
- elseif btn_type == "99" then
- return data[2]
- end
- return ""
- end
- function this:LeftDataListItemCountFunc()
- return #self.left_all
- end
- function this:LeftDataListItemGetFunc(realIndex)
- local data = self.left_all[realIndex + 1]
- local str = self:getBtnName(data)
- local message = { equip_pos = self.args.equip_pos, cfgId = self.args.cfgId, id = self.args.id, btnType = data, nameStr = str }
- local item = GUI:UIPanel_Open("dev/ui/Tips/Item/KLUITips/KLTipBtntem", self.view.left_data_list, self, message, true)
- self.left_all_item[item.view.root] = item
- return item.view.root
- end
- function this:LeftDataListItemInitFunc(realIndex, kmlcontrol)
- end
- function this:LeftDataListItemUpdateFunc(realIndex, kmlcontrol)
- end
- function this:BtnRightOnClick()
- ---@type KLArchangelGrailPanel
- local archangelGrail = GUI:GetUI("dev/outui/Archangel/Panel/KLArchangelGrail/KLArchangelGrailPanel")
- if archangelGrail then
- archangelGrail:Fusion(self.args.id, self.args.cfgId)
- self:CloseEquipTips()
- return
- end
- if self.args.equip_pos == "depots" then
- local storeIndex = SL:GetDepotsIndex(self.args.id)
- SL.Equip:ReqStoreTakeButtonMessage(storeIndex)
- self:CloseEquipTips()
- return
- end
- local depotPanel = GUI:GetUI("dev/ui/Bag/Panel/KLDepots/KLDepotsPanel")
- if depotPanel then
- local BagIndex = SL:GetBagIndex(self.args.id)
- if depotPanel.bagType == "privilege" then
- SL.Equip:ReqBagPutStoreButtonMessage(BagIndex, SL:GetDepotsCurPage() + depotPanel.maxDepotsPages)
- else
- SL.Equip:ReqBagPutStoreButtonMessage(BagIndex, SL:GetDepotsCurPage())
- end
- self:CloseEquipTips()
- return
- end
- if #self.right_all < 1 then
- elseif #self.right_all == 1 then
- local btnType = self.right_all[1][1]
- if not InfoManager.equipOrItemTipsInfo:IsCanOnClickButton(self.right_all[1]) then
- return
- end
- if btnType == "0" then
- self:CloseEquipTips()
- elseif btnType == "1" then
- self:UseItem()
- elseif btnType == "2" then
- self:CloseEquipTips()
- elseif btnType == "3" then
- self:PutOneEquip()
- elseif btnType == "9" then
- SL:CommonTipsMessage({ showTips = "是否摧毁" .. name,
- ui = self,
- sureBtnText = "确定",
- cancelBtnText = "取消",
- callback = self.DestroyItem
- })
- elseif btnType == "10" then
- self:JieFeng()
- elseif btnType == "11" then
- self:DiuQi()
- elseif btnType == "13" then
- self:Decompose()
- elseif btnType == "14" then
- --准备坐骑道具
- local panel = GUI:GetUI("dev/outui/Mount/Panel/KLMountEquip/KLMountEquipPanel")
- if panel then
- local BagIndex = SL:GetBagIndex(self.args.id)
- ---@type cfg_item_column
- local tbl = SL:GetConfig("cfg_item", self.args.cfgId, "id")
- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_MOUNT_PUT_ON_ITEM, { self.args.mountId, BagIndex, tbl.subType, self.args.cfgId, self.args.id })
- else
- GUI:UIPanel_Open("dev/outui/Mount/Panel/KLMountStore/KLMountStorePanel", nil, nil)
- GUI:UIPanel_Close("dev/ui/Bag/Panel/KLUIBag/KLUIBagPanel")
- end
- self:CloseEquipTips()
- elseif btnType == "99" then
- self:OpenPanel(self.right_all[1])
- end
- else
- if not self.right_is_open then
- GUI:setVisible(self.view.right_btn_content, true)
- self.right_is_open = true
- GUI:DataListUpdateData(self.view.right_data_list)
- else
- GUI:setVisible(self.view.right_btn_content, false)
- self.right_is_open = false
- end
- end
- end
- function this:OpenPanel(btnType)
- if #btnType < 3 then
- return
- end
- self:CloseEquipTips()
- GUI:UIPanel_Close("dev/ui/Bag/Panel/KLUIBag/KLUIBagPanel")
- GUI:UIPanel_Close("dev/ui/Equip/Panel/KLEquipUI/KLEquipUIPanel")
- local panel = btnType[4]
- if #btnType == 4 then
- GUI:UIPanel_Open(panel)
- elseif #btnType == 5 then
- local num = btnType[5]
- if tonumber(num) then
- num = tonumber(num)
- end
- GUI:UIPanel_Open(panel, nil, nil, num)
- elseif #btnType >= 7 then
- local message = {}
- for i = 5, #btnType - 2, 3 do
- if btnType[i] and btnType[i + 1] and btnType[i + 2] then
- if btnType[i + 1] == "string" then
- message[btnType[i]] = btnType[i + 2]
- else
- message[btnType[i]] = tonumber(btnType[i + 2])
- end
- end
- end
- GUI:UIPanel_Open(panel, nil, nil, message)
- end
- SL.HideMainPanel()
- end
- function this:RightDataListItemCountFunc()
- return #self.right_all
- end
- function this:RightDataListItemGetFunc(realIndex)
- local data = self.right_all[realIndex + 1]
- local str = self:getBtnName(data)
- local message = { equip_pos = self.args.equip_pos, cfgId = self.args.cfgId, id = self.args.id, btnType = data, nameStr = str }
- local item = GUI:UIPanel_Open("dev/ui/Tips/Item/KLUITips/KLTipBtntem", self.view.right_data_list, self, message, true)
- self.right_all_item[item.view.root] = item
- return item.view.root
- end
- function this:RightDataListItemInitFunc(realIndex, kmlcontrol)
- end
- function this:RightDataListItemUpdateFunc(realIndex, kmlcontrol)
- end
- function this:RES_OTHER_ANGE_GRAIL_INFO(_, message)
- self.otherGrail = message[tostring(self.args.id)]
- self:Refresh()
- end
- function this:DiuQi()
- local index = SL:GetDepotsIndex(self.args.id)
- if index then
- SL:ReqStoreGiveUpItemMessage(index)
- end
- self:CloseEquipTips()
- end
- return this
|