bayuMIR/client/dev/GUILayout/game/B/ZhiBaoLaoRenOBJ.lua
2026-06-12 02:32:15 +08:00

153 lines
4.8 KiB
Lua

ZhiBaoLaoRenOBJ = Up_BaseClassOBJ:new()
ZhiBaoLaoRenOBJ.__cname = "ZhiBaoLaoRenOBJ"
-- 配置文件
ZhiBaoLaoRenOBJ.cfg = {}
ZhiBaoLaoRenOBJ.UIfile = "game/B/ZhiBaoLaoRenUI"
function ZhiBaoLaoRenOBJ:updata()
self.selected_tbl = nil
self:setviewlist()
self:chouqu()
end
function ZhiBaoLaoRenOBJ:setviewlist()
self.selected_id = 0
local index = 0
GUI:removeAllChildren(self.ui.list_Layout)
for i, v in ipairs(self.cfg or {}) do
local list_bg = GUI:Image_Create(self.ui.list_Layout, "list_bg" .. i, 0, 0, "res/private/ZhiBaoLaoRenUI/1.png")
GUI:Win_SetParam(list_bg, #self.cfg - i)
local bg_zise = GUI:getContentSize(list_bg)
local list_item = "ItemShow_" .. i
self.ui[list_item] = GUI:ItemShow_Create(list_bg, list_item, bg_zise.width / 2, bg_zise.height / 2,
{ index = SL:GetMetaValue("ITEM_INDEX_BY_NAME", v.name), count = 1, look = true, bgVisible = false, color = 0 })
GUI:setAnchorPoint(self.ui[list_item], 0.50, 0.50)
local Bag_Num = SL:Get_ITEM_COUNT(v.name) or 0
if Bag_Num == 0 then
GUI:ItemShow_setIconGrey(self.ui[list_item], true)
else
----* 双击事件
GUI:ItemShow_addDoubleEvent(self.ui[list_item], function()
if self.selected_id > 0 then
if self.selected_id == i then
GUI:ItemShow_setItemShowChooseState(self.ui[list_item], false)
self:chouqu()
self.selected_id = 0
return
else
GUI:ItemShow_setItemShowChooseState(self.ui["ItemShow_" .. self.selected_id], false)
end
end
GUI:ItemShow_setItemShowChooseState(self.ui[list_item], true)
self.selected_id = i
self.selected_tbl = v
self:feijie()
end)
end
end
GUI:UserUILayout(self.ui.list_Layout, {
dir = 3,
addDir = 1,
gap = { x = 8, y = 4 },
sortfunc = function(lists)
table.sort(lists, function(a, b)
return GUI:Win_GetParam(a) > GUI:Win_GetParam(b)
end)
end
})
end
---*设置抽取至宝
function ZhiBaoLaoRenOBJ:chouqu()
GUI:Button_loadTextureNormal(self.ui.Up_btn, "res/private/ZhiBaoLaoRenUI/2.png")
GUI:Button_loadTexturePressed(self.ui.Up_btn, "res/private/ZhiBaoLaoRenUI/4.png")
GUI:removeAllChildren(self.ui.give_Layout)
hk.reloadItemShow(self.ui.Selected_ItemShow, "先天元石", 30, nil, nil, true)
GUI:addOnClickEvent(self.ui.Up_btn, function()
ssrMessage:SubLink(self.__cname .. "_chouqu")
end)
end
---* 刷新背包材料
function ZhiBaoLaoRenOBJ:reloadcialiao()
if GUI:Win_IsNotNull(self._parent) then
self:chouqu()
end
end
function ZhiBaoLaoRenOBJ:feijie()
if self.selected_tbl then
local Bag_Num = SL:Get_ITEM_COUNT(self.selected_tbl.name) or 0
hk.reloadItemShow(self.ui.Selected_ItemShow, self.selected_tbl.name, 1, nil, nil, true)
self.give = {
{
"先天元石",
self.selected_tbl.feijie,
819,
},
}
self:setgiveItem()
GUI:Button_loadTextureNormal(self.ui.Up_btn, "res/private/ZhiBaoLaoRenUI/5.png")
GUI:Button_loadTexturePressed(self.ui.Up_btn, "res/private/ZhiBaoLaoRenUI/3.png")
GUI:addOnClickEvent(self.ui.Up_btn, function()
ssrMessage:SubLink(self.__cname .. "_up", self.selected_tbl.index)
end)
end
end
---* 注册事件
function ZhiBaoLaoRenOBJ:EventBind()
local function ZhiBaoLaoRenOBJ_bag_del_Reload(data)
if GUI:Win_IsNotNull(self._parent) then
self:updata(data.currReinLevel)
end
end
SL:RegisterLUAEvent(LUA_EVENT_REINLEVEL_CHANGE, self.__cname, ZhiBaoLaoRenOBJ_bag_del_Reload)
---* 背包刷新变化
local function ZhiBaoLaoRenOBJ_bag_Reload(data)
for i, v in ipairs(data.operID or {}) do
if v.item.StdMode == 301 then
self:setviewlist()
self:feijie()
end
end
end
SL:RegisterLUAEvent(LUA_EVENT_BAG_ITEM_CHANGE, self.__cname, ZhiBaoLaoRenOBJ_bag_Reload)
--关闭窗口
SL:RegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname, function(widgetName)
self:OnClose(widgetName)
end)
end
--关闭窗口
function ZhiBaoLaoRenOBJ:OnClose(widgetName)
if widgetName == self.__cname then
self:UnRegisterEvent()
end
end
function ZhiBaoLaoRenOBJ:UnRegisterEvent()
self.cfg = {}
SL:UnRegisterLUAEvent(LUA_EVENT_REINLEVEL_CHANGE, self.__cname)
SL:UnRegisterLUAEvent(LUA_EVENT_BAG_ITEM_CHANGE, self.__cname)
SL:UnRegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname)
end
return ZhiBaoLaoRenOBJ