forked from endernon/PGRData
164 lines
6.2 KiB
Lua
164 lines
6.2 KiB
Lua
|
local XUiPanelGuideGainNow = require("XUi/XUiTheatre/FieldGuide/XUiPanelGuideGainNow")
|
|||
|
local XUiPanelGuideGainField = require("XUi/XUiTheatre/FieldGuide/XUiPanelGuideGainField")
|
|||
|
local XUiPanelGuideProp = require("XUi/XUiTheatre/FieldGuide/XUiPanelGuideProp")
|
|||
|
local XUiPanelDetail = require("XUi/XUiTheatre/FieldGuide/XUiPanelDetail")
|
|||
|
|
|||
|
--肉鸽玩法图鉴和信物选择界面
|
|||
|
local XUiTheatreFieldGuide = XLuaUiManager.Register(XLuaUi, "UiTheatreFieldGuide")
|
|||
|
|
|||
|
function XUiTheatreFieldGuide:OnAwake()
|
|||
|
XUiHelper.NewPanelActivityAsset(XDataCenter.TheatreManager.GetAssetItemIds(), self.PanelSpecialTool)
|
|||
|
self:AddListener()
|
|||
|
end
|
|||
|
|
|||
|
--showFieldGuideIds:要显示的页签Id列表,默认全显示
|
|||
|
--isShowUseBtn:是否显示道具的使用按钮,同时只显示已解锁的当前等级的信物
|
|||
|
--selectTokenCb:选择信物回调
|
|||
|
--defaultTabIndex:打开界面默认选中的页签
|
|||
|
--powerId:增益图鉴的势力Id
|
|||
|
--isHideBtnMainUi:是否隐藏返回主界面按钮
|
|||
|
function XUiTheatreFieldGuide:OnStart(showFieldGuideIds, isShowUseBtn, selectTokenCb, defaultTabIndex, powerId, isHideBtnMainUi)
|
|||
|
local clickSkillCallback = handler(self, self.ShowSkillDetail)
|
|||
|
local clickItemCallback = handler(self, self.ShowItemDetail)
|
|||
|
local isCurSelectSkillFunc = handler(self, self.IsCurSelectSkill)
|
|||
|
local isCurSelectTokenFunc = handler(self, self.IsCurSelectToken)
|
|||
|
self.GuideGainNowPanel = XUiPanelGuideGainNow.New(self.PanelGuideGainNow, clickSkillCallback, isCurSelectSkillFunc)
|
|||
|
self.GuideGainFieldPanel = XUiPanelGuideGainField.New(self.PanelGuideGainField, clickSkillCallback, isCurSelectSkillFunc, powerId)
|
|||
|
self.GuidePropPanel = XUiPanelGuideProp.New(self.PanelGuideProp, clickItemCallback, isCurSelectTokenFunc, isShowUseBtn)
|
|||
|
self.DetailPanel = XUiPanelDetail.New(self.PanelDetail, isShowUseBtn, selectTokenCb)
|
|||
|
|
|||
|
self:HidePanel()
|
|||
|
self:InitTabGroup(showFieldGuideIds, defaultTabIndex)
|
|||
|
self.BtnMainUi.gameObject:SetActiveEx(not isHideBtnMainUi)
|
|||
|
end
|
|||
|
|
|||
|
function XUiTheatreFieldGuide:InitTabGroup(showFieldGuideIds, defaultTabIndex)
|
|||
|
self.TabGroup = {}
|
|||
|
self.FieldGuideIdList = XTheatreConfigs.GetTheatreFieldGuideIdList(showFieldGuideIds)
|
|||
|
for i, id in ipairs(self.FieldGuideIdList) do
|
|||
|
local btnTab = i == 1 and self.BtnTog or XUiHelper.Instantiate(self.BtnTog, self.TagBtnPanel)
|
|||
|
local name = XTheatreConfigs.GetTheatreFieldGuideName(id)
|
|||
|
btnTab:SetName(name)
|
|||
|
table.insert(self.TabGroup, btnTab)
|
|||
|
self:CheckRedPoint(i)
|
|||
|
end
|
|||
|
self.TabBtnGroup:Init(self.TabGroup, function(index) self:OnSelectToggle(index) end)
|
|||
|
self.TabBtnGroup:SelectIndex(defaultTabIndex or 1)
|
|||
|
end
|
|||
|
|
|||
|
function XUiTheatreFieldGuide:CheckRedPoint(index, isSave)
|
|||
|
local id = self.FieldGuideIdList[index]
|
|||
|
local tabBtn = self.TabGroup[index]
|
|||
|
if id == XTheatreConfigs.FieldGuideIds.AllSkill then
|
|||
|
if isSave then
|
|||
|
XDataCenter.TheatreManager.SaveGuideGainFieldRedPoint()
|
|||
|
tabBtn:ShowReddot(false)
|
|||
|
return
|
|||
|
end
|
|||
|
tabBtn:ShowReddot(XDataCenter.TheatreManager.CheckGuideGainFieldRedPoint())
|
|||
|
elseif id == XTheatreConfigs.FieldGuideIds.Item then
|
|||
|
if isSave then
|
|||
|
XDataCenter.TheatreManager.SaveGuidePropRedPoint()
|
|||
|
tabBtn:ShowReddot(false)
|
|||
|
return
|
|||
|
end
|
|||
|
tabBtn:ShowReddot(XDataCenter.TheatreManager.CheckGuidePropRedPoint())
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiTheatreFieldGuide:OnSelectToggle(index)
|
|||
|
if self.SelectIndex == index then
|
|||
|
return
|
|||
|
end
|
|||
|
|
|||
|
self:PlayAnimation("QieHuan")
|
|||
|
|
|||
|
self.SelectIndex = index
|
|||
|
self:CheckRedPoint(index, true)
|
|||
|
self:Refresh()
|
|||
|
end
|
|||
|
|
|||
|
function XUiTheatreFieldGuide:Refresh()
|
|||
|
self:HidePanel()
|
|||
|
local selectIndex = self.SelectIndex
|
|||
|
local id = self.FieldGuideIdList[selectIndex]
|
|||
|
if id == XTheatreConfigs.FieldGuideIds.CurSkill then
|
|||
|
self.GuideGainNowPanel:Show()
|
|||
|
elseif id == XTheatreConfigs.FieldGuideIds.AllSkill then
|
|||
|
self.GuideGainFieldPanel:Show()
|
|||
|
elseif id == XTheatreConfigs.FieldGuideIds.Item then
|
|||
|
self.GuidePropPanel:Show()
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiTheatreFieldGuide:HidePanel()
|
|||
|
self.GuideGainNowPanel:Hide()
|
|||
|
self.GuideGainFieldPanel:Hide()
|
|||
|
self.GuidePropPanel:Hide()
|
|||
|
self.DetailPanel:HideAllDetail()
|
|||
|
self.IsSelectCoreGrid = false
|
|||
|
self.CurSelectSkillGrid = nil
|
|||
|
self.CurSelectSkill = nil
|
|||
|
self.CurSelectItemGrid = nil
|
|||
|
self.CurSelectToken = nil
|
|||
|
end
|
|||
|
|
|||
|
--skill:XAdventureSkill
|
|||
|
function XUiTheatreFieldGuide:IsCurSelectSkill(skill)
|
|||
|
if self.CurSelectSkill and skill then
|
|||
|
return self.CurSelectSkill:GetId() == skill:GetId()
|
|||
|
end
|
|||
|
|
|||
|
return false
|
|||
|
end
|
|||
|
|
|||
|
--isSelectCoreGrid:是否从4个装备了的核心技能中选中
|
|||
|
function XUiTheatreFieldGuide:ShowSkillDetail(skill, grid, isSelectCoreGrid)
|
|||
|
if not skill then
|
|||
|
return
|
|||
|
end
|
|||
|
if self.CurSelectSkillGrid then
|
|||
|
local oldSkill = self.CurSelectSkillGrid:GetSkill()
|
|||
|
local newSkill = grid:GetSkill()
|
|||
|
if oldSkill:GetId() == newSkill:GetId() and self.IsSelectCoreGrid == isSelectCoreGrid then
|
|||
|
return
|
|||
|
end
|
|||
|
self.CurSelectSkillGrid:CancelSelect()
|
|||
|
end
|
|||
|
|
|||
|
self.IsSelectCoreGrid = isSelectCoreGrid
|
|||
|
self.CurSelectSkillGrid = grid
|
|||
|
self.CurSelectSkill = skill
|
|||
|
self.DetailPanel:ShowSkillDetail(skill)
|
|||
|
self:PlayAnimation("PanelDetailEnable")
|
|||
|
end
|
|||
|
|
|||
|
--token:XTheatreToken
|
|||
|
function XUiTheatreFieldGuide:IsCurSelectToken(token)
|
|||
|
if not self.CurSelectToken or not token then
|
|||
|
return false
|
|||
|
end
|
|||
|
return self.CurSelectToken:GetId() == token:GetId()
|
|||
|
end
|
|||
|
|
|||
|
function XUiTheatreFieldGuide:ShowItemDetail(token, grid)
|
|||
|
if self.CurSelectItemGrid then
|
|||
|
local oldItem = self.CurSelectItemGrid:GetToken()
|
|||
|
local newItem = grid:GetToken()
|
|||
|
if oldItem:GetId() == newItem:GetId() then
|
|||
|
return
|
|||
|
end
|
|||
|
self.CurSelectItemGrid:CancelSelect()
|
|||
|
end
|
|||
|
|
|||
|
self.CurSelectItemGrid = grid
|
|||
|
self.CurSelectToken = token
|
|||
|
self.DetailPanel:ShowItemDetail(token)
|
|||
|
self:PlayAnimation("PanelDetailEnable")
|
|||
|
end
|
|||
|
|
|||
|
function XUiTheatreFieldGuide:AddListener()
|
|||
|
self:RegisterClickEvent(self.BtnBack, self.Close)
|
|||
|
self:RegisterClickEvent(self.BtnMainUi, function() XLuaUiManager.RunMain() end)
|
|||
|
self:BindHelpBtn(self.BtnHelp, "Theatre")
|
|||
|
end
|