94 lines
3.5 KiB
Lua
94 lines
3.5 KiB
Lua
|
local XUiBattleRoleRoomDefaultProxy = require("XUi/XUiNewRoomSingle/XUiBattleRoleRoomDefaultProxy")
|
|||
|
local XUiCerberusGameBattleRoomProxy = XClass(XUiBattleRoleRoomDefaultProxy, "XUiCerberusGameBattleRoomProxy")
|
|||
|
|
|||
|
--######################## AOP ########################
|
|||
|
function XUiCerberusGameBattleRoomProxy:AOPOnStartBefore(rootUi)
|
|||
|
end
|
|||
|
|
|||
|
function XUiCerberusGameBattleRoomProxy:AOPOnEnableAfter(rootUi)
|
|||
|
rootUi.BtnTeamPrefab.gameObject:SetActiveEx(false)
|
|||
|
rootUi.BtnShowInfoToggle.gameObject:SetActiveEx(false)
|
|||
|
rootUi:OnBtnShowInfoToggleClicked(1)
|
|||
|
end
|
|||
|
|
|||
|
function XUiCerberusGameBattleRoomProxy:EnterFight(xTeam, stageId, challengeCount, isAssist)
|
|||
|
local stageConfig = XDataCenter.FubenManager.GetStageCfg(stageId)
|
|||
|
local isAssist = isAssist
|
|||
|
XDataCenter.CerberusGameManager.CerberusGameSetTeamRequest(stageId, xTeam, function ()
|
|||
|
XDataCenter.FubenManager.EnterFight(stageConfig, xTeam, isAssist)
|
|||
|
end)
|
|||
|
end
|
|||
|
|
|||
|
function XUiCerberusGameBattleRoomProxy:GetRoleDetailProxy()
|
|||
|
return require("XUi/XUiCerberusGame/Proxy/XUiCerberusGameBattleRoomRoleDetail")
|
|||
|
end
|
|||
|
|
|||
|
--- func desc
|
|||
|
---@param xTeam XCerberusGameTeam
|
|||
|
---@param stageId int
|
|||
|
function XUiCerberusGameBattleRoomProxy:GetIsCanEnterFight(xTeam, stageId)
|
|||
|
-- 检查队长是否为空
|
|||
|
if xTeam:GetCaptainPosEntityId() == 0 then
|
|||
|
return false, CS.XTextManager.GetText("TeamManagerCheckCaptainNil")
|
|||
|
end
|
|||
|
-- 检查首发位置是否为空
|
|||
|
if xTeam:GetFirstFightPosEntityId() == 0 then
|
|||
|
return false, CS.XTextManager.GetText("TeamManagerCheckFirstFightNil")
|
|||
|
end
|
|||
|
|
|||
|
local xConfig = XCerberusGameConfig.CheckIsChallengeStage(stageId)
|
|||
|
local canSeleRoleList = {} -- 可以选择的角色池,含机器人
|
|||
|
if xConfig then
|
|||
|
-- 如果是挑战模式
|
|||
|
canSeleRoleList = XDataCenter.CerberusGameManager.GetCanSelectRoleListForChallengeMode(stageId) or canSeleRoleList
|
|||
|
else
|
|||
|
-- 如果是剧情模式
|
|||
|
canSeleRoleList = XDataCenter.CerberusGameManager.GetCanSelectRoleListForStoryMode(1) or canSeleRoleList
|
|||
|
end
|
|||
|
|
|||
|
local canUseCharIdList = {} --可以上阵的构造体机体类型 charId
|
|||
|
for k, xRole in pairs(canSeleRoleList) do
|
|||
|
local id = xRole.Id
|
|||
|
if XRobotManager.CheckIsRobotId(id) then
|
|||
|
id = XRobotManager.GetCharacterId(id)
|
|||
|
end
|
|||
|
canUseCharIdList[id] = true
|
|||
|
end
|
|||
|
-- 获得这个关卡要上阵的角色数量
|
|||
|
local canUseCharacterCount = 0
|
|||
|
local chardesc = ""
|
|||
|
for charId, v in pairs(canUseCharIdList) do
|
|||
|
canUseCharacterCount = canUseCharacterCount + 1
|
|||
|
local charConfig = XCharacterConfigs.GetCharacterTemplate(charId)
|
|||
|
local name = charConfig.Name.. ","
|
|||
|
chardesc = chardesc .. name
|
|||
|
end
|
|||
|
chardesc = XUiHelper.RemoveLastSymbol(chardesc, ",")
|
|||
|
-- 通过比较角色数量限制来判断能否进入战斗
|
|||
|
local teamMemberCount = xTeam:GetEntityCount()
|
|||
|
if teamMemberCount < canUseCharacterCount then
|
|||
|
local errorTip = CS.XTextManager.GetText("CerbrusGameTeamLimit2", chardesc)
|
|||
|
return false, errorTip
|
|||
|
end
|
|||
|
|
|||
|
return true
|
|||
|
end
|
|||
|
|
|||
|
function XUiCerberusGameBattleRoomProxy:ClearErrorTeamEntityId(...)
|
|||
|
end
|
|||
|
|
|||
|
function XUiCerberusGameBattleRoomProxy:CheckStageRobotIsUseCustomProxy(robotIds)
|
|||
|
return true
|
|||
|
end
|
|||
|
|
|||
|
function XUiCerberusGameBattleRoomProxy:GetChildPanelData()
|
|||
|
local data =
|
|||
|
{
|
|||
|
assetPath = CS.XGame.ClientConfig:GetString("UiCerberusGameRoomZd"),
|
|||
|
proxy = require("XUi/XUiCerberusGame/Grid/XUiCerberusGameRoomZd"),
|
|||
|
proxyArgs = { "StageId"}
|
|||
|
}
|
|||
|
return data
|
|||
|
end
|
|||
|
|
|||
|
return XUiCerberusGameBattleRoomProxy
|