Hotfix - 2.0.0.144
EN: 2.0.0.144 CN: 2.0.0.143 JP: 2.0.0.146 KR: 2.0.0.151
This commit is contained in:
@@ -134,7 +134,7 @@ function InfinityTowerLevel:OnEvent_UnloadComplete()
|
||||
self.parent:EnterInfinityTowerAgainNext()
|
||||
end
|
||||
function InfinityTowerLevel:OnEvnet_Pause()
|
||||
EventManager.Hit("show_Infinity_Pause", self.lvRunTime, self.tbCharId)
|
||||
EventManager.Hit("show_Infinity_Pause", self.lvRunTime, self.tbCharId, self.tbCharTrialId)
|
||||
end
|
||||
function InfinityTowerLevel:OnEvent_AbandonBattle()
|
||||
self:OnEvent_InfinityTowerEnd(3)
|
||||
|
||||
@@ -112,7 +112,7 @@ function TraceHuntLevel:SetDiscInfo()
|
||||
end
|
||||
function TraceHuntLevel:OnEvent_Pause()
|
||||
if self.isCanPause then
|
||||
EventManager.Hit("OpenTraceHuntPause", self.LevelId, self.tbCharId, self.parent.bSelfBoss)
|
||||
EventManager.Hit("OpenTraceHuntPause", self.LevelId, self.tbCharId, self.parent.bSelfBoss, self.tbCharTrialId)
|
||||
end
|
||||
end
|
||||
function TraceHuntLevel:OnEvent_AbandonBattle()
|
||||
|
||||
@@ -45,8 +45,9 @@ function JumpUtil.JumpTo(jumpId, ...)
|
||||
local transitionOpenCallback = function()
|
||||
JumpUtil.DoJump(jumpId, table.unpack(args))
|
||||
end
|
||||
local nUseTransitionId = nTransitionId == 0 and 1 or nTransitionId
|
||||
if bNeedTransition then
|
||||
EventManager.Hit(EventId.SetTransition, nTransitionId, transitionOpenCallback, nTransitionType)
|
||||
EventManager.Hit(EventId.SetTransition, nUseTransitionId, transitionOpenCallback, nTransitionType)
|
||||
else
|
||||
transitionOpenCallback()
|
||||
end
|
||||
@@ -138,7 +139,7 @@ function JumpUtil.JumpCheckAndTransition(jumpId, callback, ...)
|
||||
end
|
||||
callback(true, false, 0)
|
||||
elseif nType == GameEnum.jumpType.InfinityTower then
|
||||
callback(true, true, 0)
|
||||
callback(true, true, 8)
|
||||
elseif nType == GameEnum.jumpType.Phone then
|
||||
local openCallback = function()
|
||||
callback(true, false, 0)
|
||||
|
||||
@@ -25,7 +25,7 @@ ReengagementBDPreviewItemCtrl._mapNodeConfig = {
|
||||
}
|
||||
ReengagementBDPreviewItemCtrl._mapEventConfig = {}
|
||||
function ReengagementBDPreviewItemCtrl:Refresh(nTrialBuildId)
|
||||
self.mapBuildData = PlayerData.Build:GetTrialBuild(nTrialBuildId)
|
||||
self.mapBuildData = PlayerData.Build:GetLimitedTrialBuild(nTrialBuildId)
|
||||
if self.mapBuildData == nil then
|
||||
self.gameObject:SetActive(false)
|
||||
return
|
||||
@@ -70,7 +70,7 @@ function ReengagementBDPreviewItemCtrl:OnClickItem()
|
||||
if self.mapBuildData == nil then
|
||||
return
|
||||
end
|
||||
self.mapBuildData = PlayerData.Build:GetTrialBuild(self.mapBuildData.nBuildId)
|
||||
self.mapBuildData = PlayerData.Build:GetLimitedTrialBuild(self.mapBuildData.nBuildId)
|
||||
if self.mapBuildData == nil then
|
||||
return
|
||||
end
|
||||
|
||||
@@ -233,7 +233,7 @@ end
|
||||
function ActivityLevelsInstancePauseCtrl:OnBtnClick_Char(btn, nIndex)
|
||||
end
|
||||
function ActivityLevelsInstancePauseCtrl:OnBtnClick_Skill(btn)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId)
|
||||
self._mapNode.ActionBar.gameObject:SetActive(false)
|
||||
end
|
||||
function ActivityLevelsInstancePauseCtrl:OnBtnClick_Settings(btn)
|
||||
|
||||
@@ -3999,7 +3999,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"Elena's so fired up. I'd better do my best to help her out.",
|
||||
"Alina's so fired up. I'd better do my best to help her out.",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -7464,7 +7464,7 @@ return {
|
||||
"vo_STm10_05_068",
|
||||
false,
|
||||
"",
|
||||
"That was also the name \"Alina Colossi\" was born into this world.",
|
||||
"That was also when the name \"Alina Colossi\" was born into this world.",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -948,7 +948,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"그래서…… 앞으로의 일 얘기인데, 마왕님 생각을 들려주지 않을래?",
|
||||
"그래서…… 앞으로의 일 얘기인데, ==PLAYER_NAME==의 생각을 들려주지 않을래?",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -1037,7 +1037,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"피킨을 궁지에 몰아붙인 그 멋진 추리는, 마왕님만이 할 수 있는 거야!",
|
||||
"피킨을 궁지에 몰아붙인 그 멋진 추리는, ==PLAYER_NAME==만이 할 수 있는 거야!",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -198,14 +198,14 @@ end
|
||||
function ChapterPauseCtrl:OnBtnClick_Char(btn, nIndex)
|
||||
end
|
||||
function ChapterPauseCtrl:OnBtnClick_Skill(btn)
|
||||
local tbCharId, tbTrial = {}, {}
|
||||
local tbCharId, mapCharTrialId = {}, {}
|
||||
for _, v in ipairs(self.tbChar) do
|
||||
table.insert(tbCharId, v.nTid)
|
||||
if v.nTrialId then
|
||||
table.insert(tbTrial, v.nTrialId)
|
||||
mapCharTrialId[v.nTid] = v.nTrialId
|
||||
end
|
||||
end
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, tbCharId, false, tbTrial)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, tbCharId, false, mapCharTrialId)
|
||||
self._mapNode.ActionBar.gameObject:SetActive(false)
|
||||
end
|
||||
function ChapterPauseCtrl:OnBtnClick_Settings(btn)
|
||||
|
||||
@@ -202,14 +202,14 @@ end
|
||||
function MainBattlePauseCtrl:OnBtnClick_Char(btn, nIndex)
|
||||
end
|
||||
function MainBattlePauseCtrl:OnBtnClick_Skill(btn)
|
||||
local tbCharId, tbTrial = {}, {}
|
||||
local tbCharId, mapCharTrialId = {}, {}
|
||||
for _, v in ipairs(self.tbChar) do
|
||||
table.insert(tbCharId, v.nTid)
|
||||
if v.nTrialId then
|
||||
table.insert(tbTrial, v.nTrialId)
|
||||
mapCharTrialId[v.nTid] = v.nTrialId
|
||||
end
|
||||
end
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, tbCharId, false, tbTrial)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, tbCharId, false, mapCharTrialId)
|
||||
self._mapNode.ActionBar.gameObject:SetActive(false)
|
||||
end
|
||||
function MainBattlePauseCtrl:OnBtnClick_Settings(btn)
|
||||
|
||||
@@ -177,20 +177,20 @@ function PopupSkillCtrl:OnEnable()
|
||||
local tbParam = self:GetPanelParam()
|
||||
self.tbChar = tbParam[1]
|
||||
local bNoMask = tbParam[2]
|
||||
local tbTrialId = tbParam[3]
|
||||
local mapCharTrialId = tbParam[3]
|
||||
self.mapCharInfo = tbParam[4]
|
||||
local nSelectCharId = tbParam[5]
|
||||
self.bOutBattle = tbParam[6]
|
||||
self._mapNode.aniBlur.gameObject:SetActive(not bNoMask)
|
||||
self._mapNode.aniBlur2.gameObject:SetActive(bNoMask)
|
||||
self.mapCharSkill = {}
|
||||
local bTrial = tbTrialId and 0 < #tbTrialId
|
||||
for k, nCharId in ipairs(self.tbChar) do
|
||||
for _, nCharId in ipairs(self.tbChar) do
|
||||
local mapChar = self.mapCharInfo and self.mapCharInfo[nCharId]
|
||||
local nTrialId = mapCharTrialId and mapCharTrialId[nCharId]
|
||||
if mapChar and mapChar.tbSkillAddedLvs then
|
||||
self.mapCharSkill[nCharId] = clone(mapChar.tbSkillAddedLvs)
|
||||
elseif bTrial then
|
||||
self.mapCharSkill[nCharId] = PlayerData.Char:GetTrialCharSkillAddedLevel(tbTrialId[k])
|
||||
elseif type(nTrialId) == "number" and 0 < nTrialId then
|
||||
self.mapCharSkill[nCharId] = PlayerData.Char:GetAnyTrialCharSkillAddedLevel(nTrialId)
|
||||
elseif self.mapCharInfo == nil or next(self.mapCharInfo) == nil then
|
||||
self.mapCharSkill[nCharId] = PlayerData.Char:GetCharSkillAddedLevel(nCharId)
|
||||
else
|
||||
|
||||
@@ -231,7 +231,7 @@ end
|
||||
function DailyInstancePauseCtrl:OnBtnClick_Char(btn, nIndex)
|
||||
end
|
||||
function DailyInstancePauseCtrl:OnBtnClick_Skill(btn)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId)
|
||||
self._mapNode.ActionBar.gameObject:SetActive(false)
|
||||
end
|
||||
function DailyInstancePauseCtrl:OnBtnClick_Settings(btn)
|
||||
|
||||
@@ -242,20 +242,16 @@ function DormSelectCharCtrl:FilterChar()
|
||||
self.tbSortedChar = {}
|
||||
for _, data in pairs(self.tbAllChar) do
|
||||
local mapCharCfgData = ConfigTable.GetData_Character(data.nId)
|
||||
local mapDormCharCfgData = ConfigTable.GetData("DormRole", data.nId, false)
|
||||
local mapDormCharCfgData = ConfigTable.GetData("DormRole", data.nId, true)
|
||||
local bAvailable = mapCharCfgData.Available and mapDormCharCfgData ~= nil
|
||||
if bAvailable then
|
||||
local isFilter = PlayerData.Filter:CheckFilterByChar(data.nId)
|
||||
local bCur = table.indexof(self.curChar, data.nId) > 0
|
||||
if isFilter or bCur then
|
||||
local mapSkill = PlayerData.Char:GetCharSkillUpgradeData(data.nId)
|
||||
local nSkillLevelSum = 0
|
||||
for k, v in pairs(mapSkill) do
|
||||
nSkillLevelSum = nSkillLevelSum + v.nLv
|
||||
end
|
||||
data.SkillLevel = nSkillLevelSum
|
||||
table.insert(self.tbSortedChar, data)
|
||||
local mapSkill = PlayerData.Char:GetCharSkillUpgradeData(data.nId)
|
||||
local nSkillLevelSum = 0
|
||||
for k, v in pairs(mapSkill) do
|
||||
nSkillLevelSum = nSkillLevelSum + v.nLv
|
||||
end
|
||||
data.SkillLevel = nSkillLevelSum
|
||||
table.insert(self.tbSortedChar, data)
|
||||
end
|
||||
end
|
||||
print("过滤后 charCount:" .. #self.tbSortedChar)
|
||||
|
||||
@@ -155,8 +155,27 @@ function DormContactBtnListCtrl:RemoveRewardHud(nEntityId, nFurId)
|
||||
removedIdx = nIdx
|
||||
end
|
||||
end
|
||||
local removedInfo = table.remove(self.mapListBtn[nEntityId], removedIdx)
|
||||
self:RecycleBtnItem(removedInfo.goItem)
|
||||
if 0 < removedIdx then
|
||||
local removedInfo = table.remove(self.mapListBtn[nEntityId], removedIdx)
|
||||
self:RecycleBtnItem(removedInfo.goItem)
|
||||
end
|
||||
end
|
||||
function DormContactBtnListCtrl:RemoveAllRewardHud()
|
||||
if self.mapListBtn == nil then
|
||||
return
|
||||
end
|
||||
for _, tbBtnInfo in pairs(self.mapListBtn) do
|
||||
local removedIdx = 0
|
||||
for nIdx, mapInfo in ipairs(tbBtnInfo) do
|
||||
if mapInfo.nType == 4 then
|
||||
removedIdx = nIdx
|
||||
end
|
||||
end
|
||||
if 0 < removedIdx then
|
||||
local removedInfo = table.remove(tbBtnInfo, removedIdx)
|
||||
self:RecycleBtnItem(removedInfo.goItem)
|
||||
end
|
||||
end
|
||||
end
|
||||
function DormContactBtnListCtrl:RemoveInteractiveBtn(nEntityId)
|
||||
if self.mapListBtn[nEntityId] ~= nil then
|
||||
|
||||
@@ -24,7 +24,7 @@ DormFriendGridCtrl._mapNodeConfig = {
|
||||
imgHead = {sComponentName = "Image"},
|
||||
TMPBtnVisit = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "DormBtn_Visit"
|
||||
sLanguageId = "DormFriend_Visit"
|
||||
}
|
||||
}
|
||||
DormFriendGridCtrl._mapEventConfig = {}
|
||||
|
||||
@@ -597,6 +597,7 @@ function DormInteractiveCtrl:OnBtnClick_ReceiveDormReward()
|
||||
local afterIds = self._panel:GetDormRewardId()
|
||||
self._mapNode.rtGiftHint:SetActive(0 < #afterIds)
|
||||
self:CheckRewardFurnitureHuds()
|
||||
self._mapNode.rtContact:RemoveAllRewardHud()
|
||||
UTILS.OpenReceiveByChangeInfo(changeInfo)
|
||||
DormGuideAdapter.NoteQuest(nil, true)
|
||||
end
|
||||
|
||||
@@ -6,15 +6,9 @@ DormRoomGridCtrl._mapNodeConfig = {
|
||||
imgNameBg = {},
|
||||
imgLock = {},
|
||||
TMPRoomName = {sComponentName = "TMP_Text"},
|
||||
txtBtnGo = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "MainView_Go"
|
||||
},
|
||||
txtBtnGo = {sComponentName = "TMP_Text", sLanguageId = "Dorm_Go"},
|
||||
TMPRoomNotAvailable = {sComponentName = "TMP_Text"},
|
||||
txtBtnGoGray = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "MainView_Go"
|
||||
},
|
||||
txtBtnGoGray = {sComponentName = "TMP_Text", sLanguageId = "Dorm_Go"},
|
||||
btnGo = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Go"
|
||||
|
||||
@@ -96,10 +96,7 @@ function DormMusicSelectCtrl:FilterDisc()
|
||||
for _, data in pairs(self.tbAllDisc) do
|
||||
local mapCfg = ConfigTable.GetData("Disc", data.nId)
|
||||
if mapCfg.Visible then
|
||||
local isFilter = PlayerData.Filter:CheckFilterByDisc(data.nId)
|
||||
if isFilter then
|
||||
table.insert(self.tbSortedDisc, data)
|
||||
end
|
||||
table.insert(self.tbSortedDisc, data)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -236,7 +236,7 @@ end
|
||||
function EquipmentInstancePauseCtrl:OnBtnClick_Char(btn, nIndex)
|
||||
end
|
||||
function EquipmentInstancePauseCtrl:OnBtnClick_Skill(btn)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId)
|
||||
self._mapNode.ActionBar.gameObject:SetActive(false)
|
||||
end
|
||||
function EquipmentInstancePauseCtrl:OnBtnClick_Settings(btn)
|
||||
|
||||
@@ -668,7 +668,11 @@ function GachaCtrl:GachaOneExchangeCoin(mapGacha)
|
||||
else
|
||||
sTips = orderedFormat(ConfigTable.GetUIText("Recruit_Exchange"), nNeedCount, mapCostCfgData.Id, mapGachaStorage.DefaultQty - nDefaultCount, mapDefaultCfgData.Id)
|
||||
end
|
||||
ConfirmPanel(sTips, confirmCallback, "GachaShowTicketExchange")
|
||||
local tips = "GachaShowTicketExchange"
|
||||
if mapGacha.Id == 1001 then
|
||||
tips = nil
|
||||
end
|
||||
ConfirmPanel(sTips, confirmCallback, tips)
|
||||
else
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("NotEnoughItem"))
|
||||
end
|
||||
@@ -786,7 +790,11 @@ function GachaCtrl:GachaTenExchangeCoin(mapGacha)
|
||||
else
|
||||
sTips = orderedFormat(ConfigTable.GetUIText("Recruit_Exchange"), nNeedCount, mapCostCfgData.Id, mapGachaStorage.DefaultQty * 10 - nSpecificCount - nDefaultCount, mapDefaultCfgData.Id)
|
||||
end
|
||||
ConfirmPanel(sTips, confirmCallback, "GachaShowTicketExchange")
|
||||
local tips = "GachaShowTicketExchange"
|
||||
if mapGacha.Id == 1001 then
|
||||
tips = nil
|
||||
end
|
||||
ConfirmPanel(sTips, confirmCallback, tips)
|
||||
else
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("NotEnoughItem"))
|
||||
end
|
||||
|
||||
@@ -124,8 +124,9 @@ function InfinityTowerPauseCtrl:OnDestroy()
|
||||
end
|
||||
function InfinityTowerPauseCtrl:OnRelease()
|
||||
end
|
||||
function InfinityTowerPauseCtrl:OnEvent_ShowInfinityPause(runTime, tbChar)
|
||||
function InfinityTowerPauseCtrl:OnEvent_ShowInfinityPause(runTime, tbChar, mapCharTrialId)
|
||||
self.tbChar = tbChar
|
||||
self._mapCharTrialId = mapCharTrialId
|
||||
EventManager.Hit(EventId.BattleDashboardVisible, false)
|
||||
PanelManager.InputDisable()
|
||||
local lvId = PlayerData.InfinityTower:GetCurrentLv()
|
||||
@@ -341,7 +342,7 @@ function InfinityTowerPauseCtrl:OnPanelClose(_, bGiveUp)
|
||||
end
|
||||
end
|
||||
function InfinityTowerPauseCtrl:OnBtnClick_Skill(btn)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, true)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, true, self._mapCharTrialId)
|
||||
self._mapNode.ActionBar.gameObject:SetActive(false)
|
||||
end
|
||||
function InfinityTowerPauseCtrl:OnBtnClick_Settings(btn)
|
||||
|
||||
@@ -227,7 +227,7 @@ function MainlineEx_DustDawnStoryCtrl:RefreshStoryList()
|
||||
if recentStoryId ~= 0 then
|
||||
for i = 1, #self.tbChapterStoryNumIds do
|
||||
if self.tbChapterStoryNumIds[i] == recentStoryId then
|
||||
self:AddTimer(1, 0.1, function()
|
||||
self:AddTimer(1, 0.01, function()
|
||||
local time = self.bInit and 0 or self.nScrollTime
|
||||
self._mapNode.svStory:SetScrollGridPos(i, time, 0)
|
||||
self.bInit = true
|
||||
|
||||
@@ -277,7 +277,7 @@ end
|
||||
function RegionBossPauseCtrl:OnBtnClick_Char(btn, nIndex)
|
||||
end
|
||||
function RegionBossPauseCtrl:OnBtnClick_Skill(btn)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId)
|
||||
self._mapNode.ActionBar.gameObject:SetActive(false)
|
||||
end
|
||||
function RegionBossPauseCtrl:OnBtnClick_Settings(btn)
|
||||
|
||||
@@ -236,7 +236,7 @@ end
|
||||
function SkillInstancePauseCtrl:OnBtnClick_Char(btn, nIndex)
|
||||
end
|
||||
function SkillInstancePauseCtrl:OnBtnClick_Skill(btn)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId)
|
||||
self._mapNode.ActionBar.gameObject:SetActive(false)
|
||||
end
|
||||
function SkillInstancePauseCtrl:OnBtnClick_Settings(btn)
|
||||
|
||||
@@ -1,64 +1,101 @@
|
||||
local SoldierCharCardItemCtrl = require("Game.UI.Soldier.Template.Character.SoldierCharCardItemCtrl")
|
||||
local SoldierRecommendCharItemCtrl = class("SoldierRecommendCharItemCtrl", SoldierCharCardItemCtrl)
|
||||
local SoldierRecommendCharItemCtrl = class("SoldierRecommendCharItemCtrl", BaseCtrl)
|
||||
local MAX_STAR = 5
|
||||
local SetActiveIfChanged = function(goNode, bActive)
|
||||
if goNode.activeSelf ~= bActive then
|
||||
goNode:SetActive(bActive)
|
||||
end
|
||||
end
|
||||
SoldierRecommendCharItemCtrl._mapNodeConfig = {
|
||||
btnItem = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnItemClick"
|
||||
},
|
||||
Star = {nCount = MAX_STAR},
|
||||
goChar = {},
|
||||
imgEmpty = {},
|
||||
imageIcon = {sComponentName = "Image"},
|
||||
imageRarity = {sComponentName = "Image"},
|
||||
img_Position = {sComponentName = "Image"}
|
||||
}
|
||||
SoldierRecommendCharItemCtrl._mapEventConfig = {}
|
||||
SoldierRecommendCharItemCtrl._mapRedDotConfig = {}
|
||||
function SoldierRecommendCharItemCtrl:Awake()
|
||||
SoldierCharCardItemCtrl.Awake(self)
|
||||
self._mapSpritePath = {}
|
||||
self._mapNode.animRoot.enabled = false
|
||||
local trAttribute = self._mapNode.goChar.transform:Find("imgAttribute")
|
||||
if trAttribute ~= nil then
|
||||
self._imgAttribute = trAttribute:GetComponent("Image")
|
||||
end
|
||||
local trAnimRoot = self._mapNode.btnItem.transform:Find("AnimRoot")
|
||||
if trAnimRoot ~= nil then
|
||||
local objAnimator = trAnimRoot:GetComponent("Animator")
|
||||
if objAnimator ~= nil then
|
||||
objAnimator.enabled = false
|
||||
end
|
||||
end
|
||||
end
|
||||
function SoldierRecommendCharItemCtrl:OnEnable()
|
||||
SoldierCharCardItemCtrl.OnEnable(self)
|
||||
self:SetAttribute(self._nRecommendPosition)
|
||||
end
|
||||
function SoldierRecommendCharItemCtrl:OnDisable()
|
||||
self.bActive = false
|
||||
end
|
||||
function SoldierRecommendCharItemCtrl:OnDestroy()
|
||||
SoldierCharCardItemCtrl.OnDestroy(self)
|
||||
self._mapSpritePath = nil
|
||||
self._imgAttribute = nil
|
||||
self._objClickCallback = nil
|
||||
self._fnClickCallback = nil
|
||||
end
|
||||
function SoldierRecommendCharItemCtrl:SetRecommendData(mapCharData, nPosition)
|
||||
self._nRecommendPosition = nPosition
|
||||
if mapCharData == nil or mapCharData.nId == nil or mapCharData.nId == 0 then
|
||||
self._nRecommendPosition = nil
|
||||
SoldierCharCardItemCtrl.SetItemData(self, nil)
|
||||
self.nCharId = nil
|
||||
self.bInSandland = false
|
||||
self._nRecommendStar = 0
|
||||
self:SetStar(0)
|
||||
self._nRecommendPosition = nil
|
||||
SetActiveIfChanged(self._mapNode.goChar, false)
|
||||
SetActiveIfChanged(self._mapNode.imgEmpty, true)
|
||||
self:SetAttribute(nil)
|
||||
self._mapNode.imgRecommend.gameObject:SetActive(false)
|
||||
self:SetLock(false)
|
||||
self:SetClickCallback(nil, nil)
|
||||
return
|
||||
end
|
||||
self._nRecommendStar = mapCharData.nStar or 0
|
||||
SetActiveIfChanged(self._mapNode.imgEmpty, false)
|
||||
SetActiveIfChanged(self._mapNode.goChar, true)
|
||||
if self.nCharId ~= mapCharData.nId then
|
||||
SoldierCharCardItemCtrl.SetItemData(self, mapCharData.nId)
|
||||
else
|
||||
self:SetStar(self._nRecommendStar)
|
||||
self.nCharId = mapCharData.nId
|
||||
self:SetCharConfig(mapCharData.nId)
|
||||
end
|
||||
self:SetStar(mapCharData.nStar or 0)
|
||||
self._nRecommendPosition = nPosition
|
||||
self:SetAttribute(nPosition)
|
||||
end
|
||||
function SoldierRecommendCharItemCtrl:SetCharConfig(nCharId)
|
||||
local mapCharConfig = ConfigTable.GetData("SoldierCharacter", nCharId)
|
||||
if mapCharConfig == nil then
|
||||
return
|
||||
end
|
||||
if mapCharConfig.Rarity ~= nil then
|
||||
self:SetPngSprite(self._mapNode.imageRarity, "Icon/SoldierOtherIcon/" .. AllEnum.SoldierChessRarityIcon[mapCharConfig.Rarity] .. AllEnum.SoldierChessIconSurfix.M)
|
||||
end
|
||||
local mapSkinConfig = ConfigTable.GetData("SoldierSkin", mapCharConfig.Skin)
|
||||
if mapSkinConfig ~= nil then
|
||||
self:SetPngSprite(self._mapNode.imageIcon, mapSkinConfig.Icon .. AllEnum.SoldierChessIconSurfix.M)
|
||||
end
|
||||
if mapCharConfig.Type ~= nil then
|
||||
local mapChessType = CacheTable.GetData("_SoldierChessType", mapCharConfig.Type)
|
||||
local sIcon = mapChessType ~= nil and mapChessType.Icon or ""
|
||||
self:SetPngSprite(self._mapNode.img_Position, "Icon/SoldierOtherIcon/" .. sIcon)
|
||||
end
|
||||
end
|
||||
function SoldierRecommendCharItemCtrl:SetStar(nStar)
|
||||
nStar = self._nRecommendStar or nStar or 0
|
||||
if self.nStar == nStar then
|
||||
return
|
||||
end
|
||||
self.nStar = nStar
|
||||
for nIndex = 1, self.MAX_STAR do
|
||||
local bActive = nIndex <= nStar
|
||||
for nIndex = 1, MAX_STAR do
|
||||
local goStar = self._mapNode.Star[nIndex]
|
||||
local goFxStar = self._mapNode.FxStar[nIndex]
|
||||
if goStar ~= nil and goStar.activeSelf ~= bActive then
|
||||
goStar:SetActive(bActive)
|
||||
end
|
||||
if goFxStar ~= nil and goFxStar.activeSelf ~= bActive then
|
||||
goFxStar:SetActive(bActive)
|
||||
if goStar ~= nil then
|
||||
SetActiveIfChanged(goStar, nIndex <= nStar)
|
||||
end
|
||||
end
|
||||
end
|
||||
function SoldierRecommendCharItemCtrl:SetAttribute(nPosition)
|
||||
local imgAttribute = self._imgAttribute
|
||||
if imgAttribute == nil then
|
||||
return
|
||||
end
|
||||
local bUnlock = false
|
||||
local sIcon
|
||||
if nPosition ~= nil and 1 <= nPosition and nPosition <= 3 then
|
||||
@@ -69,14 +106,20 @@ function SoldierRecommendCharItemCtrl:SetAttribute(nPosition)
|
||||
sIcon = "Icon/SoldierOtherIcon/" .. mapConfig.Icon
|
||||
end
|
||||
end
|
||||
local imgAttribute = self._mapNode.imgAttribute
|
||||
if imgAttribute.gameObject.activeSelf ~= bUnlock then
|
||||
imgAttribute.gameObject:SetActive(bUnlock)
|
||||
end
|
||||
SetActiveIfChanged(imgAttribute.gameObject, bUnlock)
|
||||
if bUnlock then
|
||||
self:SetPngSprite(imgAttribute, sIcon)
|
||||
end
|
||||
end
|
||||
function SoldierRecommendCharItemCtrl:SetClickCallback(obj, fn)
|
||||
self._objClickCallback = obj
|
||||
self._fnClickCallback = fn
|
||||
end
|
||||
function SoldierRecommendCharItemCtrl:OnBtnItemClick()
|
||||
if self._fnClickCallback ~= nil and self.nCharId ~= nil then
|
||||
self._fnClickCallback(self._objClickCallback, self.nCharId)
|
||||
end
|
||||
end
|
||||
function SoldierRecommendCharItemCtrl:SetPngSprite(imgObj, sPath, sSurfix)
|
||||
if sSurfix ~= nil then
|
||||
return BaseCtrl.SetPngSprite(self, imgObj, sPath, sSurfix)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
local SoldierRecommendCtrl = class("SoldierRecommendCtrl", BaseCtrl)
|
||||
local SDKManager = CS.SDKManager.Instance
|
||||
local HIDE_CELL_POS_Y = 100000
|
||||
SoldierRecommendCtrl._mapNodeConfig = {
|
||||
Topbar = {
|
||||
sNodeName = "TopBarPanel",
|
||||
@@ -106,25 +107,40 @@ function SoldierRecommendCtrl:Awake()
|
||||
end
|
||||
function SoldierRecommendCtrl:OnEnable()
|
||||
self._bListActive = true
|
||||
self._bWaitingEnterAnim = true
|
||||
self:SetListInputBlocked(true)
|
||||
self._mapNode.btnHome.gameObject:SetActive(not self.bInSoldier)
|
||||
self:RefreshListHeader()
|
||||
local canvas = self.gameObject:GetComponent("Canvas")
|
||||
NovaAPI.SetCanvasSortingOrder(canvas, self._nSortingOrder + 1)
|
||||
local bNewCache = self._tbListCache == nil
|
||||
if bNewCache then
|
||||
self.tbRecommendCellCtrl = {}
|
||||
self.tbRecommendData = {}
|
||||
self._tbListCache = {}
|
||||
self._tbCellPool = {}
|
||||
self._tbSlotIndex = {}
|
||||
self._nPoolSize = nil
|
||||
self._nVisibleListState = nil
|
||||
end
|
||||
local svList = self._mapNode.sv_recommend
|
||||
self._svRecommend = svList
|
||||
self._goRecommendTemplate = svList.transform:Find("grid").gameObject
|
||||
self._goRecommendTemplate:SetActive(false)
|
||||
self._rtRecommendContent = svList.content
|
||||
self._objRecommendLayout = self._rtRecommendContent:GetComponent("GridLayoutGroup")
|
||||
self._objRecommendLayout.enabled = false
|
||||
local objLayout = self._objRecommendLayout
|
||||
self._v2CellSize = objLayout.cellSize
|
||||
self._nCellLeft = objLayout.padding.left
|
||||
self._nCellTop = objLayout.padding.top
|
||||
self._nCellBottom = objLayout.padding.bottom
|
||||
self._nCellSpacing = objLayout.spacing.y
|
||||
self._nCellStep = self._v2CellSize.y + self._nCellSpacing
|
||||
if not self._bScrollListening then
|
||||
self._fnOnListScroll = self._fnOnListScroll or function()
|
||||
self:OnListScroll()
|
||||
end
|
||||
svList.onValueChanged:AddListener(self._fnOnListScroll)
|
||||
self._bScrollListening = true
|
||||
end
|
||||
local objFitter = self._rtRecommendContent:GetComponent("ContentSizeFitter")
|
||||
if objFitter ~= nil then
|
||||
objFitter.enabled = false
|
||||
@@ -132,9 +148,6 @@ function SoldierRecommendCtrl:OnEnable()
|
||||
self._rtRecommendContent.pivot = Vector2(0, 1)
|
||||
self._rtRecommendContent.anchorMin = Vector2(0, 1)
|
||||
self._rtRecommendContent.anchorMax = Vector2(1, 1)
|
||||
self._rtRecommendContent.gameObject:SetActive(false)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtNoRcmd, ConfigTable.GetUIText("Soldier_Recommend_Loading"))
|
||||
self._mapNode.rtEmpty.gameObject:SetActive(true)
|
||||
EventManager.Hit("SoldierRecommendPanel_Open")
|
||||
self._mapNode.goImport:SetActive(false)
|
||||
local tbListCache = self._tbListCache
|
||||
@@ -145,28 +158,10 @@ function SoldierRecommendCtrl:OnEnable()
|
||||
end
|
||||
end)
|
||||
end
|
||||
if tbListCache[1] ~= nil and tbListCache[1].bLoaded and tbListCache[2] ~= nil and tbListCache[2].bLoaded then
|
||||
self:ShowRecommendList()
|
||||
end
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
if not self._bListActive then
|
||||
return
|
||||
end
|
||||
while self._bListActive and self.animator ~= nil and self.animator.isActiveAndEnabled do
|
||||
local objState = self.animator:GetCurrentAnimatorStateInfo(0)
|
||||
if not objState:IsName("SoldierRecommendPanel_in") or objState.normalizedTime >= 1 then
|
||||
break
|
||||
end
|
||||
coroutine.yield(nil)
|
||||
end
|
||||
if not self._bListActive then
|
||||
return
|
||||
end
|
||||
self._bWaitingEnterAnim = false
|
||||
self:RefreshRecommendList()
|
||||
end
|
||||
self._coOpenList = cs_coroutine.start(wait)
|
||||
self:RefreshRecommendList()
|
||||
self:AddTimer(1, 0, function()
|
||||
self:OnListScroll()
|
||||
end, true, true, true)
|
||||
end
|
||||
function SoldierRecommendCtrl:OnPreExit()
|
||||
if self._bListActive and self._nVisibleListState ~= nil then
|
||||
@@ -175,25 +170,11 @@ function SoldierRecommendCtrl:OnPreExit()
|
||||
mapCache.v2Size = self._rtRecommendContent.sizeDelta
|
||||
end
|
||||
self._bListActive = false
|
||||
self._bWaitingEnterAnim = false
|
||||
if self._coOpenList ~= nil then
|
||||
cs_coroutine.stop(self._coOpenList)
|
||||
self._coOpenList = nil
|
||||
end
|
||||
self:StopListLoading()
|
||||
self:SetListInputBlocked(false)
|
||||
end
|
||||
function SoldierRecommendCtrl:SetListInputBlocked(bBlocked)
|
||||
if self._bListInputBlocked == true == bBlocked then
|
||||
return
|
||||
end
|
||||
self._bListInputBlocked = bBlocked
|
||||
EventManager.Hit(EventId.BlockInput, bBlocked)
|
||||
end
|
||||
function SoldierRecommendCtrl:StopListLoading()
|
||||
if self._coLoadList ~= nil then
|
||||
cs_coroutine.stop(self._coLoadList)
|
||||
self._coLoadList = nil
|
||||
if self._bScrollListening then
|
||||
self._bScrollListening = false
|
||||
if self._svRecommend ~= nil and not self._svRecommend:IsNull() then
|
||||
self._svRecommend.onValueChanged:RemoveListener(self._fnOnListScroll)
|
||||
end
|
||||
end
|
||||
end
|
||||
function SoldierRecommendCtrl:OnDisable()
|
||||
@@ -207,8 +188,11 @@ end
|
||||
function SoldierRecommendCtrl:ClearListCache()
|
||||
self._tbListCache = nil
|
||||
self._nVisibleListState = nil
|
||||
self.tbRecommendCellCtrl = nil
|
||||
self._tbCellPool = nil
|
||||
self._tbSlotIndex = nil
|
||||
self._nPoolSize = nil
|
||||
self.tbRecommendData = nil
|
||||
self._svRecommend = nil
|
||||
self._goRecommendTemplate = nil
|
||||
self._rtRecommendContent = nil
|
||||
self._objRecommendLayout = nil
|
||||
@@ -232,102 +216,129 @@ function SoldierRecommendCtrl:RefreshRecommendList()
|
||||
return
|
||||
end
|
||||
self:RefreshListHeader()
|
||||
if self._bWaitingEnterAnim then
|
||||
return
|
||||
end
|
||||
local tbSources = {
|
||||
PlayerData.SoldierData:GetSystemRecommendList(),
|
||||
PlayerData.SoldierData:GetCollectRecommendList()
|
||||
}
|
||||
local tbPending = {}
|
||||
local mapPrevious = self._tbListCache[self._nVisibleListState]
|
||||
if mapPrevious ~= nil then
|
||||
mapPrevious.v2Position = self._rtRecommendContent.anchoredPosition
|
||||
end
|
||||
local bChanged = false
|
||||
for nState = 1, 2 do
|
||||
local mapCache = self._tbListCache[nState]
|
||||
if mapCache == nil then
|
||||
mapCache = {
|
||||
tbCellCtrl = {},
|
||||
tbData = {}
|
||||
}
|
||||
self._tbListCache[nState] = mapCache
|
||||
end
|
||||
if not mapCache.bLoaded or mapCache.tbSource ~= tbSources[nState] then
|
||||
table.insert(tbPending, nState)
|
||||
self:LoadRecommendList(mapCache, tbSources[nState])
|
||||
bChanged = true
|
||||
end
|
||||
end
|
||||
if #tbPending == 0 and self._nVisibleListState == self.nListState then
|
||||
self:SetListInputBlocked(false)
|
||||
if not bChanged and self._nVisibleListState == self.nListState then
|
||||
return
|
||||
end
|
||||
self:StopListLoading()
|
||||
self._mapNode.sv_recommend:StopMovement()
|
||||
local mapPrevious = self._tbListCache[self._nVisibleListState]
|
||||
if mapPrevious ~= nil then
|
||||
mapPrevious.v2Position = self._rtRecommendContent.anchoredPosition
|
||||
mapPrevious.v2Size = self._rtRecommendContent.sizeDelta
|
||||
end
|
||||
self._rtRecommendContent.gameObject:SetActive(false)
|
||||
if #tbPending == 0 then
|
||||
self:ShowRecommendList()
|
||||
self:SetListInputBlocked(false)
|
||||
return
|
||||
end
|
||||
self:SetListInputBlocked(true)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtNoRcmd, ConfigTable.GetUIText("Soldier_Recommend_Loading"))
|
||||
self._mapNode.rtEmpty.gameObject:SetActive(true)
|
||||
self._coLoadList = cs_coroutine.start(function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
coroutine.yield(nil)
|
||||
if not self._bListActive then
|
||||
self:SetListInputBlocked(false)
|
||||
return
|
||||
end
|
||||
local bSuccess, sError = pcall(function()
|
||||
for _, nState in ipairs(tbPending) do
|
||||
self:LoadRecommendList(self._tbListCache[nState], tbSources[nState])
|
||||
end
|
||||
self:ShowRecommendList()
|
||||
end)
|
||||
self._coLoadList = nil
|
||||
self:SetListInputBlocked(false)
|
||||
if not bSuccess then
|
||||
printError(sError)
|
||||
end
|
||||
end)
|
||||
self._svRecommend:StopMovement()
|
||||
self:ShowRecommendList()
|
||||
end
|
||||
function SoldierRecommendCtrl:ShowRecommendList()
|
||||
local mapCache = self._tbListCache[self.nListState]
|
||||
for nState, mapTabCache in pairs(self._tbListCache) do
|
||||
for nIndex, objCell in ipairs(mapTabCache.tbCellCtrl) do
|
||||
local bActive = nState == self.nListState and nIndex <= #mapTabCache.tbData
|
||||
if objCell.gameObject.activeSelf ~= bActive then
|
||||
objCell.gameObject:SetActive(bActive)
|
||||
end
|
||||
end
|
||||
end
|
||||
self._nVisibleListState = self.nListState
|
||||
self.tbRecommendCellCtrl = mapCache.tbCellCtrl
|
||||
self.tbRecommendData = mapCache.tbData
|
||||
self._rtRecommendContent.sizeDelta = mapCache.v2Size
|
||||
self._rtRecommendContent.anchoredPosition = mapCache.v2Position
|
||||
local bHasData = #mapCache.tbData > 0
|
||||
self._rtRecommendContent.gameObject:SetActive(bHasData)
|
||||
if not mapCache.bAnimationReady then
|
||||
for nIndex = 1, #mapCache.tbData do
|
||||
local objAnimator = mapCache.tbCellCtrl[nIndex].gameObject:GetComponent("Animator")
|
||||
if objAnimator ~= nil then
|
||||
objAnimator.enabled = true
|
||||
objAnimator:Play("go", 0, 1)
|
||||
objAnimator:Update(0)
|
||||
objAnimator.enabled = false
|
||||
if self._rtRecommendContent.gameObject.activeSelf ~= bHasData then
|
||||
self._rtRecommendContent.gameObject:SetActive(bHasData)
|
||||
end
|
||||
self:RefreshVisibleCells(true)
|
||||
self._mapNode.rtEmpty.gameObject:SetActive(not bHasData)
|
||||
end
|
||||
function SoldierRecommendCtrl:OnListScroll()
|
||||
if not self._bListActive or self._nVisibleListState == nil then
|
||||
return
|
||||
end
|
||||
self:RefreshVisibleCells(false)
|
||||
end
|
||||
function SoldierRecommendCtrl:GetCellPosition(nIndex)
|
||||
return Vector2(self._nCellLeft, -self._nCellTop - (nIndex - 1) * self._nCellStep)
|
||||
end
|
||||
function SoldierRecommendCtrl:CreateRecommendCell()
|
||||
local goItem = instantiate(self._goRecommendTemplate, self._rtRecommendContent)
|
||||
local rtItem = goItem:GetComponent("RectTransform")
|
||||
rtItem.pivot = Vector2(0, 1)
|
||||
rtItem.anchorMin = Vector2(0, 1)
|
||||
rtItem.anchorMax = Vector2(0, 1)
|
||||
rtItem.localScale = Vector3.one
|
||||
rtItem.sizeDelta = self._v2CellSize
|
||||
goItem:SetActive(true)
|
||||
local objCell = self._panel:BindRecommendCtrl(goItem, "Game.UI.Soldier.Recommend.SoldierRecommendCellCtrl")
|
||||
objCell._rtCell = rtItem
|
||||
objCell._nBindIndex = nil
|
||||
objCell._bAnimationReady = false
|
||||
return objCell
|
||||
end
|
||||
function SoldierRecommendCtrl:PrepareCellAnimator(objCell)
|
||||
if objCell._bAnimationReady or not objCell.gameObject.activeInHierarchy then
|
||||
return
|
||||
end
|
||||
local objAnimator = objCell.gameObject:GetComponent("Animator")
|
||||
if objAnimator ~= nil then
|
||||
objAnimator.enabled = true
|
||||
objAnimator:Play("go", 0, 1)
|
||||
objAnimator:Update(0)
|
||||
objAnimator.enabled = false
|
||||
end
|
||||
objCell._bAnimationReady = true
|
||||
end
|
||||
function SoldierRecommendCtrl:RefreshVisibleCells(bForce)
|
||||
local tbData = self.tbRecommendData
|
||||
local nCount = #tbData
|
||||
local rtViewport = self._svRecommend.viewport or self._svRecommend:GetComponent("RectTransform")
|
||||
local nPoolSize = math.max(1, math.ceil(rtViewport.rect.height / self._nCellStep)) + 2
|
||||
if self._nPoolSize == nil or nPoolSize > self._nPoolSize then
|
||||
self._nPoolSize = nPoolSize
|
||||
bForce = true
|
||||
else
|
||||
nPoolSize = self._nPoolSize
|
||||
end
|
||||
local nFirst = math.floor((self._rtRecommendContent.anchoredPosition.y - self._nCellTop) / self._nCellStep) + 1
|
||||
nFirst = math.max(1, math.min(nFirst, nCount - nPoolSize + 1))
|
||||
local nLast = math.min(nCount, nFirst + nPoolSize - 1)
|
||||
local tbSlotIndex = self._tbSlotIndex
|
||||
for nSlot = 1, nPoolSize do
|
||||
tbSlotIndex[nSlot] = nil
|
||||
end
|
||||
for nIndex = nFirst, nLast do
|
||||
tbSlotIndex[(nIndex - 1) % nPoolSize + 1] = nIndex
|
||||
end
|
||||
for nSlot = 1, nPoolSize do
|
||||
local nIndex = tbSlotIndex[nSlot]
|
||||
local objCell = self._tbCellPool[nSlot]
|
||||
if objCell == nil and nIndex ~= nil then
|
||||
objCell = self:CreateRecommendCell()
|
||||
self._tbCellPool[nSlot] = objCell
|
||||
end
|
||||
if objCell ~= nil and (bForce or objCell._nBindIndex ~= nIndex) then
|
||||
objCell._nBindIndex = nIndex
|
||||
if nIndex ~= nil then
|
||||
objCell:SetDetailCallback(self, nIndex)
|
||||
objCell:SetItemData(tbData[nIndex], self.bInSoldier)
|
||||
objCell._rtCell.anchoredPosition = self:GetCellPosition(nIndex)
|
||||
else
|
||||
objCell._rtCell.anchoredPosition = Vector2(self._nCellLeft, HIDE_CELL_POS_Y)
|
||||
end
|
||||
end
|
||||
mapCache.bAnimationReady = true
|
||||
if objCell ~= nil then
|
||||
self:PrepareCellAnimator(objCell)
|
||||
end
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.txtNoRcmd, ConfigTable.GetUIText("Soldier_Recommend_NoRcmd"))
|
||||
self._mapNode.rtEmpty.gameObject:SetActive(not bHasData)
|
||||
end
|
||||
function SoldierRecommendCtrl:LoadRecommendList(mapCache, tbSource)
|
||||
mapCache.bLoaded = false
|
||||
mapCache.bAnimationReady = false
|
||||
mapCache.tbData = {}
|
||||
for _, mapData in ipairs(tbSource or {}) do
|
||||
table.insert(mapCache.tbData, mapData)
|
||||
@@ -347,29 +358,8 @@ function SoldierRecommendCtrl:LoadRecommendList(mapCache, tbSource)
|
||||
return mapFirst.nRecommendId < mapSecond.nRecommendId
|
||||
end)
|
||||
end
|
||||
local objLayout = self._objRecommendLayout
|
||||
local v2CellSize = objLayout.cellSize
|
||||
local nSpacing = objLayout.spacing.y
|
||||
local nTop = objLayout.padding.top
|
||||
for nIndex, mapData in ipairs(mapCache.tbData) do
|
||||
local objCell = mapCache.tbCellCtrl[nIndex]
|
||||
if objCell == nil then
|
||||
local goItem = instantiate(self._goRecommendTemplate, self._rtRecommendContent)
|
||||
local rtItem = goItem:GetComponent("RectTransform")
|
||||
rtItem.pivot = Vector2(0, 1)
|
||||
rtItem.anchorMin = Vector2(0, 1)
|
||||
rtItem.anchorMax = Vector2(0, 1)
|
||||
rtItem.localScale = Vector3.one
|
||||
rtItem.sizeDelta = v2CellSize
|
||||
rtItem.anchoredPosition = Vector2(objLayout.padding.left, -nTop - (nIndex - 1) * (v2CellSize.y + nSpacing))
|
||||
objCell = self._panel:BindRecommendCtrl(goItem, "Game.UI.Soldier.Recommend.SoldierRecommendCellCtrl")
|
||||
mapCache.tbCellCtrl[nIndex] = objCell
|
||||
objCell:SetDetailCallback(self, nIndex)
|
||||
end
|
||||
objCell:SetItemData(mapData, self.bInSoldier)
|
||||
end
|
||||
local nCount = #mapCache.tbData
|
||||
mapCache.v2Size = Vector2(0, nTop + nCount * v2CellSize.y + math.max(0, nCount - 1) * nSpacing + objLayout.padding.bottom)
|
||||
mapCache.v2Size = Vector2(0, self._nCellTop + nCount * self._v2CellSize.y + math.max(0, nCount - 1) * self._nCellSpacing + self._nCellBottom)
|
||||
mapCache.v2Position = Vector2.zero
|
||||
mapCache.tbSource = tbSource
|
||||
mapCache.bLoaded = true
|
||||
|
||||
@@ -14,7 +14,7 @@ SoldierRecommendDetailCtrl._mapNodeConfig = {
|
||||
},
|
||||
MainChar = {
|
||||
nCount = 3,
|
||||
sCtrlName = "Game.UI.Soldier.Template.Character.SoldierCharSupportCardItemCtrl"
|
||||
sCtrlName = "Game.UI.Soldier.Recommend.SoldierRecommendCharItemCtrl"
|
||||
},
|
||||
sv_backChar = {
|
||||
sComponentName = "LoopScrollView"
|
||||
@@ -191,25 +191,17 @@ function SoldierRecommendDetailCtrl:OnBackCharRefreshGrid(goGrid, nGridIndex)
|
||||
local nInstanceId = goGrid:GetInstanceID()
|
||||
local objCharCard = self.mapBackCharCtrl[nInstanceId]
|
||||
if objCharCard == nil then
|
||||
objCharCard = self:BindCtrlByNode(goGrid, "Game.UI.Soldier.Template.Character.SoldierCharSupportCardItemCtrl")
|
||||
objCharCard = self:BindCtrlByNode(goGrid, "Game.UI.Soldier.Recommend.SoldierRecommendCharItemCtrl")
|
||||
self.mapBackCharCtrl[nInstanceId] = objCharCard
|
||||
end
|
||||
self:RefreshCharCard(objCharCard, self.tbBackCharData[nIndex])
|
||||
end
|
||||
function SoldierRecommendDetailCtrl:RefreshCharCard(objCharCard, mapCharData)
|
||||
objCharCard:_RemoveAllTimer()
|
||||
objCharCard.nStar = nil
|
||||
objCharCard:SetRecommendData(mapCharData, nil)
|
||||
if mapCharData == nil or mapCharData.nId == nil or mapCharData.nId == 0 then
|
||||
objCharCard:SetItemData(nil)
|
||||
objCharCard:SetStar(0)
|
||||
objCharCard:SetChessPosition(nil)
|
||||
objCharCard._mapNode.Fx_warrior.gameObject:SetActive(false)
|
||||
objCharCard:SetClickCallback(nil, nil)
|
||||
return
|
||||
end
|
||||
objCharCard:SetItemData(mapCharData.nId)
|
||||
objCharCard:SetStar(mapCharData.nStar)
|
||||
objCharCard.nStar = mapCharData.nStar or 0
|
||||
objCharCard:SetClickCallback(self, function()
|
||||
local mapChessData = {
|
||||
nId = mapCharData.nId,
|
||||
|
||||
@@ -341,6 +341,7 @@ end
|
||||
function StarTowerAutoDecisionSettingCtrl:Awake()
|
||||
self._mapNode.imgBlurredBg:SetActive(false)
|
||||
self._mapNode.goContentAnim:SetActive(false)
|
||||
self:RefreshPresetBase()
|
||||
end
|
||||
function StarTowerAutoDecisionSettingCtrl:OnEnable()
|
||||
self._bSettingActive = true
|
||||
@@ -368,7 +369,6 @@ function StarTowerAutoDecisionSettingCtrl:OnEnable()
|
||||
self:ShowPhoneTime()
|
||||
self:RefreshTokenValue()
|
||||
self:RefreshPresetList()
|
||||
self:RefreshPresetBase()
|
||||
self:RefreshPresetDetail()
|
||||
self:CacheOriginalServerProject()
|
||||
end
|
||||
|
||||
@@ -332,7 +332,12 @@ function TopBarCtrl:OnBtnClick_Home()
|
||||
if self.bEvent == true then
|
||||
EventManager.Hit(EventId.UIHomeConfirm, self._panel._nPanelId)
|
||||
else
|
||||
PanelManager.Home()
|
||||
local ModuleManager = require("GameCore.Module.ModuleManager")
|
||||
if ModuleManager.GetCurModuleName() == "DormModuleScene" then
|
||||
PlayerData.Base:GoHomeFromCurModule()
|
||||
else
|
||||
PanelManager.Home()
|
||||
end
|
||||
end
|
||||
end
|
||||
function TopBarCtrl:OnBtnClick_Help()
|
||||
|
||||
@@ -127,8 +127,9 @@ function TraceHuntPauseCtrl:Awake()
|
||||
end
|
||||
function TraceHuntPauseCtrl:OnDisable()
|
||||
end
|
||||
function TraceHuntPauseCtrl:Pause(nLevelId, tbCharId, bSelfBoss)
|
||||
function TraceHuntPauseCtrl:Pause(nLevelId, tbCharId, bSelfBoss, mapCharTrialId)
|
||||
self.tbChar = tbCharId
|
||||
self._mapCharTrialId = mapCharTrialId
|
||||
self.nLevelId = nLevelId
|
||||
self.bSelfBoss = bSelfBoss
|
||||
EventManager.Hit(EventId.BattleDashboardVisible, false)
|
||||
@@ -235,7 +236,7 @@ function TraceHuntPauseCtrl:OnBtnClick_Settings(btn)
|
||||
self._mapNode.ActionBar.gameObject:SetActive(false)
|
||||
end
|
||||
function TraceHuntPauseCtrl:OnBtnClick_Skill(btn)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId)
|
||||
self._mapNode.ActionBar.gameObject:SetActive(false)
|
||||
end
|
||||
function TraceHuntPauseCtrl:OnEvent_Reopen(sName)
|
||||
|
||||
@@ -239,7 +239,7 @@ end
|
||||
function TDPauseCtrl:OnBtnClick_Char(btn, nIndex)
|
||||
end
|
||||
function TDPauseCtrl:OnBtnClick_Skill(btn)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId)
|
||||
self._mapNode.ActionBar.gameObject:SetActive(false)
|
||||
end
|
||||
function TDPauseCtrl:OnBtnClick_Settings(btn)
|
||||
|
||||
@@ -217,7 +217,8 @@ function DepotCharInfoCtrl:OnBtnClick_Char(btn, nIndex)
|
||||
self:SwitchChar()
|
||||
end
|
||||
function DepotCharInfoCtrl:OnBtnClick_Skill(btn)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbTeam, false, {}, {}, self.nCharId)
|
||||
local mapCharData = self._panel._bTrialBuild and self.mapCharData or {}
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbTeam, false, {}, mapCharData, self.nCharId)
|
||||
end
|
||||
function DepotCharInfoCtrl:OnBtnClick_Detail()
|
||||
local HealthInfo = self.tbActorHealthInfo[self.nCharId]
|
||||
|
||||
@@ -245,7 +245,7 @@ function VampireSurvivorPauseCtrl:OnBtnClick_Char(btn, nIndex)
|
||||
end
|
||||
function VampireSurvivorPauseCtrl:OnBtnClick_Skill(btn)
|
||||
local mapCharData = self._panel._bTrialBuild and self._panel.mapCharData or nil
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, nil, mapCharData)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId or {}, mapCharData)
|
||||
self._mapNode.ActionBar.gameObject:SetActive(false)
|
||||
end
|
||||
function VampireSurvivorPauseCtrl:OnBtnClick_Settings(btn)
|
||||
|
||||
@@ -1094,7 +1094,7 @@ function AvgData:SendMsg_STORY_DONE(callBack, tbBattleEvents)
|
||||
if self.tbLastEndStoryIds ~= nil then
|
||||
for _, nLastEndStoryId in ipairs(self.tbLastEndStoryIds) do
|
||||
local mapLastEndStoryCfg = ConfigTable.GetData_Story(nLastEndStoryId)
|
||||
if mapLastEndStoryCfg ~= nil and 0 < table.indexof(self.tbTempStoryIds, mapLastEndStoryCfg.StoryId) then
|
||||
if mapLastEndStoryCfg ~= nil then
|
||||
self:SetLastEndState(nLastEndStoryId)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -855,6 +855,10 @@ function PlayerBuildData:SyncLimitedTrialBuildCache()
|
||||
end
|
||||
self:RefreshLimitedTrialBuildCache(tbTrialBuildId)
|
||||
end
|
||||
function PlayerBuildData:GetLimitedTrialBuild(nBuildId)
|
||||
self:SyncLimitedTrialBuildCache()
|
||||
return self._MapLimitedTrialBuildData[nBuildId]
|
||||
end
|
||||
function PlayerBuildData:GetActiveLimitedTrialBuilds(nType, bIncludeUnsupported)
|
||||
local tbRet = {}
|
||||
local mapRet = {}
|
||||
|
||||
@@ -738,6 +738,12 @@ function PlayerCharData:GetLimitedTrialCharSkillAddedLevel(nTrialId)
|
||||
end
|
||||
return tbSkillLevel
|
||||
end
|
||||
function PlayerCharData:GetAnyTrialCharSkillAddedLevel(nTrialId)
|
||||
if self._mapLimitedTrialChar[nTrialId] ~= nil then
|
||||
return self:GetLimitedTrialCharSkillAddedLevel(nTrialId)
|
||||
end
|
||||
return self:GetTrialCharSkillAddedLevel(nTrialId)
|
||||
end
|
||||
function PlayerCharData:GetCharPlotDataById(charId)
|
||||
return CacheTable.GetData("_Plot", charId)
|
||||
end
|
||||
|
||||
@@ -1371,7 +1371,8 @@ local BindProcessFunction = function()
|
||||
[NetMsgId.Id.clear_all_activity_mathParkour_levels_notify] = HttpNetHandlerPlus.clear_all_activity_mathParkour_levels_notify,
|
||||
[NetMsgId.Id.activity_mail_bind_reward_receive_succeed_ack] = HttpNetHandlerPlus.activity_mail_bind_reward_receive_succeed_ack,
|
||||
[NetMsgId.Id.activity_mail_bind_reward_receive_failed_ack] = NOTHING_NEED_TO_BE_DONE,
|
||||
[NetMsgId.Id.handbook_complete_notify] = HttpNetHandlerPlus.handbook_complete_notify
|
||||
[NetMsgId.Id.handbook_complete_notify] = HttpNetHandlerPlus.handbook_complete_notify,
|
||||
[NetMsgId.Id.guide_mission_state_notify] = HttpNetHandlerPlus.guide_mission_state_notify
|
||||
}
|
||||
end
|
||||
function HttpNetHandler.Init()
|
||||
|
||||
@@ -483,4 +483,7 @@ function HttpNetHandlerPlus.handbook_complete_notify(mapMsgData)
|
||||
PlayerData.Handbook:UpdateHandbook(v)
|
||||
end
|
||||
end
|
||||
function HttpNetHandlerPlus.guide_mission_state_notify(mapMsgData)
|
||||
RedDotManager.SetValid(RedDotDefine.GuideMission_Server, nil, mapMsgData.New)
|
||||
end
|
||||
return HttpNetHandlerPlus
|
||||
|
||||
Reference in New Issue
Block a user