Update - 1.9.0.103
EN: 1.9.0.103 CN: 1.9.0.104 JP: 1.9.0.106 KR: 1.9.0.108
This commit is contained in:
@@ -23,6 +23,7 @@ RegionBossBuildCtrl._mapNodeConfig = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_OpenFilter"
|
||||
},
|
||||
imgFilterChoose = {},
|
||||
txt_srot_timeTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "RoguelikeBuild_Manage_SortTime"
|
||||
@@ -51,7 +52,8 @@ RegionBossBuildCtrl._mapNodeConfig = {
|
||||
}
|
||||
RegionBossBuildCtrl._mapEventConfig = {
|
||||
[EventId.UIHomeConfirm] = "OnEvent_BackHome",
|
||||
[EventId.UIBackConfirm] = "OnEvent_Back"
|
||||
[EventId.UIBackConfirm] = "OnEvent_Back",
|
||||
[EventId.FilterConfirm] = "OnEvent_RefreshByFilter"
|
||||
}
|
||||
local SortType = {Time = 1, Score = 2}
|
||||
local SortOrder = {Descending = true, Ascending = false}
|
||||
@@ -79,6 +81,8 @@ function RegionBossBuildCtrl:RefreshList()
|
||||
else
|
||||
self._mapNode.ExistContent:SetActive(true)
|
||||
end
|
||||
local isDirty = PlayerData.Filter:IsDirty(AllEnum.OptionType.Char)
|
||||
self._mapNode.imgFilterChoose:SetActive(isDirty)
|
||||
self.tbCurShow = self:FilterAndSortBuildData()
|
||||
if self.nType == AllEnum.RegionBossFormationType.InfinityTower then
|
||||
for i, v in pairs(self.tbCurShow) do
|
||||
@@ -190,7 +194,11 @@ function RegionBossBuildCtrl:FilterAndSortBuildData()
|
||||
if self.FilterPass ~= self.FilterUnpass and (not (not self.FilterPass or mapBuild.bPass) or self.FilterUnpass and mapBuild.bPass) then
|
||||
return
|
||||
end
|
||||
table.insert(ret, mapBuild)
|
||||
local nCharId = mapBuild.tbChar[1].nTid
|
||||
local isFilter = PlayerData.Filter:CheckFilterByChar(nCharId)
|
||||
if isFilter then
|
||||
table.insert(ret, mapBuild)
|
||||
end
|
||||
end
|
||||
for _, mapBuild in ipairs(self._tbAllBuild) do
|
||||
filterBuild(mapBuild)
|
||||
@@ -382,6 +390,10 @@ function RegionBossBuildCtrl:Awake()
|
||||
self.nSortype = SortType.Score
|
||||
self.nSortOrder = SortOrder.Descending
|
||||
self.nPanelState = PanelState.Normal
|
||||
self.mapCacheFilter = {}
|
||||
self.tbOption = {
|
||||
AllEnum.ChooseOption.Char_Element
|
||||
}
|
||||
self:InitSort()
|
||||
self.mapListItemCtrl = {}
|
||||
self.tbCoinRate = ConfigTable.GetConfigArray("StarTowerBuildTransformParas")
|
||||
@@ -405,6 +417,14 @@ function RegionBossBuildCtrl:OnEnable()
|
||||
if tbParam[4] ~= nil then
|
||||
self.Other = tbParam[4]
|
||||
end
|
||||
if next(self.mapCacheFilter) ~= nil then
|
||||
for fKey, data in pairs(self.mapCacheFilter) do
|
||||
for sKey, value in pairs(data) do
|
||||
PlayerData.Filter:SetCacheFilterByKey(fKey, sKey, value)
|
||||
end
|
||||
end
|
||||
PlayerData.Filter:SyncFilterByCache()
|
||||
end
|
||||
local GetDataCallback = function(tbBuildData, mapAllBuild)
|
||||
self._mapAllBuild = mapAllBuild
|
||||
self._tbAllBuild = clone(tbBuildData)
|
||||
@@ -443,6 +463,19 @@ function RegionBossBuildCtrl:OnDisable()
|
||||
self.mapListItemCtrl[nInstanceId] = nil
|
||||
end
|
||||
self.mapListItemCtrl = {}
|
||||
self.mapCacheFilter = {}
|
||||
for _, fKey in ipairs(self.tbOption) do
|
||||
if self.mapCacheFilter[fKey] == nil then
|
||||
self.mapCacheFilter[fKey] = {}
|
||||
end
|
||||
local data = PlayerData.Filter:GetCacheFilter(fKey)
|
||||
if data ~= nil then
|
||||
for sKey, value in pairs(data) do
|
||||
self.mapCacheFilter[fKey][sKey] = value
|
||||
end
|
||||
end
|
||||
end
|
||||
PlayerData.Filter:Reset(self.tbOption)
|
||||
end
|
||||
function RegionBossBuildCtrl:OnDestroy()
|
||||
end
|
||||
@@ -491,6 +524,7 @@ function RegionBossBuildCtrl:OnBtnClick_SortScore(btn)
|
||||
self:RefreshList()
|
||||
end
|
||||
function RegionBossBuildCtrl:OnBtnClick_OpenFilter(btn)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.FilterPopupPanel, self.tbOption)
|
||||
end
|
||||
function RegionBossBuildCtrl:OnBtnClick_Preview()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.BuildAttrPreview)
|
||||
@@ -510,4 +544,29 @@ function RegionBossBuildCtrl:OnEvent_Back(nPanelId)
|
||||
end
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.RogueBossBuildBrief)
|
||||
end
|
||||
function RegionBossBuildCtrl:OnEvent_RefreshByFilter()
|
||||
local bChange = false
|
||||
local tbTemp = clone(self.mapCacheFilter)
|
||||
self.mapCacheFilter = {}
|
||||
for _, fKey in ipairs(self.tbOption) do
|
||||
if self.mapCacheFilter[fKey] == nil then
|
||||
self.mapCacheFilter[fKey] = {}
|
||||
end
|
||||
local data = PlayerData.Filter:GetCacheFilter(fKey)
|
||||
if data ~= nil then
|
||||
if tbTemp[fKey] == nil then
|
||||
bChange = true
|
||||
end
|
||||
for sKey, value in pairs(data) do
|
||||
if not bChange and (tbTemp[fKey][sKey] == nil or tbTemp[fKey][sKey] ~= value) then
|
||||
bChange = true
|
||||
end
|
||||
self.mapCacheFilter[fKey][sKey] = value
|
||||
end
|
||||
end
|
||||
end
|
||||
if bChange then
|
||||
self:RefreshList()
|
||||
end
|
||||
end
|
||||
return RegionBossBuildCtrl
|
||||
|
||||
@@ -90,6 +90,9 @@ function RegionBossFormationCharCtrl:OnBtnClick_Select(btn)
|
||||
EventManager.Hit(EventId.OpenMessageBox, sTip)
|
||||
end
|
||||
function RegionBossFormationCharCtrl:OnBtnClick_Detail(btn)
|
||||
if self._panel.nLoadProcess ~= nil and self._panel.nLoadProcess > 1 then
|
||||
return
|
||||
end
|
||||
if self.tbTeamId ~= nil then
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.CharBgPanel, PanelId.CharInfo, self.nCharId, self.tbTeamId, false)
|
||||
end
|
||||
|
||||
@@ -197,6 +197,7 @@ function RegionBossFormationCtrl:LoadCharacter(nCharId, idx)
|
||||
if self._mapNode == nil then
|
||||
return
|
||||
end
|
||||
self._panel.nLoadProcess = self._panel.nLoadProcess - 1
|
||||
if 0 < idx then
|
||||
if self.mapCurModel[idx] ~= nil then
|
||||
NovaAPI.UnbindUIParallaxStageCameraControllerModel(self._mapNode.UIParallax3DStage, idx - 1)
|
||||
@@ -222,6 +223,7 @@ function RegionBossFormationCtrl:LoadCharacter(nCharId, idx)
|
||||
end
|
||||
end
|
||||
end
|
||||
self._panel.nLoadProcess = self._panel.nLoadProcess + 1
|
||||
self:LoadAssetAsync(sFullPath, typeof(GameObject), LoadModelCallback)
|
||||
end
|
||||
function RegionBossFormationCtrl:SetModelPos(nCharId, objModel, nPos)
|
||||
@@ -432,8 +434,10 @@ function RegionBossFormationCtrl:SwitchStoryType(bTrial)
|
||||
end
|
||||
end
|
||||
function RegionBossFormationCtrl:Awake()
|
||||
self._panel.nLoadProcess = 0
|
||||
end
|
||||
function RegionBossFormationCtrl:OnEnable()
|
||||
self._panel.nLoadProcess = 0
|
||||
self.bStartBattle = false
|
||||
local tbParam = self:GetPanelParam()
|
||||
self.nType = tbParam[1]
|
||||
@@ -692,12 +696,21 @@ end
|
||||
function RegionBossFormationCtrl:OnDestroy()
|
||||
end
|
||||
function RegionBossFormationCtrl:OnBtnClick_AddBuild()
|
||||
if self._panel.nLoadProcess ~= nil and self._panel.nLoadProcess > 1 then
|
||||
return
|
||||
end
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.RogueBossBuildBrief, self.nType, self.selLvId, 1, self.Other)
|
||||
end
|
||||
function RegionBossFormationCtrl:OnBtnClick_ChangeTeam()
|
||||
if self._panel.nLoadProcess ~= nil and self._panel.nLoadProcess > 1 then
|
||||
return
|
||||
end
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.RogueBossBuildBrief, self.nType, self.selLvId, 1, self.Other)
|
||||
end
|
||||
function RegionBossFormationCtrl:OnBtnClick_TeamDetails()
|
||||
if self._panel.nLoadProcess ~= nil and self._panel.nLoadProcess > 1 then
|
||||
return
|
||||
end
|
||||
local callback = function(mapData)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.StarTowerBuildDetail, mapData)
|
||||
end
|
||||
@@ -740,6 +753,9 @@ function RegionBossFormationCtrl:OnBtnClick_StorySwitch()
|
||||
self:Refresh()
|
||||
end
|
||||
function RegionBossFormationCtrl:OnBtnClick_Start(btn)
|
||||
if self._panel.nLoadProcess ~= nil and self._panel.nLoadProcess > 1 then
|
||||
return
|
||||
end
|
||||
if self.bStartBattle == true then
|
||||
return
|
||||
end
|
||||
@@ -786,6 +802,9 @@ function RegionBossFormationCtrl:OnBtnClick_Start(btn)
|
||||
NovaAPI.SetEntryLevelFade(true)
|
||||
end
|
||||
function RegionBossFormationCtrl:OnEvent_Back(nPanelId)
|
||||
if self._panel.nLoadProcess ~= nil and self._panel.nLoadProcess > 1 then
|
||||
return
|
||||
end
|
||||
if self._panel._nPanelId ~= nPanelId then
|
||||
return
|
||||
end
|
||||
@@ -799,6 +818,9 @@ function RegionBossFormationCtrl:OnEvent_Back(nPanelId)
|
||||
EventManager.Hit(EventId.SetTransition, 5, OpenCallback)
|
||||
end
|
||||
function RegionBossFormationCtrl:OnEvent_BackHome(nPanelId)
|
||||
if self._panel.nLoadProcess ~= nil and self._panel.nLoadProcess > 1 then
|
||||
return
|
||||
end
|
||||
if self._panel._nPanelId ~= nPanelId then
|
||||
return
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user