284 lines
9.3 KiB
Lua
284 lines
9.3 KiB
Lua
|
local XUiFavorability = XLuaUiManager.Register(XLuaUi, "UiFavorability")
|
||
|
local XUiPanelSignBoard = require("XUi/XUiMain/XUiChildView/XUiPanelSignBoard")
|
||
|
|
||
|
local XFavorabilityType = {
|
||
|
UILikeMain = 1,
|
||
|
UILikeSwitchRole = 2,
|
||
|
UILikeFile = 3,
|
||
|
UILikePlot = 4,
|
||
|
UILikeGift = 5,
|
||
|
}
|
||
|
|
||
|
function XUiFavorability:OnAwake()
|
||
|
|
||
|
local root = self.UiModelGo
|
||
|
self.PanelCamFarrExchange = root:FindTransform("PanelCamFarrExchange")
|
||
|
self.PanelCamNearrExchange = root:FindTransform("PanelCamNearrExchange")
|
||
|
self.PanelCamFarrBegin = root:FindTransform("PanelCamFarrBegin")
|
||
|
self.PanelCamNearBegin = root:FindTransform("PanelCamNearrBegin")
|
||
|
|
||
|
self:InitUiAfterAuto()
|
||
|
end
|
||
|
|
||
|
|
||
|
function XUiFavorability:OnStart()
|
||
|
self.CvType = CS.XAudioManager.CvType
|
||
|
self:OpenMainView(true)
|
||
|
|
||
|
XDataCenter.FavorabilityManager.BoardMutualRequest()
|
||
|
|
||
|
local characterId = self:GetCurrFavorabilityCharacter()
|
||
|
self.RedPointSwitchId = XRedPointManager.AddRedPointEvent(self.ImgReddot, nil, self, { XRedPointConditions.Types.CONDITION_FAVORABILITY_RED }, { CharacterId = characterId })
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:OnEnable()
|
||
|
if self.SignBoard then
|
||
|
self.SignBoard:OnEnable()
|
||
|
end
|
||
|
self:RefreshSelectedModel()
|
||
|
if self.FavorabilityMain then
|
||
|
self.FavorabilityMain:UpdateAllInfos()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:OnDisable()
|
||
|
if self.SignBoard then
|
||
|
self.SignBoard:OnDisable()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:OnDestroy()
|
||
|
if self.SignBoard then
|
||
|
self.SignBoard:OnDestroy()
|
||
|
end
|
||
|
self.FavorabilityDocument:OnClose()
|
||
|
self.FavorabilityMain:OnClose()
|
||
|
self.CurrentCharacterId = nil
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:SetCurrFavorabilityCharacter(characterId)
|
||
|
self.CurrentCharacterId = characterId
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:GetCurrFavorabilityCharacter()
|
||
|
return self.CurrentCharacterId
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:OnGetEvents()
|
||
|
return { XEventId.EVENT_FAVORABILITY_MAIN_REFRESH, XEventId.EVENT_FAVORABILITY_RUMORS_PREVIEW, XEventId.EVENT_FAVORABILITY_ON_GIFT_CHANGED }
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:OnNotify(evt, ...)
|
||
|
local args = { ... }
|
||
|
|
||
|
if evt == XEventId.EVENT_FAVORABILITY_MAIN_REFRESH then
|
||
|
self.FavorabilityMain:UpdateAllInfos(true)
|
||
|
self:OnCurrentCharacterFavorabilityLevelChanged(args[1])
|
||
|
elseif evt == XEventId.EVENT_FAVORABILITY_RUMORS_PREVIEW then
|
||
|
self:OnPreView(args)
|
||
|
|
||
|
elseif evt == XEventId.EVENT_FAVORABILITY_ON_GIFT_CHANGED then
|
||
|
self.FavorabilityMain:UpdatePreviewExp(args)
|
||
|
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:OnBtnMainUIClick()
|
||
|
self:SetCurrFavorabilityCharacter(nil)
|
||
|
XLuaUiManager.RunMain()
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:OnBtnMaskClick()
|
||
|
self.PanelPreView.gameObject:SetActive(false)
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:InitUiAfterAuto()
|
||
|
local characterId = self:GetCurrFavorabilityCharacter()
|
||
|
characterId = (characterId == nil) and XDataCenter.DisplayManager.GetDisplayChar().Id or characterId
|
||
|
self:SetCurrFavorabilityCharacter(characterId)
|
||
|
|
||
|
self.FavorabilityChangeRole = XUiPanelFavorabilityExchangeRole.New(self.PanelFavorabilityExchangeRole, self)
|
||
|
self.FavorabilityDocument = XUiPanelFavorabilityDocument.New(self.PanelFavorabilityDocument, self)
|
||
|
self.FavorabilityPlot = XUiPanelFavorabilityPlot.New(self.PanelFavorabilityPlot, self)
|
||
|
self.FavorabilityGift = XUiPanelLikeGiveGift.New(self.PanelFavorabilityGift, self)
|
||
|
|
||
|
self.SignBoard = XUiPanelSignBoard.New(self.PanelFavorabilityBoard, self, XUiPanelSignBoard.SignBoardOpenType.FAVOR)
|
||
|
self.SignBoard.OperateTrigger = false
|
||
|
self.SignBoard:SetAutoPlay(false)
|
||
|
self.FavorabilityMain = XUiPanelFavorabilityMain.New(self.PanelFavorabilityMain, self)
|
||
|
|
||
|
self.BtnMask.CallBack = function() self:OnBtnMaskClick() end
|
||
|
self.BtnSwitch.CallBack = function() self:OnBtnSwitchClick() end
|
||
|
end
|
||
|
|
||
|
-- [更换模型]
|
||
|
function XUiFavorability:ChangeCharacterModel(templateId)
|
||
|
self.SignBoard:SetDisplayCharacterId(templateId)
|
||
|
self.SignBoard:RefreshCharacterModelById(templateId)
|
||
|
self.SignBoard:ResetPlayList(templateId)
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:RefreshSelectedModel()
|
||
|
local characterId = self:GetCurrFavorabilityCharacter()
|
||
|
characterId = (characterId == nil) and XDataCenter.DisplayManager.GetDisplayChar().Id or characterId
|
||
|
self:SetCurrFavorabilityCharacter(characterId)
|
||
|
self:ChangeCharacterModel(characterId)
|
||
|
end
|
||
|
|
||
|
-- [预览]
|
||
|
function XUiFavorability:OnPreView(previewArgs)
|
||
|
if previewArgs and previewArgs[1] then
|
||
|
self.PanelPreView.gameObject:SetActive(true)
|
||
|
self:SetUiSprite(self.ImgPreview, previewArgs[1])
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- [标记显示的界面]
|
||
|
function XUiFavorability:ChangeViewType(currViewType)
|
||
|
self.LastViewType = self.CurrViewType
|
||
|
self.CurrViewType = currViewType
|
||
|
end
|
||
|
|
||
|
-- [打开main:isAnim是否伴随动画]
|
||
|
function XUiFavorability:OpenMainView(isAnim)
|
||
|
self:RefreshSelectedModel()
|
||
|
|
||
|
self.FavorabilityMain.GameObject:SetActive(true)
|
||
|
if isAnim then
|
||
|
self.FavorabilityMain:RefreshDatas()
|
||
|
else
|
||
|
self.FavorabilityMain:UpdateDatas()
|
||
|
end
|
||
|
self.LastViewType = self.CurrViewType or XFavorabilityType.UILikeMain
|
||
|
XRedPointManager.Check(self.RedPointSwitchId)
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:UpdateCamera(isChangeRoleOpen)
|
||
|
self.PanelCamFarrExchange.gameObject:SetActive(not isChangeRoleOpen)
|
||
|
self.PanelCamNearrExchange.gameObject:SetActive(isChangeRoleOpen)
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:UpdateBeginCamera(isOpen)
|
||
|
self.PanelCamFarrBegin.gameObject:SetActive(isOpen)
|
||
|
self.PanelCamNearBegin.gameObject:SetActive(not isOpen)
|
||
|
end
|
||
|
|
||
|
-- [打开切换角色]
|
||
|
function XUiFavorability:OpenChangeRoleView()
|
||
|
self:CloseOtherViewWhenExchagneRoleOpen(self.CurrViewType)
|
||
|
self.FavorabilityChangeRole.GameObject:SetActive(true)
|
||
|
self.FavorabilityChangeRole:RefreshDatas()
|
||
|
self:ChangeViewType(XFavorabilityType.UILikeSwitchRole)
|
||
|
self:UpdateCamera(true)
|
||
|
self.FavorabilityMain:SetTopControlActive(false)
|
||
|
self:PlaySaftyAnimation("CharacterExchangeEnable")
|
||
|
end
|
||
|
|
||
|
-- [关闭切换角色,回到上一个界面]
|
||
|
function XUiFavorability:CloseChangeRoleView()
|
||
|
self:PlaySaftyAnimation("CharacterExchangeDisable", function()
|
||
|
self.FavorabilityChangeRole.GameObject:SetActive(false)
|
||
|
self:OpenOtherViewWhenExchangeRoleClose(self.LastViewType)
|
||
|
self.FavorabilityMain:UpdateAllInfos()
|
||
|
self.FavorabilityMain:SetTopControlActive(true)
|
||
|
end)
|
||
|
end
|
||
|
|
||
|
-- [打开档案界面]
|
||
|
function XUiFavorability:OpenInformationView()
|
||
|
self.FavorabilityDocument:SetViewActive(true)
|
||
|
self:ChangeViewType(XFavorabilityType.UILikeFile)
|
||
|
self.FavorabilityPlot:SetViewActive(false)
|
||
|
self.FavorabilityGift:SetViewActive(false)
|
||
|
end
|
||
|
|
||
|
-- [打开剧情界面]
|
||
|
function XUiFavorability:OpenPlotView()
|
||
|
self.FavorabilityPlot:SetViewActive(true)
|
||
|
self:ChangeViewType(XFavorabilityType.UILikePlot)
|
||
|
self.FavorabilityDocument:SetViewActive(false)
|
||
|
self.FavorabilityGift:SetViewActive(false)
|
||
|
end
|
||
|
|
||
|
-- [打开礼物界面]
|
||
|
function XUiFavorability:OpenGiftView()
|
||
|
self.FavorabilityGift:SetViewActive(true)
|
||
|
self:ChangeViewType(XFavorabilityType.UILikeGift)
|
||
|
self.FavorabilityDocument:SetViewActive(false)
|
||
|
self.FavorabilityPlot:SetViewActive(false)
|
||
|
end
|
||
|
|
||
|
-- [关闭换人界面时打开上一个界面]
|
||
|
function XUiFavorability:OpenOtherViewWhenExchangeRoleClose(viewType)
|
||
|
if viewType == XFavorabilityType.UILikeFile then
|
||
|
self:OpenInformationView()
|
||
|
|
||
|
elseif viewType == XFavorabilityType.UILikePlot then
|
||
|
self:OpenPlotView()
|
||
|
|
||
|
elseif viewType == XFavorabilityType.UILikeGift then
|
||
|
self:OpenGiftView()
|
||
|
|
||
|
end
|
||
|
self:OpenMainView()
|
||
|
end
|
||
|
|
||
|
-- [打开换人界面时关闭其他界面]CloseOtherViewWhenExchagneRoleOpen
|
||
|
function XUiFavorability:CloseOtherViewWhenExchagneRoleOpen()
|
||
|
self.FavorabilityDocument:SetViewActive(false)
|
||
|
self.FavorabilityPlot:SetViewActive(false)
|
||
|
self.FavorabilityGift:SetViewActive(false)
|
||
|
self.FavorabilityMain:CloseFuncBtns()
|
||
|
end
|
||
|
|
||
|
-- [切换角色]
|
||
|
function XUiFavorability:OnBtnSwitchClick()
|
||
|
self:OpenChangeRoleView()
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:UpdateExpFillAmount(lastLevel, lastExp, totalExp)
|
||
|
self.FavorabilityMain:DoFillAmountTween(lastLevel, lastExp, totalExp)
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:PlayCvContent(cvId)
|
||
|
if not self.SignBoard then return end
|
||
|
self.SignBoard:Stop()
|
||
|
local content = XFavorabilityConfigs.GetCvContentByIdAndType(cvId, self.CvType)
|
||
|
self.SignBoard:ShowContent(content)
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:StopCvContent()
|
||
|
if not self.SignBoard then return end
|
||
|
self.SignBoard:ShowContent(nil)
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:OnCurrentCharacterFavorabilityLevelChanged()
|
||
|
local characterId = self:GetCurrFavorabilityCharacter()
|
||
|
local favorUp = XSignBoardConfigs.GetSignBoardConfigByRoldIdAndCondition(characterId, XSignBoardEventType.FAVOR_UP)
|
||
|
if favorUp and favorUp[1] and (not self.SignBoard:IsPlaying()) then
|
||
|
self.SignBoard:ForcePlay(favorUp[1].Id)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:PlaySubTabAnim()
|
||
|
self:PlaySaftyAnimation("YeMianTwo")
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:PlayBaseTabAnim()
|
||
|
self:PlaySaftyAnimation("YeMianOne")
|
||
|
end
|
||
|
|
||
|
function XUiFavorability:PlaySaftyAnimation(animName, endCb, startCb)
|
||
|
self:PlayAnimation(animName, function()
|
||
|
if endCb then
|
||
|
endCb()
|
||
|
end
|
||
|
XLuaUiManager.SetMask(false)
|
||
|
end,
|
||
|
function()
|
||
|
if startCb then
|
||
|
startCb()
|
||
|
end
|
||
|
XLuaUiManager.SetMask(true)
|
||
|
end)
|
||
|
end
|