Initial version - 1.2.0.60

EN: 1.2.0.60
CN: 1.2.0.61
JP: 1.2.0.63
KR: 1.2.0.67
This commit is contained in:
SL1900
2025-12-03 01:00:00 +09:00
commit 5e0d58cfad
3595 changed files with 9373562 additions and 0 deletions
@@ -0,0 +1,618 @@
local StarTowerLevelSelectCtrl = class("StarTowerLevelSelectCtrl", BaseCtrl)
local WwiseAudioMgr = CS.WwiseAudioManager.Instance
local mapToggle = {
[1] = GameEnum.diffculty.Diffculty_1,
[2] = GameEnum.diffculty.Diffculty_2,
[3] = GameEnum.diffculty.Diffculty_3,
[4] = GameEnum.diffculty.Diffculty_4,
[5] = GameEnum.diffculty.Diffculty_5,
[6] = GameEnum.diffculty.Diffculty_6,
[7] = GameEnum.diffculty.Diffculty_7
}
StarTowerLevelSelectCtrl._mapNodeConfig = {
bgLevelInfo = {sNodeName = "----Bg----"},
rt_StarTowerSelect = {},
rt_StarTowerInfo = {},
btnGo = {
sComponentName = "UIButton",
callback = "OnBtnClick_Go"
},
goBtnCoin = {},
imgCoinIcon = {sComponentName = "Image"},
svStarTower = {
sComponentName = "LoopScrollView"
},
imgElementInfo = {sComponentName = "Image", nCount = 3},
TMPStarTowerDesc = {sComponentName = "TMP_Text"},
TMPStarTowerName = {sComponentName = "TMP_Text"},
txtRecommendLevel = {sComponentName = "TMP_Text"},
ImgStarTowerInfo = {sComponentName = "Image"},
item = {
sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl",
nCount = 6
},
ItemBtn = {
sComponentName = "UIButton",
nCount = 6,
callback = "OnBtnClick_RewardItem"
},
tog = {
sComponentName = "UIButton",
nCount = 7,
callback = "OnBtnClick_Tog"
},
imgLockMask = {
sComponentName = "UIButton",
callback = "OnBtnClick_TogTips",
nCount = 7
},
rt_LockMsg = {nCount = 7},
txtLockCondition = {sComponentName = "TMP_Text", nCount = 7},
togCtrl = {
sNodeName = "tog",
sCtrlName = "Game.UI.TemplateEx.TemplateToggleCtrl",
nCount = 7
},
TopBarPanel = {
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
},
AnimCtrl = {
sComponentName = "Animator",
sNodeName = "----SafeAreaRoot----"
},
goEnemyInfo = {
sCtrlName = "Game.UI.MainlineEx.MainlineMonsterInfoCtrl"
},
goRewardList = {
sCtrlName = "Game.UI.MainlineEx.RewardListCtrl"
},
btnEnemyInfo = {
sComponentName = "UIButton",
callback = "OnBtnClick_EnemyInfo"
},
btnAllReward = {
sComponentName = "UIButton",
callback = "OnBtnClick_RewardList"
},
txtCoinCount = {sComponentName = "TMP_Text"},
txtTitle = {
sComponentName = "TMP_Text",
sLanguageId = "InfinityTower_Recommend_Lv"
},
goSweep = {
sNodeName = "---Sweep---"
},
btnSweep = {
sComponentName = "UIButton",
callback = "OnBtnClick_Sweep"
},
txtSweepBtn = {
sComponentName = "TMP_Text",
sLanguageId = "StarTower_Sweep_Btn"
},
goBtnSweepTickets = {},
SweepLockRoot = {},
txtSweepBtnLock = {sComponentName = "TMP_Text"},
imgTickets = {sComponentName = "Image", nCount = 2},
txtTicketsCount = {sComponentName = "TMP_Text", nCount = 2},
btnSweepTickets = {
sNodeName = "goSweepTickets",
sComponentName = "UIButton",
callback = "OnBtnClick_SweepTickets"
},
rt_ToggleContent = {
sComponentName = "RectTransform"
},
txtBtnEnemyInfo = {
sComponentName = "TMP_Text",
sLanguageId = "StarTower_Rank_Enemy_Info"
},
txtTitleReward = {
sComponentName = "TMP_Text",
sLanguageId = "Level_Award"
},
txtBtnAllReward = {
sComponentName = "TMP_Text",
sLanguageId = "FixedRoguelike_Depot_Btn_All"
},
txtBtnGo = {
sComponentName = "TMP_Text",
sLanguageId = "Maninline_Btn_Go"
},
ListConditions = {},
btnLock = {
sComponentName = "UIButton",
callback = "OnBtnClick_Lock"
},
txtBtnLock = {
sComponentName = "TMP_Text",
sLanguageId = "RegusBoss_SatisfyConditions_UnLock"
},
Conditions_ = {nCount = 3},
imgFirstPassIcon = {},
TMPFirstPassHint = {
sComponentName = "TMP_Text",
sLanguageId = "StarTower_FirstPassHint"
}
}
StarTowerLevelSelectCtrl._mapEventConfig = {
[EventId.UIHomeConfirm] = "OnEvent_Home",
[EventId.UIBackConfirm] = "OnEvent_Back",
[EventId.UpdateWorldClass] = "OnEvent_UpdateWorldClass",
[EventId.CoinResChange] = "OnEvent_RefreshRes"
}
StarTowerLevelSelectCtrl._mapRedDotConfig = {}
function StarTowerLevelSelectCtrl:Awake()
self.tbGridCtrl = {}
self.nTopBarId = self._mapNode.TopBarPanel.gameObject:GetInstanceID()
self:RefreshTogText()
end
function StarTowerLevelSelectCtrl:FadeIn()
end
function StarTowerLevelSelectCtrl:FadeOut()
end
function StarTowerLevelSelectCtrl:OnEnable()
local tbParam = self:GetPanelParam()
if 0 < #tbParam then
if tbParam[3] == nil then
end
self.bJumpto = tbParam[3]
self.nJumptoHard = tbParam[1] == nil and 0 or tbParam[1]
self.nJumptoGroup = tbParam[2] == nil and 0 or tbParam[2]
end
self._mapNode.rt_StarTowerSelect:SetActive(true)
self._mapNode.rt_StarTowerInfo:SetActive(false)
self._mapNode.bgLevelInfo:SetActive(false)
self._mapNode.goSweep.gameObject:SetActive(false)
self.curState = 1
self.curStarTowerHard = GameEnum.diffculty.Diffculty_1
self.nCurGroupId = 0
self.mapAllStarTower = {}
self.mapStarTowerGroup = {}
local forEachStarTower = function(mapData)
local nGroupId = mapData.GroupId
if nil == self.mapStarTowerGroup[nGroupId] then
local mapData = {}
mapData.nGroupId = nGroupId
table.insert(self.mapAllStarTower, mapData)
self.mapStarTowerGroup[nGroupId] = {}
end
self.mapStarTowerGroup[nGroupId][mapData.Difficulty] = mapData
end
ForEachTableLine(DataTable.StarTower, forEachStarTower)
table.sort(self.mapAllStarTower, function(a, b)
local groupCfgA = ConfigTable.GetData("StarTowerGroup", a.nGroupId)
local groupCfgB = ConfigTable.GetData("StarTowerGroup", b.nGroupId)
if groupCfgA == nil then
return false
end
if groupCfgB == nil then
return false
end
return groupCfgA.Sort < groupCfgB.Sort
end)
if self.nJumptoGroup ~= 0 and self.nJumptoGroup ~= nil then
if self.nJumptoHard ~= 0 and self.nJumptoHard ~= nil then
self:OpenJumptoHard()
else
self:OpenJumptoGroup()
end
self:AddTimer(1, 0.1, function()
EventManager.Hit("Guide_OpenStarTowerLevelGroup", self.nJumptoGroup)
end, true, true, true)
end
end
function StarTowerLevelSelectCtrl:OnDisable()
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
self:UnbindCtrlByNode(objCtrl)
self.tbGridCtrl[nInstanceId] = nil
end
self.tbGridCtrl = {}
end
function StarTowerLevelSelectCtrl:OnDestroy()
end
function StarTowerLevelSelectCtrl:OnRelease()
end
function StarTowerLevelSelectCtrl:RefreshTogText()
for k, v in pairs(mapToggle) do
local sTitle = ConfigTable.GetUIText("Diffculty_" .. k)
if sTitle == nil then
sTitle = "需要配置语言表Diffculty_" .. k
end
self._mapNode.togCtrl[k]:SetText(sTitle)
end
end
function StarTowerLevelSelectCtrl:RefreshLevelUnlock()
if self.nCurGroupId ~= 0 then
for index, hardBtn in ipairs(self._mapNode.tog) do
local bActive = self.mapStarTowerGroup[self.nCurGroupId][mapToggle[index]] ~= nil
hardBtn.gameObject:SetActive(bActive)
if bActive then
local nStarTowerId = self.mapStarTowerGroup[self.nCurGroupId][mapToggle[index]].Id
local bUnlock, _, param1, param2 = PlayerData.StarTower:IsStarTowerUnlock(nStarTowerId)
self._mapNode.imgLockMask[index].gameObject:SetActive(false)
self._mapNode.rt_LockMsg[index]:SetActive(not bUnlock)
if not bUnlock then
if param1 == 2 then
NovaAPI.SetTMPText(self._mapNode.txtLockCondition[index], orderedFormat(ConfigTable.GetUIText("RegusBoss_Unlock_LvHand"), param2))
else
NovaAPI.SetTMPText(self._mapNode.txtLockCondition[index], ConfigTable.GetUIText("Unlocked_By_PreLevel"))
end
end
end
end
end
end
function StarTowerLevelSelectCtrl:RefreshGrid(goGrid, gridIndex)
local nIndex = gridIndex + 1
local nInstanceID = goGrid:GetInstanceID()
if not self.tbGridCtrl[nInstanceID] then
self.tbGridCtrl[nInstanceID] = self:BindCtrlByNode(goGrid, "Game.UI.StarTowerLevelSelect.StarTowerGroupItemCtrl")
end
local mapGroupData = self.mapAllStarTower[nIndex]
self.tbGridCtrl[nInstanceID]:SetStarTowerGroup(mapGroupData)
if PlayerData.Guide:GetGuideState() and mapGroupData.nGroupId == 4 then
EventManager.Hit("StarTower_Grid_Name", goGrid.name)
end
end
function StarTowerLevelSelectCtrl:OpenJumptoGroup()
self.curState = 2
self._mapNode.AnimCtrl:Play("rougelikelevelselect_go_info")
self._mapNode.rt_StarTowerSelect:SetActive(false)
self._mapNode.rt_StarTowerInfo:SetActive(true)
self._mapNode.bgLevelInfo:SetActive(true)
self.nCurGroupId = self.nJumptoGroup
self:RefreshLevelUnlock()
self:RefreshStarTowerInfo(self.nCurGroupId, GameEnum.diffculty.Diffculty_1, true)
end
function StarTowerLevelSelectCtrl:OpenJumptoHard()
self.curState = 2
self._mapNode.AnimCtrl:Play("rougelikelevelselect_go_info")
self._mapNode.rt_StarTowerSelect:SetActive(false)
self._mapNode.rt_StarTowerInfo:SetActive(true)
self._mapNode.bgLevelInfo:SetActive(true)
self.nCurGroupId = self.nJumptoGroup
local nJumptoRoguelikeId = self.mapStarTowerGroup[self.nCurGroupId][self.nJumptoHard].Id
if not PlayerData.StarTower:IsStarTowerUnlock(nJumptoRoguelikeId) then
self.nJumptoHard = GameEnum.diffculty.Diffculty_1
end
self:RefreshLevelUnlock()
self:RefreshStarTowerInfo(self.nCurGroupId, self.nJumptoHard, true)
end
function StarTowerLevelSelectCtrl:OnBtnClick_Grid(goGrid, gridIndex)
local nIdx = gridIndex + 1
local mapData = self.mapAllStarTower[nIdx]
if mapData == nil then
return
end
local nGroupId = mapData.nGroupId
local mapStarTower = self.mapStarTowerGroup[nGroupId][GameEnum.diffculty.Diffculty_1]
local bGridUnlock, sTip = PlayerData.StarTower:IsStarTowerUnlock(mapStarTower.Id)
if not bGridUnlock then
if sTip == nil then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("LevelSelect_NotOpen"))
return
else
EventManager.Hit(EventId.OpenMessageBox, sTip)
return
end
end
self.curState = 2
self._mapNode.AnimCtrl:Play("rougelikelevelselect_go_info")
self._mapNode.rt_StarTowerSelect:SetActive(false)
self._mapNode.rt_StarTowerInfo:SetActive(true)
self._mapNode.bgLevelInfo:SetActive(true)
self.nCurGroupId = nGroupId
self._panel._tbParam[2] = nGroupId
local nHard = PlayerData.StarTower:GetMaxDifficult(self.nCurGroupId)
self:RefreshLevelUnlock()
self:RefreshStarTowerInfo(nGroupId, nHard, true)
end
function StarTowerLevelSelectCtrl:RefreshStarTowerInfo(nGroupId, nHard, bSetTog)
if bSetTog then
for k, v in ipairs(self._mapNode.togCtrl) do
v:SetDefault(k == nHard)
end
end
self.curStarTowerHard = nHard
self._panel._tbParam[1] = self.curStarTowerHard
local mapStarTower = self.mapStarTowerGroup[nGroupId][nHard]
self.curStarTowerId = mapStarTower.Id
if mapStarTower == nil then
return
end
NovaAPI.SetTMPText(self._mapNode.TMPStarTowerName, mapStarTower.Name)
NovaAPI.SetTMPText(self._mapNode.TMPStarTowerDesc, mapStarTower.Desc)
self:SetPngSprite(self._mapNode.ImgStarTowerInfo, mapStarTower.Image)
for i = 1, 3 do
if mapStarTower.EET == nil or mapStarTower.EET[i] == nil then
self._mapNode.imgElementInfo[i].gameObject:SetActive(false)
else
self._mapNode.imgElementInfo[i].gameObject:SetActive(true)
self:SetAtlasSprite(self._mapNode.imgElementInfo[i], "12_rare", AllEnum.ElementIconType.Icon .. mapStarTower.EET[i])
end
end
local bShowHint = PlayerData.StarTower:GetShowHintRewardReward(self.curStarTowerId)
local bFirstRewardReceive = PlayerData.StarTower:GetFirstPassReward(self.curStarTowerId)
self._mapNode.imgFirstPassIcon:SetActive(bShowHint)
local tbReward = decodeJson(mapStarTower.RewardPreview)
self.tbReward = tbReward
local nRewardPlusIdx = 0
for index = 1, 6 do
self._mapNode.item[index]:SetItem(nil)
self._mapNode.ItemBtn[index].interactable = false
end
for index = 1, 6 do
if tbReward[index] ~= nil then
if bFirstRewardReceive and tbReward[index][3] == 1 then
nRewardPlusIdx = nRewardPlusIdx + 1
else
self._mapNode.item[index - nRewardPlusIdx]:SetItem(tbReward[index][1], nil, tbReward[index][3] == 1 and tbReward[index][2] or nil, nil, false, tbReward[index][3] == 1, tbReward[index][3] == 2)
self._mapNode.ItemBtn[index - nRewardPlusIdx].interactable = true
end
end
end
NovaAPI.SetTMPText(self._mapNode.txtRecommendLevel, mapStarTower.Recommend)
self._mapNode.goBtnCoin.gameObject:SetActive(false)
local bUnlock, _, param1, param2 = PlayerData.StarTower:IsStarTowerUnlock(self.curStarTowerId)
if not bUnlock then
local mapStarTowerCfgData = ConfigTable.GetData("StarTower", self.curStarTowerId)
local tbCond = decodeJson(mapStarTowerCfgData.PreConditions)
for i = 1, 3 do
if tbCond[i] ~= nil then
local tbCondInfo = tbCond[i]
local sTip = ""
local isUnlock = true
if tbCondInfo[1] == 1 then
local nCondLevelId = tbCondInfo[2]
local mapStarTower = ConfigTable.GetData("StarTower", nCondLevelId)
if mapStarTower ~= nil then
sTip = orderedFormat(ConfigTable.GetUIText("Rogue_UnlockStarTower"), mapStarTower.Name)
end
if 1 > table.indexof(PlayerData.StarTower.tbPassedId, nCondLevelId) then
isUnlock = false
end
elseif tbCondInfo[1] == 2 then
local nWorldCalss = PlayerData.Base:GetWorldClass()
local nCondClass = tbCondInfo[2]
sTip = orderedFormat(ConfigTable.GetUIText("Rogue_UnlockWorldLv"), nCondClass)
if nWorldCalss < nCondClass then
isUnlock = false
end
elseif tbCondInfo[1] == 3 then
local nMainlineId = tbCondInfo[2]
local nStar = PlayerData.Mainline:GetMianlineLevelStar(nMainlineId)
local storyConfig = ConfigTable.GetData("Story", nMainlineId, "not have this story ID")
if storyConfig ~= nil then
sTip = orderedFormat(ConfigTable.GetUIText("Rogue_UnlockMainLine"), storyConfig.Title)
end
if nStar <= 0 then
isUnlock = false
end
elseif tbCondInfo[1] == 4 then
local nDifficulty = tbCondInfo[2]
local tbStarTower = CacheTable.GetData("_StarTowerDifficulty", nDifficulty)
sTip = orderedFormat(ConfigTable.GetUIText("Rogue_UnlockDifficulty"), nDifficulty - 1)
local _lock = false
for _, v in ipairs(tbStarTower) do
local nId = v.Id
if 1 <= table.indexof(PlayerData.StarTower.tbPassedId, nId) then
_lock = true
break
end
end
if not _lock then
isUnlock = false
end
end
local imgConditions_Lock = self._mapNode.Conditions_[i].transform:Find("imgConditions_Lock").gameObject
local imgConditions_UnLock = self._mapNode.Conditions_[i].transform:Find("imgConditions_UnLock").gameObject
local tex_ConditionsTips = self._mapNode.Conditions_[i].transform:Find("tex_ConditionsTips"):GetComponent("TMP_Text")
imgConditions_Lock:SetActive(not isUnlock)
imgConditions_UnLock:SetActive(isUnlock)
NovaAPI.SetTMPText(tex_ConditionsTips, sTip)
NovaAPI.SetTMPColor(tex_ConditionsTips, isUnlock and Color(0.3686274509803922, 0.5372549019607843, 0.7058823529411765) or Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764))
self._mapNode.Conditions_[i]:SetActive(true)
else
self._mapNode.Conditions_[i]:SetActive(false)
end
end
self._mapNode.ListConditions:SetActive(true)
self._mapNode.btnLock.gameObject:SetActive(true)
self._mapNode.btnGo.gameObject:SetActive(false)
self._mapNode.btnSweep.gameObject:SetActive(false)
else
self._mapNode.ListConditions:SetActive(false)
self._mapNode.btnLock.gameObject:SetActive(false)
self._mapNode.btnGo.gameObject:SetActive(true)
self._mapNode.btnSweep.gameObject:SetActive(true)
end
local callback = function()
self._mapNode.goSweep.gameObject:SetActive(true)
self:RefreshSweep()
end
PlayerData.StarTower:SendTowerGrowthDetailReq(callback)
end
function StarTowerLevelSelectCtrl:RefreshSweep()
if not PlayerData.Guide:CheckGuideFinishById(48) then
local tmpBAble = PlayerData.StarTower:CheckUnlockTowerSweep()
if tmpBAble then
local tmpCount = PlayerData.Item:GetItemCountByID(AllEnum.CoinItemId.StarTowerSweepTick) + PlayerData.Item:GetItemCountByID(AllEnum.CoinItemId.StarTowerSweepTickLimit)
if 1 <= tmpCount then
EventManager.Hit("Guide_PassiveCheck_Msg", "Guide_StarTowerSweep")
local wait = function()
coroutine.yield(CS.UnityEngine.WaitForSeconds(0.2))
EventManager.Hit("Guide_SelectTowerSweepHard", 1)
end
cs_coroutine.start(wait)
end
end
end
local bAble, _, sLockTip = PlayerData.StarTower:CheckCanSweep(self.nCurGroupId, self.curStarTowerId)
if bAble then
self._mapNode.txtSweepBtn.gameObject:SetActive(true)
self._mapNode.goBtnSweepTickets:SetActive(true)
self._mapNode.SweepLockRoot:SetActive(false)
else
self._mapNode.txtSweepBtn.gameObject:SetActive(false)
self._mapNode.goBtnSweepTickets:SetActive(false)
self._mapNode.SweepLockRoot:SetActive(true)
NovaAPI.SetTMPText(self._mapNode.txtSweepBtnLock, sLockTip)
end
self:RefreshSweepTicket()
end
function StarTowerLevelSelectCtrl:RefreshSweepTicket()
local ticketCount = PlayerData.Item:GetItemCountByID(AllEnum.CoinItemId.StarTowerSweepTick) + PlayerData.Item:GetItemCountByID(AllEnum.CoinItemId.StarTowerSweepTickLimit)
for i = 1, 2 do
self:SetSprite_Coin(self._mapNode.imgTickets[i], AllEnum.CoinItemId.StarTowerSweepTick)
NovaAPI.SetTMPColor(self._mapNode.txtTicketsCount[i], ticketCount < 1 and Red_Unable or Blue_Normal)
end
NovaAPI.SetTMPText(self._mapNode.txtTicketsCount[1], 1)
NovaAPI.SetTMPText(self._mapNode.txtTicketsCount[2], ticketCount)
end
function StarTowerLevelSelectCtrl:OnEvent_Back(nPanelId)
if self._panel._nPanelId ~= nPanelId then
return
end
if self.bJumpto then
EventManager.Hit(EventId.CloesCurPanel)
return
end
if self.curState == 1 then
EventManager.Hit(EventId.CloesCurPanel)
else
self._mapNode.AnimCtrl:Play("rougelikelevelselect_go_list")
self._mapNode.rt_StarTowerSelect:SetActive(true)
self._mapNode.rt_StarTowerInfo:SetActive(false)
self._mapNode.bgLevelInfo:SetActive(false)
self._mapNode.goSweep.gameObject:SetActive(false)
self.curStarTowerHard = GameEnum.diffculty.Diffculty_1
self.nCurGroupId = 0
self.curState = 1
self._panel._tbParam[1] = 0
self._panel._tbParam[2] = 0
self._panel._tbParam[4] = 0
end
end
function StarTowerLevelSelectCtrl:OnEvent_Home(nPanelId)
if self._panel._nPanelId ~= nPanelId then
return
end
PanelManager.Home()
end
function StarTowerLevelSelectCtrl:OnEvent_UpdateWorldClass()
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
self:UnbindCtrlByNode(objCtrl)
self.tbGridCtrl[nInstanceId] = nil
end
self.tbGridCtrl = {}
self:RefreshLevelUnlock()
end
function StarTowerLevelSelectCtrl:OnEvent_RefreshRes(nId)
if nId == AllEnum.CoinItemId.StarTowerSweepTick then
self:RefreshSweepTicket()
end
end
function StarTowerLevelSelectCtrl:OnBtnClick_Sweep()
local bAble, sLockTip = PlayerData.StarTower:CheckCanSweep(self.nCurGroupId, self.curStarTowerId)
if bAble then
local ticketCount = PlayerData.Item:GetItemCountByID(AllEnum.CoinItemId.StarTowerSweepTick)
ticketCount = ticketCount + PlayerData.Item:GetItemCountByID(AllEnum.CoinItemId.StarTowerSweepTickLimit)
if ticketCount <= 0 then
local name = ConfigTable.GetData_Item(AllEnum.CoinItemId.StarTowerSweepTick).Title
local sTip = ConfigTable.GetUIText("StarTower_Sweep_Tickets_NotEnough")
EventManager.Hit(EventId.OpenMessageBox, orderedFormat(sTip, name))
return
end
local OpenPanel = function()
EventManager.Hit(EventId.OpenPanel, PanelId.MainlineFormation, AllEnum.FormationEnterType.StarTower, self.curStarTowerId, false, true)
end
EventManager.Hit(EventId.SetTransition, 2, OpenPanel)
else
EventManager.Hit(EventId.OpenMessageBox, sLockTip)
end
end
function StarTowerLevelSelectCtrl:OnBtnClick_Go(btn)
local nEnterType = AllEnum.FormationEnterType.StarTower
local OpenPanel = function()
EventManager.Hit(EventId.OpenPanel, PanelId.MainlineFormation, nEnterType, self.curStarTowerId, false, false)
end
EventManager.Hit(EventId.SetTransition, 2, OpenPanel)
end
function StarTowerLevelSelectCtrl:OnBtnClick_Tog(btn)
local nHard = table.indexof(self._mapNode.tog, btn:GetComponent("UIButton"))
local togIdx = table.indexof(self._mapNode.tog, btn)
if nHard == nil then
return
end
if self.curStarTowerHard ~= nHard then
for idx, value in pairs(mapToggle) do
if value == self.curStarTowerHard then
self._mapNode.togCtrl[idx]:SetTrigger(false)
end
end
self._mapNode.togCtrl[togIdx]:SetTrigger(true)
self:RefreshStarTowerInfo(self.nCurGroupId, nHard)
end
end
function StarTowerLevelSelectCtrl:OnBtnClick_EnemyInfo(btn)
EventManager.Hit("OpenFixedRoguelikeMonsterInfo", self.curStarTowerId)
end
function StarTowerLevelSelectCtrl:OnBtnClick_RewardList(btn)
local mapLevel = ConfigTable.GetData("StarTower", self.curStarTowerId)
if mapLevel ~= nil then
local tbReward = decodeJson(mapLevel.RewardPreview)
local bFirstRewardReceive = PlayerData.StarTower:GetFirstPassReward(self.curStarTowerId)
for _, tbRewardData in ipairs(tbReward) do
if tbRewardData[3] == 1 and bFirstRewardReceive then
tbRewardData[4] = true
else
tbRewardData[4] = false
end
tbRewardData[5] = tbRewardData[3] == 1
end
self._mapNode.goRewardList:OpenPanel(tbReward)
end
end
function StarTowerLevelSelectCtrl:OnBtnClick_RewardItem(btn)
local nIdx = table.indexof(self._mapNode.ItemBtn, btn)
local mapLevel = ConfigTable.GetData("StarTower", self.curStarTowerId)
if mapLevel ~= nil then
local tbReward = decodeJson(mapLevel.RewardPreview)
local rtBtn = btn.transform:Find("AnimRoot")
local bFirstRewardReceive = PlayerData.StarTower:GetFirstPassReward(self.curStarTowerId)
local tempIdx = 0
local bRealIdx = 0
for i = 1, #tbReward do
if not bFirstRewardReceive or tbReward[i][3] ~= 1 then
tempIdx = tempIdx + 1
if tempIdx == nIdx then
bRealIdx = i
end
end
end
if tbReward[bRealIdx] ~= nil then
local nTid = tbReward[bRealIdx][1]
UTILS.ClickItemGridWithTips(nTid, rtBtn, false, true, false)
end
end
end
function StarTowerLevelSelectCtrl:OnBtnClick_TogTips(btn, nIndex)
local nStarTowerId = self.mapStarTowerGroup[self.nCurGroupId][mapToggle[nIndex]].Id
local bLock, sTip = PlayerData.StarTower:IsStarTowerUnlock(nStarTowerId)
if not bLock and sTip ~= nil then
EventManager.Hit(EventId.OpenMessageBox, sTip)
end
end
function StarTowerLevelSelectCtrl:OnBtnClick_Lock()
self:OnBtnClick_TogTips(nil, self.curStarTowerHard)
end
function StarTowerLevelSelectCtrl:OnBtnClick_SweepTickets(btn)
local mapData = {
nTid = 29,
bShowDepot = false,
bShowJumpto = false
}
EventManager.Hit(EventId.OpenPanel, PanelId.ItemTips, btn.transform, mapData)
end
return StarTowerLevelSelectCtrl