PGRData/Script/matrix/xmanager/XFightUiManager.lua
2024-09-01 22:49:41 +02:00

179 lines
No EOL
5 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.

local FunctionParams
local FunctionDictionary
local FunctionParamPath = "Client/Fight/LuaFunctionParams/LuaFunctionParams.tab"
--CS.XFight.Instance.InputControl.OnClick
--CS.XNpcOperationClickKey
--CS.XOperationClickType
XFightUiManager = XFightUiManager or {}
function XFightUiManager.Init()
FunctionParams = XTableManager.ReadByIntKey(FunctionParamPath, XTable.XTableLuaFunctionParams, "Id")
end
--CSharpCallLua
function XFightUiManager.DoLuaFunctionWithValue(id, value, value2)
if not FunctionParams then
XFightUiManager.Init()
end
local funcName = FunctionParams[id].FunctionName
FunctionDictionary[funcName](id, value, value2)
end
--CSharpCallLua
function XFightUiManager.DoLuaFunction(id)
if not FunctionParams then
XFightUiManager.Init()
end
local funcName = FunctionParams[id].FunctionName
FunctionDictionary[funcName](id)
end
-----------跟随tips CSharpCallLua begin--------------
local function GetUiFightBrilliantwalk()
local fight = CS.XFight.Instance
if not fight then
return
end
return fight.UiManager:GetUi(typeof(CS.XUiFight)):FindChildUi("UiFightBrilliantwalk")
end
local function BrilliantwalkInit(uiLuaTableKey, ...)
local ui = GetUiFightBrilliantwalk()
if not ui then
return
end
local fight = CS.XFight.Instance
if not fight then
return
end
local data = {...}
local npc = fight.NpcManager:GetNpc(data[2])
if not npc then
return
end
local func = ui.UiProxy.UiLuaTable[uiLuaTableKey]
func(ui.UiProxy.UiLuaTable, data[1], npc, data[3], data[4], data[5], data[6], data[7], data[8], data[9])
end
function XFightUiManager.DoBrilliantwalkInitTips(id, npcId, styleType, xOffset, yOffset, endX, endY, jointName, effectName)
BrilliantwalkInit("InitTips", id, npcId, styleType, xOffset, yOffset, endX, endY, jointName, effectName)
end
function XFightUiManager.DoBrilliantwalkInitTipsEx(id, npcId, styleType, xOffset, yOffset, endX, endY, jointName, configId)
BrilliantwalkInit("InitTipsEx", id, npcId, styleType, xOffset, yOffset, endX, endY, jointName, configId)
end
function XFightUiManager.DoBrilliantwalkSetTipsDesc(id, textIndex, tipTextId, varIndex, value)
local ui = GetUiFightBrilliantwalk()
if not ui then
return
end
local func = ui.UiProxy.UiLuaTable["SetTipsDesc"]
func(ui.UiProxy.UiLuaTable, id, textIndex, tipTextId, varIndex, value)
end
-----------跟随tips CSharpCallLua end---------------
FunctionDictionary = {
["DoNieRoleDeath"] = function(id,value)
XLog.Debug("DoNieRoleDeath", id, tostring(value))
if XLuaUiManager.IsUiShow("UiNieREasterEgg") then
XLog.Error("界面处于展示状态,请检查行为树节点!!!")
return
end
--FunctionParams[id].Params
if value < 3 then
local isFirstDeath = value == 1
XLuaUiManager.Open("UiNieREasterEgg", false , isFirstDeath)
else
local lastName, nowName = XDataCenter.NieRManager.GetNieREasrerEggPlayerName()
XLuaUiManager.Open("UiFightNieRTips",lastName, nowName)
end
end,
["DoOpenChildUi"] = function(id, value)
local fight = CS.XFight.Instance
if not fight then
return
end
local uiName = FunctionParams[id].Params[1]
fight.UiManager:GetUi(typeof(CS.XUiFight)):OpenChildUi(uiName, value)
end,
["DoCloseChildUi"] = function(id)
local fight = CS.XFight.Instance
if not fight then
return
end
local uiName = FunctionParams[id].Params[1]
fight.UiManager:GetUi(typeof(CS.XUiFight)):CloseChildUi(uiName)
end,
["DoChildUiFunction"] = function(id, value)
local fight = CS.XFight.Instance
if not fight then
return
end
local uiName = FunctionParams[id].Params[1]
local ui = fight.UiManager:GetUi(typeof(CS.XUiFight)):FindChildUi(uiName)
if not ui then
XLog.Error(string.format("子Ui未加载 name:%s", uiName))
return
end
local funcName = FunctionParams[id].Params[2]
local func = ui.UiProxy.UiLuaTable[funcName]
if not func then
XLog.Error(string.format("不存在的子Ui方法 name:%s", funcName))
return
end
func(ui.UiProxy.UiLuaTable, value)
end,
["DoChildUiFunctionEx"] = function(id, value, value2)
local fight = CS.XFight.Instance
if not fight then
return
end
local uiName = FunctionParams[id].Params[1]
local ui = fight.UiManager:GetUi(typeof(CS.XUiFight)):FindChildUi(uiName)
if not ui then
XLog.Error(string.format("子Ui未加载 name:%s", uiName))
return
end
local funcName = FunctionParams[id].Params[2]
local func = ui.UiProxy.UiLuaTable[funcName]
if not func then
XLog.Error(string.format("不存在的子Ui方法 name:%s", funcName))
return
end
func(ui.UiProxy.UiLuaTable, value, value2)
end,
["HideClientScene"] = function(id, value)
local fight = CS.XFight.Instance;
if fight:GetClientRole().Npc.Id == value then
CS.XRLManager.RLScene:HideRendering(true)
end
end,
["HideClientSceneEx"] = function(id, value)
CS.XRLManager.RLScene:HideRendering(value)
end,
["HideClientFightUi"] = function(id, value)
local fight = CS.XFight.Instance;
if fight:GetClientRole().Npc.Id == value then
fight.UiManager:GetUi(typeof(CS.XUiFight)):SetActive(false)
end
end,
}