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

156 lines
4.2 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

KuangBaoOBJ = {}
KuangBaoOBJ.__cname = "KuangBaoOBJ"
-- 配置文件
KuangBaoOBJ.cfg = {}
function KuangBaoOBJ:main(arg1, arg2, arg3, data)
local parent = GUI:Win_Create(self.__cname, 0, 0, 0, 0, false, false, true, false)
if data and data.npcid then
GUI:Win_BindNPC(parent, data.npcid)
end
GUI:LoadExport(parent, "game/A/KuangBaoUI")
self._parent = parent
self.ui = GUI:ui_delegate(parent)
--- 窗口初始化居中与动作
ssrUIManager:OpenAlgin(self)
--背景图关闭
GUI:addOnClickEvent(self.ui.bg_close, function()
GUI:Win_Close(self._parent)
end)
--关闭按钮背景板关闭
GUI:addOnClickEvent(self.ui.btn_close, function()
GUI:Win_Close(self._parent)
end)
if data and data.cfg then
self.cfg = data.cfg
end
---* 绑定事件
self:EventBind()
self:updata()
--本模块未继承 Up_BaseClassOBJ手动通知红点重算self.cfg 已填充)
if RedDotMgr and RedDotMgr.refreshByOwner then
RedDotMgr:refreshByOwner(self.__cname)
end
end
function KuangBaoOBJ:updata()
local yuanbao_num = tonumber(SL:Get_MONEY(ssrConstCfg.Money["元宝"])) or 0
if hk.checkcontion({ { "检测称号", self.cfg.title } }) then
GUI:setVisible(self.ui.Button, false)
GUI:setVisible(self.ui.y_open, true)
--已开通:主动清掉上次可能贴过的红点
RedDotMgr.detachDot(self.ui.Button)
else
GUI:setVisible(self.ui.Button, true)
GUI:setVisible(self.ui.y_open, false)
GUI:addOnClickEvent(self.ui.Button, function()
ssrMessage:SubLink("KuangBaoOBJ_up")
end)
if yuanbao_num >= 100 then
RedDotMgr.attachDot(self.ui.Button, { x = 200, y = 40 })
end
end
---* 绑定事件
self:EventBind()
self:reddot()
end
function KuangBaoOBJ:reddot()
if GUI:Win_IsNotNull(self.ui.button_red) then
GUI:removeFromParent(self.ui.button_red)
end
if hk.checkcontion(self.check) then
return
elseif hk.checkcontion(self.cfg.xh) then
local button_size = GUI:getContentSize(self.ui.Button)
self.ui.button_red = GUI:Image_Create(self.ui.Button, "button_red", button_size.width - 30,
button_size.height - 15, "res/public/btn_npcfh_04.png")
end
end
------------------------网络消息------------------------
------------------------注册事件------------------------
function KuangBaoOBJ:EventBind()
local function KuangBaoOBJ_titleReload(data)
if data.oper == 2 then
if GUI:Win_IsNotNull(self._parent) then
self:updata()
end
end
end
SL:RegisterLUAEvent(LUA_EVENT_TITLE_REFRESH, self.__cname, KuangBaoOBJ_titleReload)
--关闭窗口
SL:RegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname, function(widgetName)
self:OnClose(widgetName)
end)
end
--关闭窗口
function KuangBaoOBJ:OnClose(widgetName)
if widgetName == self.__cname then
self:UnRegisterEvent()
end
end
function KuangBaoOBJ:UnRegisterEvent()
SL:UnRegisterLUAEvent(LUA_EVENT_TITLE_REFRESH, self.__cname)
SL:UnRegisterLUAEvent(LUA_EVENT_CLOSEWIN, self.__cname)
end
--注册到全局红点系统:未获得狂暴称号 且 元宝满足开通阈 → 顶部狂暴图标亮
--watchTitle = true 明确声明需要称号变化LUA_EVENT_TITLE_REFRESH时重算
--target 返回 nil 表示仅作为逻辑叶子节点供顶部图标聚合
if RedDotMgr and RedDotMgr.register then
RedDotMgr:register("FuLi_KuangBao", {
owner = "KuangBaoOBJ",
parent = "TopIcon_KuangBao",
target = function() return nil end,
watchTitle = true,
check = function()
local cfg = KuangBaoOBJ.cfg
if not cfg or not cfg.title then
return false
end
--已获得称号 → 不亮
if hk.checkcontion({ { "检测称号", cfg.title } }) then
return false
end
--元宝达阈 → 亮
local yuanbao_num = tonumber(SL:Get_MONEY(ssrConstCfg.Money["元宝"])) or 0
return yuanbao_num >= 100
end,
})
end
return KuangBaoOBJ