242 lines
No EOL
7.8 KiB
Lua
242 lines
No EOL
7.8 KiB
Lua
local XPanelTheatre3EventDialogue = require("XUi/XUiTheatre3/Adventure/Node/XPanelTheatre3EventDialogue")
|
||
local XPanelTheatre3EventOptions = require("XUi/XUiTheatre3/Adventure/Node/XPanelTheatre3EventOptions")
|
||
local XPanelTheatre3EventReward = require("XUi/XUiTheatre3/Adventure/Node/XPanelTheatre3EventReward")
|
||
local XPanelTheatre3EventShop = require("XUi/XUiTheatre3/Adventure/Node/XPanelTheatre3EventShop")
|
||
|
||
---@class XUiTheatre3Outpost : XLuaUi
|
||
---@field _Control XTheatre3Control
|
||
local XUiTheatre3Outpost = XLuaUiManager.Register(XLuaUi, "UiTheatre3Outpost")
|
||
|
||
function XUiTheatre3Outpost:OnAwake()
|
||
self:AddBtnListener()
|
||
end
|
||
|
||
---@param slot XTheatre3NodeSlot
|
||
function XUiTheatre3Outpost:OnStart(slot)
|
||
self:UpdateSlot(slot)
|
||
self:InitUi()
|
||
end
|
||
|
||
function XUiTheatre3Outpost:OnEnable()
|
||
self:PlayAnimationWithMask("AnimStartAuto")
|
||
self:RefreshUi()
|
||
end
|
||
|
||
function XUiTheatre3Outpost:OnDestroy()
|
||
XDataCenter.ItemManager.RemoveCountUpdateListener(self._PanelAsset)
|
||
end
|
||
|
||
function XUiTheatre3Outpost:InitUi()
|
||
self:InitPanelAsset()
|
||
self:InitPanelDialogue()
|
||
self:InitPanelReward()
|
||
self:InitPanelOption()
|
||
self:InitPanelShop()
|
||
end
|
||
|
||
function XUiTheatre3Outpost:RefreshUi()
|
||
if self._CurSlot:CheckType(XEnumConst.THEATRE3.NodeSlotType.Event) then
|
||
if not self._EventCfg then
|
||
XLog.Error(string.format("Error:Event配置不存在!EventId=%s,StepId=%s", self._CurSlot:GetEventId(), self._CurSlot:GetCurStepId()),
|
||
self._CurSlot)
|
||
return
|
||
end
|
||
self:RefreshBg(self._EventCfg.BgAsset)
|
||
self:RefreshPanelTitle(self._EventCfg.Title, self._EventCfg.TitleContent)
|
||
self:RefreshPanelRole(self._EventCfg.RoleIcon, self._EventCfg.RoleName, self._EventCfg.RoleContent)
|
||
|
||
self:RefreshPanelDialogue()
|
||
self:RefreshPanelOption()
|
||
self:RefreshPanelReward()
|
||
elseif self._CurSlot:CheckType(XEnumConst.THEATRE3.NodeSlotType.Shop) then
|
||
self:RefreshPanelShop()
|
||
end
|
||
end
|
||
|
||
--region Data
|
||
---@param slot XTheatre3NodeSlot
|
||
function XUiTheatre3Outpost:UpdateSlot(slot)
|
||
self._CurSlot = slot
|
||
self._EventCfg = self._Control:GetEventCfgByIdAndStep(self._CurSlot:GetEventId(), self._CurSlot:GetCurStepId())
|
||
self._ShopCfg = XTool.IsNumberValid(self._CurSlot:GetShopId()) and self._Control:GetShopNodeCfgById(self._CurSlot:GetShopId())
|
||
end
|
||
--endregion
|
||
|
||
--region Ui - PanelAsset
|
||
function XUiTheatre3Outpost:InitPanelAsset()
|
||
self._PanelAsset = XUiHelper.NewPanelActivityAsset(
|
||
{XEnumConst.THEATRE3.Theatre3InnerCoin,},
|
||
self.PanelSpecialTool,
|
||
nil,
|
||
function()
|
||
XLuaUiManager.Open("UiTheatre3Tips", XEnumConst.THEATRE3.Theatre3InnerCoin)
|
||
end)
|
||
self.PanelEnergyChange.gameObject:SetActiveEx(false)
|
||
self.PanelEnergyChange2.gameObject:SetActiveEx(false)
|
||
end
|
||
--endregion
|
||
|
||
--region Ui - Bg
|
||
function XUiTheatre3Outpost:RefreshBg(bgUrl)
|
||
if string.IsNilOrEmpty(bgUrl) then
|
||
return
|
||
end
|
||
self.RImgBg:SetRawImage(bgUrl)
|
||
end
|
||
--endregion
|
||
|
||
--region Ui - PanelTitle
|
||
function XUiTheatre3Outpost:RefreshPanelTitle(title, titleContent)
|
||
self.PanelTitle.gameObject:SetActiveEx(true)
|
||
if not string.IsNilOrEmpty(title) then
|
||
self.TxtTitle.text = title
|
||
else
|
||
self.TxtTitle.gameObject:SetActiveEx(false)
|
||
end
|
||
if not string.IsNilOrEmpty(titleContent) then
|
||
self.TxtTitleContent.text = titleContent
|
||
else
|
||
self.TxtTitleContent.gameObject:SetActiveEx(false)
|
||
end
|
||
end
|
||
--endregion
|
||
|
||
--region Ui - PanelRole
|
||
function XUiTheatre3Outpost:RefreshPanelRole(roleIcon, roleName, roleContent)
|
||
if not string.IsNilOrEmpty(roleIcon) then
|
||
self.RImgRole.gameObject:SetActiveEx(true)
|
||
self.RImgRole:SetRawImage(roleIcon)
|
||
else
|
||
self.RImgRole.gameObject:SetActiveEx(false)
|
||
end
|
||
if not string.IsNilOrEmpty(roleName) then
|
||
self.TxtRoleName.text = roleName
|
||
self.TxtRoleContent.text = roleContent
|
||
self.PanelRole.gameObject:SetActiveEx(true)
|
||
else
|
||
self.PanelRole.gameObject:SetActiveEx(false)
|
||
end
|
||
end
|
||
--endregion
|
||
|
||
--region Ui - PanelDialogue
|
||
function XUiTheatre3Outpost:InitPanelDialogue()
|
||
self.PanelComfirm.gameObject:SetActiveEx(true)
|
||
---@type XPanelTheatre3EventDialogue
|
||
self._PanelDialogue = XPanelTheatre3EventDialogue.New(self.PanelComfirm, self)
|
||
self._PanelDialogue:Close()
|
||
end
|
||
|
||
function XUiTheatre3Outpost:RefreshPanelDialogue()
|
||
if not (self._EventCfg.Type == XEnumConst.THEATRE3.EventStepType.Dialogue) and
|
||
not (self._EventCfg.Type == XEnumConst.THEATRE3.EventStepType.WorkShop)
|
||
then
|
||
return
|
||
end
|
||
if XTool.IsNumberValid(self._EventCfg.StepRewardItemType) then
|
||
return
|
||
end
|
||
self._PanelDialogue:Open()
|
||
self._PanelDialogue:Refresh(self._EventCfg, self._CurSlot)
|
||
end
|
||
--endregion
|
||
|
||
--region Ui - PanelOption
|
||
function XUiTheatre3Outpost:InitPanelOption()
|
||
self.PanelOption.gameObject:SetActiveEx(true)
|
||
---@type XPanelTheatre3EventOptions
|
||
self._PanelOption = XPanelTheatre3EventOptions.New(self.PanelOption, self)
|
||
self._PanelOption:Close()
|
||
end
|
||
|
||
function XUiTheatre3Outpost:RefreshPanelOption()
|
||
if not (self._EventCfg.Type == XEnumConst.THEATRE3.EventStepType.Options) then
|
||
return
|
||
end
|
||
self._PanelOption:Open()
|
||
self._PanelOption:Refresh(self._EventCfg, self._CurSlot)
|
||
end
|
||
--endregion
|
||
|
||
--region Ui - PanelReward
|
||
function XUiTheatre3Outpost:InitPanelReward()
|
||
self.PanelReward.gameObject:SetActiveEx(true)
|
||
---@type XPanelTheatre3EventDialogue
|
||
self._PanelReward = XPanelTheatre3EventReward.New(self.PanelReward, self)
|
||
self._PanelReward:Close()
|
||
end
|
||
|
||
function XUiTheatre3Outpost:RefreshPanelReward()
|
||
if not self._CurSlot:CheckType(XEnumConst.THEATRE3.NodeSlotType.Event) then
|
||
return
|
||
end
|
||
if not XTool.IsNumberValid(self._EventCfg.StepRewardItemType) then
|
||
return
|
||
end
|
||
self._PanelReward:Open()
|
||
self._PanelReward:Refresh(self._EventCfg, self._CurSlot)
|
||
end
|
||
--endregion
|
||
|
||
--region Ui - PanelShop
|
||
function XUiTheatre3Outpost:InitPanelShop()
|
||
---@type XPanelTheatre3EventShop
|
||
self._PanelShop = XPanelTheatre3EventShop.New(self.PanelShop, self)
|
||
self._PanelShop:Close()
|
||
end
|
||
|
||
function XUiTheatre3Outpost:RefreshPanelShop()
|
||
if not self._CurSlot:CheckType(XEnumConst.THEATRE3.NodeSlotType.Shop) then
|
||
return
|
||
end
|
||
if not self._ShopCfg then
|
||
XLog.Error(string.format("Error:ShopNode配置不存在!ShopId=%s", self._CurSlot:GetShopId()), self._CurSlot)
|
||
return
|
||
end
|
||
|
||
self.PanelReward.gameObject:SetActiveEx(false)
|
||
self:RefreshBg(self._ShopCfg.BgAsset)
|
||
self:RefreshPanelRole(self._ShopCfg.RoleIcon, self._ShopCfg.RoleName, self._ShopCfg.RoleContent)
|
||
if self._CurSlot:CheckIsShopEndBuy() then
|
||
self:_RefreshEndBuy()
|
||
else
|
||
self:_RefreshBuy()
|
||
end
|
||
end
|
||
|
||
function XUiTheatre3Outpost:_RefreshBuy()
|
||
self:RefreshPanelTitle()
|
||
self.PanelShop.gameObject:SetActiveEx(true)
|
||
self._PanelShop:Open()
|
||
self._PanelShop:Refresh(self._ShopCfg, self._CurSlot)
|
||
end
|
||
|
||
function XUiTheatre3Outpost:_RefreshEndBuy()
|
||
self:RefreshPanelTitle(self._ShopCfg.TitleContent, self._ShopCfg.Desc)
|
||
self._PanelDialogue:Open()
|
||
self._PanelDialogue:RefreshOnlyDialogue(self._ShopCfg.EndDesc, self._ShopCfg.EndComfirmText)
|
||
end
|
||
--endregion
|
||
|
||
--region Ui - BtnListener
|
||
function XUiTheatre3Outpost:AddBtnListener()
|
||
XUiHelper.RegisterClickEvent(self, self.BtnBack, self.OnBtnBackClick)
|
||
XUiHelper.RegisterClickEvent(self, self.BtnMainUi, self.OnBtnMainUiClick)
|
||
end
|
||
|
||
function XUiTheatre3Outpost:OnBtnBackClick()
|
||
---@type XTheatre3Agency
|
||
local theatre3Agency = XMVCA:GetAgency(ModuleId.XTheatre3)
|
||
if theatre3Agency:CheckAndOpenSettle() then
|
||
return
|
||
else
|
||
self._Control:CheckAndOpenAdventureNextStep(true, true)
|
||
end
|
||
end
|
||
|
||
function XUiTheatre3Outpost:OnBtnMainUiClick()
|
||
XLuaUiManager.RunMain()
|
||
end
|
||
--endregion
|
||
|
||
return XUiTheatre3Outpost |