144 lines
No EOL
4.7 KiB
Lua
144 lines
No EOL
4.7 KiB
Lua
local XUiPlayer = {}--XLuaUiManager.Register(XLuaUi, "UiPlayer")
|
|
local None = -1
|
|
function XUiPlayer:OnStart(closeCb, selectIdx, achiveIdx,medalViewType)
|
|
self.TagPage = {
|
|
PlayerInfo = 1,
|
|
Achievement = 2,
|
|
Setting = 3,
|
|
Collect = 4,
|
|
}
|
|
self.SelectIdx = selectIdx
|
|
self.MedalViewType = medalViewType
|
|
self.BtnBack.CallBack = function() self:OnBtnBackClick() end
|
|
self.BtnMainUi.CallBack = function() self:OnBtnMainUiClick() end
|
|
self.BtnAchievement:SetDisable(not XFunctionManager.JudgeCanOpen(XFunctionManager.FunctionName.PlayerAchievement))
|
|
self.TagBtns = { self.BtnPlayerInfo, self.BtnAchievement, self.BtnSetting, self.BtnCollect }
|
|
self.TabBtnGroup:Init(self.TagBtns, function(index) self:OnTabBtnGroup(index) end)
|
|
self.closeCb = closeCb
|
|
self.AchiveIdx = achiveIdx
|
|
|
|
self.TabBtnGroup:SelectIndex(self.SelectIdx or self.TagPage.PlayerInfo)
|
|
XRedPointManager.AddRedPointEvent(self.ImgSetNameTag, self.OnCheckSetName, self, { XRedPointConditions.Types.CONDITION_PLAYER_SETNAME, XRedPointConditions.Types.CONDITION_HEADPORTRAIT_RED })
|
|
XRedPointManager.AddRedPointEvent(self.BtnAchievement, self.OnCheckAcchiveRedPoint, self, { XRedPointConditions.Types.CONDITION_PLAYER_ACHIEVE })
|
|
XRedPointManager.AddRedPointEvent(self.BtnCollect, self.OnCheckMedalRedPoint, self, { XRedPointConditions.Types.CONDITION_MEDAL_RED })
|
|
-- 功能屏蔽
|
|
self.BtnAchievement.gameObject:SetActiveEx(not XFunctionManager.CheckFunctionFitter(XFunctionManager.FunctionName.PlayerAchievement))
|
|
end
|
|
|
|
function XUiPlayer:OnEnable()
|
|
-- 跳转到设置界面
|
|
XEventManager.AddEventListener(XEventId.EVENT_PLAYER_SETTING, self.SelectSetting, self)
|
|
end
|
|
|
|
function XUiPlayer:OnCheckSetName(count)
|
|
self.ImgSetNameTag.gameObject:SetActive(count >= 0)
|
|
end
|
|
|
|
function XUiPlayer:OnCheckAcchiveRedPoint(count)
|
|
self.BtnAchievement:ShowReddot(count >= 0)
|
|
end
|
|
|
|
function XUiPlayer:OnCheckMedalRedPoint(count)
|
|
self.BtnCollect:ShowReddot(count >= 0)
|
|
end
|
|
|
|
function XUiPlayer:OnTabBtnGroup(index)
|
|
if self.NeedSave then
|
|
self:CheckSave(function() self:OnTabBtnGroup(index) end)
|
|
return
|
|
end
|
|
|
|
-- 记录玩家信息界面的动画状态,避免切换界面后卡在动画中间
|
|
if XLuaUiManager.IsUiShow("UiPanelPlayerInfo") then
|
|
self:FindChildUiObj("UiPanelPlayerInfo"):RecordAnimation()
|
|
end
|
|
|
|
if index == self.TagPage.PlayerInfo then
|
|
self:ShowPanelPlayer()
|
|
elseif index == self.TagPage.Achievement then
|
|
if XFunctionManager.DetectionFunction(XFunctionManager.FunctionName.PlayerAchievement) then
|
|
self:ShowPanelAchv()
|
|
end
|
|
elseif index == self.TagPage.Setting then
|
|
self:ShowSetting()
|
|
elseif index == self.TagPage.Collect then
|
|
self:ShowCollect()
|
|
end
|
|
self:PlayAnimation("QieHuan")
|
|
end
|
|
|
|
function XUiPlayer:OnBtnMainUiClick()
|
|
if self.NeedSave then
|
|
self:CheckSave(function() self:OnBtnMainUiClick() end)
|
|
return
|
|
end
|
|
XLuaUiManager.RunMain()
|
|
end
|
|
|
|
function XUiPlayer:OnBtnBackClick()
|
|
if self.NeedSave then
|
|
self:CheckSave(function() self:OnBtnBackClick() end)
|
|
return
|
|
end
|
|
|
|
self:Close()
|
|
|
|
if self.closeCb then
|
|
self.closeCb()
|
|
end
|
|
end
|
|
|
|
function XUiPlayer:ShowPanelPlayer()
|
|
self:OpenOneChildUi("UiPanelPlayerInfo")
|
|
end
|
|
|
|
function XUiPlayer:ShowPanelAchv()
|
|
self:OpenOneChildUi("UiPanelAchieve", self, self.AchiveIdx)
|
|
self.AchiveIdx = nil
|
|
end
|
|
|
|
function XUiPlayer:ShowSetting()
|
|
self:OpenOneChildUi("UiPanelSetting", self)
|
|
self.UiPanelSetting:InitCollectionWallShow()
|
|
self.UiPanelSetting:UpdateCharacterHead()
|
|
end
|
|
|
|
function XUiPlayer:ShowCollect()
|
|
local viewType = None
|
|
if XFunctionManager.JudgeCanOpen(XFunctionManager.FunctionName.Collection) then
|
|
viewType = XMedalConfigs.ViewType.Collection
|
|
end
|
|
if XFunctionManager.JudgeCanOpen(XFunctionManager.FunctionName.Medal) then
|
|
viewType = XMedalConfigs.ViewType.Medal
|
|
end
|
|
self:OpenOneChildUi("UiPanelMedal",self.MedalViewType or viewType)
|
|
end
|
|
|
|
function XUiPlayer:CheckSave(cb)
|
|
self.NeedSave = false
|
|
XUiManager.DialogTip(
|
|
CS.XTextManager.GetText("TipTitle"),
|
|
CS.XTextManager.GetText("SaveShowSetting"),
|
|
XUiManager.DialogType.Normal,
|
|
function()
|
|
self.UiPanelSetting.CharacterList = XPlayer.ShowCharacters
|
|
self.UiPanelSetting:InitAppearanceSetting()
|
|
if cb then
|
|
cb()
|
|
end
|
|
end,
|
|
function()
|
|
self.UiPanelSetting:OnBtnSave()
|
|
if cb then
|
|
cb()
|
|
end
|
|
end)
|
|
end
|
|
|
|
function XUiPlayer:SelectSetting()
|
|
self.TabBtnGroup:SelectIndex(self.TagPage.Setting)
|
|
end
|
|
|
|
function XUiPlayer:OnDisable()
|
|
XEventManager.RemoveEventListener(XEventId.EVENT_PLAYER_SETTING, self.SelectSetting, self)
|
|
end |