97 lines
3.9 KiB
Lua
97 lines
3.9 KiB
Lua
|
local XUiBattleRoleRoomDefaultProxy = require("XUi/XUiNewRoomSingle/XUiBattleRoleRoomDefaultProxy")
|
|||
|
local XUiBiancaTheatreBattleRoleRoom = XClass(XUiBattleRoleRoomDefaultProxy, "XUiBiancaTheatreBattleRoleRoom")
|
|||
|
|
|||
|
function XUiBiancaTheatreBattleRoleRoom:Ctor(team, stageId)
|
|||
|
self.TheatreManager = XDataCenter.BiancaTheatreManager
|
|||
|
self.AdventureManager = self.TheatreManager.GetCurrentAdventureManager()
|
|||
|
self.Chapter = self.AdventureManager:GetCurrentChapter()
|
|||
|
self.StageId = stageId
|
|||
|
self:CheckTeam(team)
|
|||
|
end
|
|||
|
|
|||
|
--检查队伍里试玩角色是否在已招募列表里,存在时更新当前星级的试玩角色Id
|
|||
|
function XUiBiancaTheatreBattleRoleRoom:CheckTeam(team)
|
|||
|
local characterId
|
|||
|
local adventureRole, adventureRobotRole
|
|||
|
for teamPos, entityId in ipairs(team:GetEntityIds()) do
|
|||
|
if XEntityHelper.GetIsRobot(entityId) then
|
|||
|
characterId = XEntityHelper.GetCharacterIdByEntityId(entityId)
|
|||
|
adventureRole = self.AdventureManager:GetRoleByCharacterId(characterId)
|
|||
|
adventureRobotRole = adventureRole and adventureRole:GetRobotRole()
|
|||
|
if adventureRobotRole then
|
|||
|
team:UpdateEntityTeamPos(adventureRobotRole:GetId(), teamPos, true)
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiBiancaTheatreBattleRoleRoom:AOPOnStartAfter(rootUi)
|
|||
|
rootUi.BtnTeamPrefab.gameObject:SetActiveEx(false)
|
|||
|
rootUi.BtnMainUi.CallBack = function() XDataCenter.BiancaTheatreManager.RunMain() end
|
|||
|
-- 进入辅助机关闭音效滤镜
|
|||
|
for i = 1, 3, 1 do
|
|||
|
if rootUi["UiObjPartner"..i] then
|
|||
|
XUiHelper.RegisterClickEvent(rootUi, rootUi["UiObjPartner"..i]:GetObject("BtnClick"), function ()
|
|||
|
XDataCenter.BiancaTheatreManager.ResetAudioFilter()
|
|||
|
end)
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiBiancaTheatreBattleRoleRoom:AOPOnEnableAfter(rootUi)
|
|||
|
-- 音效滤镜界限恢复
|
|||
|
XDataCenter.BiancaTheatreManager.StartAudioFilter()
|
|||
|
end
|
|||
|
|
|||
|
-- 根据实体id获取角色视图数据
|
|||
|
-- return : XCharacterViewModel
|
|||
|
function XUiBiancaTheatreBattleRoleRoom:GetCharacterViewModelByEntityId(id)
|
|||
|
local role = self.AdventureManager:GetRole(id)
|
|||
|
if role == nil then return nil end
|
|||
|
return role:GetCharacterViewModel()
|
|||
|
end
|
|||
|
|
|||
|
-- 根据实体Id获取伙伴实体
|
|||
|
-- return : XPartner
|
|||
|
function XUiBiancaTheatreBattleRoleRoom:GetPartnerByEntityId(id)
|
|||
|
local role = self.AdventureManager:GetRole(id)
|
|||
|
if role == nil then return nil end
|
|||
|
local result = nil
|
|||
|
if role:GetIsLocalRole() then
|
|||
|
return XDataCenter.PartnerManager.GetCarryPartnerEntityByCarrierId(role:GetId())
|
|||
|
else
|
|||
|
return role:GetRawData():GetPartner()
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiBiancaTheatreBattleRoleRoom:GetRoleDetailProxy()
|
|||
|
return require("XUi/XUiBiancaTheatre/XUiBiancaTheatreBattleRoomRoleDetail")
|
|||
|
end
|
|||
|
|
|||
|
function XUiBiancaTheatreBattleRoleRoom:EnterFight()
|
|||
|
self.AdventureManager:RequestSetSingleTeam(function()
|
|||
|
self.AdventureManager:EnterFight(self.StageId, nil, function(res)
|
|||
|
if res.Code ~= XCode.Success then
|
|||
|
return
|
|||
|
end
|
|||
|
-- hack : 假如当前节点是事件战斗并没有下一个触发节点,直接移除事件选择界面防止战斗回来闪一下
|
|||
|
local currentNode = self.AdventureManager:GetCurrentChapter():GetCurrentNode()
|
|||
|
if not currentNode then return end
|
|||
|
if currentNode:GetNodeType() == XBiancaTheatreConfigs.NodeType.Event
|
|||
|
and currentNode:GetEventType() == XBiancaTheatreConfigs.EventNodeType.Battle
|
|||
|
and (currentNode:GetNextStepId() == nil or currentNode:GetNextStepId() == 0) then
|
|||
|
XLuaUiManager.Remove("UiBiancaTheatreOutpost")
|
|||
|
end
|
|||
|
end)
|
|||
|
end)
|
|||
|
end
|
|||
|
|
|||
|
function XUiBiancaTheatreBattleRoleRoom:GetRoleAbility(entityId)
|
|||
|
local role = self.AdventureManager:GetRole(entityId)
|
|||
|
if role then
|
|||
|
return role:GetAbility()
|
|||
|
end
|
|||
|
return 0
|
|||
|
end
|
|||
|
|
|||
|
return XUiBiancaTheatreBattleRoleRoom
|