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:
@@ -0,0 +1,634 @@
|
||||
local StarTowerFastBattleCtrl = class("StarTowerFastBattleCtrl", BaseCtrl)
|
||||
local LocalSettingData = require("GameCore.Data.LocalSettingData")
|
||||
local Actor2DManager = require("Game.Actor2D.Actor2DManager")
|
||||
local GamepadUIManager = require("GameCore.Module.GamepadUIManager")
|
||||
StarTowerFastBattleCtrl._mapNodeConfig = {
|
||||
imgRed = {},
|
||||
imgBg_4 = {sComponentName = "Image"},
|
||||
imgBg_2_L = {nCount = 2, sComponentName = "Image"},
|
||||
imgBg_2_R = {nCount = 2, sComponentName = "Image"},
|
||||
imgBg_Flag_L = {nCount = 2, sComponentName = "Image"},
|
||||
rtImgBgFlagL = {
|
||||
nCount = 2,
|
||||
sNodeName = "imgBg_Flag_L",
|
||||
sComponentName = "RectTransform"
|
||||
},
|
||||
imgBg_Flag_R = {nCount = 2, sComponentName = "Image"},
|
||||
rtImgBgFlagR = {
|
||||
nCount = 2,
|
||||
sNodeName = "imgBg_Flag_R",
|
||||
sComponentName = "RectTransform"
|
||||
},
|
||||
trRoot = {
|
||||
sNodeName = "----Actor2D_L2DInUI----",
|
||||
sComponentName = "Transform"
|
||||
},
|
||||
SlipInOutAnim = {sComponentName = "Animator"},
|
||||
trActor2D_PNG = {
|
||||
sNodeName = "----Actor2D_PNG----",
|
||||
sComponentName = "Transform"
|
||||
},
|
||||
actor2DPNGAnim = {
|
||||
sNodeName = "----Actor2D_PNG----",
|
||||
sComponentName = "Animator"
|
||||
},
|
||||
btnBack = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBackButtonClick"
|
||||
},
|
||||
btnLog = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnLogButtonClick"
|
||||
},
|
||||
imgFloorUpArrow = {sComponentName = "Image"},
|
||||
imgFloorNum = {
|
||||
sNodeName = "imgFloorNum_",
|
||||
sComponentName = "Image",
|
||||
nCount = 2
|
||||
},
|
||||
imgFloorIcon = {sComponentName = "Image"},
|
||||
Tips = {
|
||||
sCtrlName = "Game.UI.StarTower.DiscTips.StarTowerTipsCtrl"
|
||||
},
|
||||
TipsCanvas = {sNodeName = "Tips", sComponentName = "Canvas"},
|
||||
imgBuildRank = {sComponentName = "Image"},
|
||||
textBulidScoreNum = {sComponentName = "TMP_Text"},
|
||||
textBulidScore = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "StartowerFastBattle_BuildScore"
|
||||
},
|
||||
btnBulidDetails = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBulidDetailsButtonClick"
|
||||
},
|
||||
imgRoleIcon = {
|
||||
sNodeName = "imgRoleIcon_",
|
||||
sComponentName = "Image",
|
||||
nCount = 3
|
||||
},
|
||||
textPerkCount = {
|
||||
sNodeName = "textPerkCount_",
|
||||
sComponentName = "TMP_Text",
|
||||
nCount = 3
|
||||
},
|
||||
btnRoleDetails = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnRoleDetailsButtonClick"
|
||||
},
|
||||
imgNote = {
|
||||
sNodeName = "imgNote_",
|
||||
sComponentName = "Image",
|
||||
nCount = 9
|
||||
},
|
||||
textNote = {
|
||||
sNodeName = "textNote_",
|
||||
sComponentName = "TMP_Text",
|
||||
nCount = 9
|
||||
},
|
||||
btnNoteDetails = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnNoteDetailsButtonClick"
|
||||
},
|
||||
textLevel = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "StarTower_Reward_Level"
|
||||
},
|
||||
textLevelNum = {sComponentName = "TMP_Text"},
|
||||
imgLevelBar = {sComponentName = "Image"},
|
||||
imgCoin = {sComponentName = "Image"},
|
||||
textCoinCount = {sComponentName = "TMP_Text"},
|
||||
btnFastBattle = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnFastBattleButtonClick"
|
||||
},
|
||||
goAuto = {},
|
||||
textAutomatic = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "StartowerFastBattle_Automatic"
|
||||
},
|
||||
goPause = {},
|
||||
textPause = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "StartowerFastBattle_Pause"
|
||||
}
|
||||
}
|
||||
StarTowerFastBattleCtrl._mapEventConfig = {
|
||||
InitRoom = "OnEvent_InitRoom",
|
||||
EventHandleOver = "OnEvent_EventHandleOver",
|
||||
SweepEnterDangerRoom = "OnEvent_EnterDangerRoom",
|
||||
RefreshFastBattleInfo = "OnEvent_RefreshFastBattleInfo",
|
||||
StarTowerFastBattleOpenShop = "OnEvent_StarTowerFastBattleOpenShop",
|
||||
StarTowerFastBattleOpenMachine = "OnEvent_StarTowerFastBattleOpenMachine",
|
||||
DiscSkillActive = "OnEvent_DiscSkillActive",
|
||||
[EventId.StarTowerDepot] = "OnEvent_OpenStarTowerDepot",
|
||||
RefreshNoteCount = "OnEvent_RefreshNoteCount",
|
||||
TryCloseStarTowerLastShop = "OnEvent_TryCloseStarTowerLastShop",
|
||||
ShowNPCAffinity = "OnEvent_AffinityTips"
|
||||
}
|
||||
StarTowerFastBattleCtrl._mapRedDotConfig = {}
|
||||
local theme_sprite_path = "UI/big_sprites/"
|
||||
local Flag_Random = {-330, 660}
|
||||
local room_bg = {
|
||||
[GameEnum.starTowerRoomType.ShopRoom] = "bg_fastBattle_shop_1",
|
||||
[GameEnum.starTowerRoomType.EventRoom] = "bg_fastBattle_2",
|
||||
[GameEnum.starTowerRoomType.BattleRoom] = "bg_fastBattle_3",
|
||||
[GameEnum.starTowerRoomType.EliteBattleRoom] = "bg_fastBattle_4",
|
||||
[GameEnum.starTowerRoomType.BossRoom] = "bg_fastBattle_5",
|
||||
[GameEnum.starTowerRoomType.FinalBossRoom] = "bg_fastBattle_6"
|
||||
}
|
||||
function StarTowerFastBattleCtrl:Awake()
|
||||
self.bHandleOver = false
|
||||
self.bOpenOption = false
|
||||
self.bAuto = true
|
||||
self.bPause = false
|
||||
self.nNextCaseId = -1
|
||||
self.nNextRoomType = -1
|
||||
self.tbTips = {}
|
||||
self.tbHistoryLog = {}
|
||||
self.Animator = self.gameObject:GetComponent("Animator")
|
||||
self:Init()
|
||||
end
|
||||
function StarTowerFastBattleCtrl:FadeIn()
|
||||
local bL2d = LocalSettingData.mapData.UseLive2D
|
||||
self._mapNode.trRoot.gameObject:SetActive(bL2d)
|
||||
self._mapNode.trActor2D_PNG.gameObject:SetActive(not bL2d)
|
||||
if bL2d then
|
||||
Actor2DManager.SetActor2DInUI(self:GetPanelId(), self._mapNode.trRoot, self._panel.tbTeam[1], nil, true)
|
||||
self._mapNode.SlipInOutAnim:Play("Actor2D_right_in")
|
||||
else
|
||||
Actor2DManager.SetActor2D_PNG(self._mapNode.trActor2D_PNG, self:GetPanelId(), self._panel.tbTeam[1], nil)
|
||||
self._mapNode.actor2DPNGAnim:Play("Actor2D_PNG_right_in")
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleCtrl:FadeOut()
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnEnable()
|
||||
self:InitGroupTheme()
|
||||
self:RefreshRoomFloor()
|
||||
self:RefreshRoomBg()
|
||||
self:RefreshRoomIcon()
|
||||
self:RefreshBuildScore()
|
||||
self:RefreshNoteCount()
|
||||
self:RefreshPerkCount()
|
||||
self:RefreshLevelExp()
|
||||
self:RefreshCoin()
|
||||
NovaAPI.SetCanvasSortingName(self._mapNode.TipsCanvas, AllEnum.SortingLayerName.UI_Top)
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 1.3)
|
||||
self:AddTimer(1, 1, "StartFastBattle", true, true, true)
|
||||
GamepadUIManager.EnableGamepadUI("StarTowerFastBattleCtrl", {}, nil, true)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnDisable()
|
||||
self.nNextCaseId = -1
|
||||
self.nNextRoomType = -1
|
||||
self.tbHistoryLog = nil
|
||||
GamepadUIManager.DisableGamepadUI("StarTowerFastBattleCtrl")
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnDestroy()
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnRelease()
|
||||
end
|
||||
function StarTowerFastBattleCtrl:Init()
|
||||
NovaAPI.SetTMPText(self._mapNode.textBulidScoreNum, 0)
|
||||
for nIndex, nCharId in ipairs(self._panel.tbTeam) do
|
||||
if nil ~= self._mapNode.imgRoleIcon[nIndex] then
|
||||
local nSkinId = PlayerData.Char:GetCharSkinId(nCharId)
|
||||
local mapSkin = ConfigTable.GetData_CharacterSkin(nSkinId)
|
||||
if nil ~= mapSkin then
|
||||
self:SetPngSprite(self._mapNode.imgRoleIcon[nIndex], mapSkin.Icon .. AllEnum.CharHeadIconSurfix.S)
|
||||
end
|
||||
end
|
||||
if nil ~= self._mapNode.textPerkCount[nIndex] then
|
||||
NovaAPI.SetTMPText(self._mapNode.textPerkCount[nIndex], 0)
|
||||
end
|
||||
end
|
||||
self:RefreshNoteCount()
|
||||
self:SetSprite_Coin(self._mapNode.imgCoin, AllEnum.CoinItemId.FixedRogCurrency)
|
||||
NovaAPI.SetTMPText(self._mapNode.textCoinCount, 0)
|
||||
self._mapNode.imgRed:SetActive(false)
|
||||
self:RefreshPauseStatus()
|
||||
end
|
||||
function StarTowerFastBattleCtrl:StartFastBattle()
|
||||
EventManager.Hit("InitStarTowerNote", self._panel.LevelData._mapNote)
|
||||
self.Animator:Play("StarTowerFastBattlePanel_open")
|
||||
CS.WwiseAudioManager.Instance:PlaySound("ui_startower_fastBattle_elevator_door")
|
||||
self:AddTimer(1, 0.3, function()
|
||||
self._panel.LevelData:HandleCases()
|
||||
end, true, true, true)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:EnterRoom()
|
||||
self.bHandleOver = false
|
||||
self._panel.LevelData:EnterRoom(self.nNextCaseId, self.nNextRoomType)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:InitGroupTheme()
|
||||
local mapStarTowerCfg = ConfigTable.GetData("StarTower", self._panel.nStarTowerId)
|
||||
if mapStarTowerCfg ~= nil then
|
||||
self.nGroupId = mapStarTowerCfg.GroupId
|
||||
local mapGroup = ConfigTable.GetData("StarTowerGroup", self.nGroupId)
|
||||
if nil ~= mapGroup then
|
||||
local nTheme = mapGroup.GroupTheme or 1
|
||||
self.bShowFlag = #mapGroup.EET > 0
|
||||
for _, v in ipairs(self._mapNode.imgBg_2_L) do
|
||||
self:SetPngSprite(v, theme_sprite_path .. string.format(AllEnum.StarTowerFastBattleBg.Bg_L, nTheme))
|
||||
end
|
||||
for _, v in ipairs(self._mapNode.imgBg_2_R) do
|
||||
self:SetPngSprite(v, theme_sprite_path .. string.format(AllEnum.StarTowerFastBattleBg.Bg_R, nTheme))
|
||||
end
|
||||
for _, v in ipairs(self._mapNode.imgBg_Flag_L) do
|
||||
if self.bShowFlag then
|
||||
self:SetPngSprite(v, theme_sprite_path .. string.format(AllEnum.StarTowerFastBattleBg.Flag, nTheme))
|
||||
end
|
||||
end
|
||||
for _, v in ipairs(self._mapNode.imgBg_Flag_R) do
|
||||
if self.bShowFlag then
|
||||
self:SetPngSprite(v, theme_sprite_path .. string.format(AllEnum.StarTowerFastBattleBg.Flag, nTheme))
|
||||
end
|
||||
end
|
||||
self.nRandomLR = math.random(1, 2)
|
||||
self.nRandomPosYL = math.random(Flag_Random[1], Flag_Random[2])
|
||||
self.nRandomPosYR = math.random(Flag_Random[1], Flag_Random[2])
|
||||
self._mapNode.imgBg_Flag_L[1].gameObject:SetActive(self.nRandomLR == 1 and self.bShowFlag)
|
||||
self._mapNode.imgBg_Flag_R[1].gameObject:SetActive(self.nRandomLR == 2 and self.bShowFlag)
|
||||
self._mapNode.rtImgBgFlagL[1].anchoredPosition = Vector2(0, self.nRandomPosYL)
|
||||
self._mapNode.rtImgBgFlagR[1].anchoredPosition = Vector2(0, self.nRandomPosYR)
|
||||
end
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleCtrl:RefreshThemeFlag(nTime)
|
||||
self.nRandomLR = math.random(1, 2)
|
||||
self.nRandomPosYL = math.random(Flag_Random[1], Flag_Random[2])
|
||||
self.nRandomPosYR = math.random(Flag_Random[1], Flag_Random[2])
|
||||
self._mapNode.imgBg_Flag_L[2].gameObject:SetActive(self.nRandomLR == 1 and self.bShowFlag)
|
||||
self._mapNode.imgBg_Flag_R[2].gameObject:SetActive(self.nRandomLR == 2 and self.bShowFlag)
|
||||
self._mapNode.rtImgBgFlagL[2].anchoredPosition = Vector2(0, self.nRandomPosYL)
|
||||
self._mapNode.rtImgBgFlagR[2].anchoredPosition = Vector2(0, self.nRandomPosYR)
|
||||
self:AddTimer(1, nTime, function()
|
||||
self._mapNode.imgBg_Flag_L[1].gameObject:SetActive(self.nRandomLR == 1 and self.bShowFlag)
|
||||
self._mapNode.imgBg_Flag_R[1].gameObject:SetActive(self.nRandomLR == 2 and self.bShowFlag)
|
||||
self._mapNode.rtImgBgFlagL[1].anchoredPosition = Vector2(0, self.nRandomPosYL)
|
||||
self._mapNode.rtImgBgFlagR[1].anchoredPosition = Vector2(0, self.nRandomPosYR)
|
||||
end, true, true, true)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:RefreshRoomIcon()
|
||||
local nRoomType = self._panel.LevelData.nRoomType
|
||||
self:SetAtlasSprite(self._mapNode.imgFloorIcon, "11_ico", AllEnum.StarTowerRoomName[nRoomType].SweepIcon)
|
||||
if nRoomType == GameEnum.starTowerRoomType.HorrorRoom then
|
||||
self._mapNode.imgRed:SetActive(true)
|
||||
local _, color = ColorUtility.TryParseHtmlString("#FF2B53")
|
||||
NovaAPI.SetImageColor(self._mapNode.imgFloorNum[1], color)
|
||||
NovaAPI.SetImageColor(self._mapNode.imgFloorNum[2], color)
|
||||
else
|
||||
self._mapNode.imgRed:SetActive(false)
|
||||
local _, color = ColorUtility.TryParseHtmlString("#08D3D4")
|
||||
NovaAPI.SetImageColor(self._mapNode.imgSkillTypeBg, color)
|
||||
NovaAPI.SetImageColor(self._mapNode.imgFloorNum[1], color)
|
||||
NovaAPI.SetImageColor(self._mapNode.imgFloorNum[2], color)
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleCtrl:RefreshRoomBg()
|
||||
local nRoomType = self._panel.LevelData.nRoomType
|
||||
local sIcon = room_bg[nRoomType]
|
||||
if sIcon ~= nil then
|
||||
self:SetPngSprite(self._mapNode.imgBg_4, theme_sprite_path .. sIcon)
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleCtrl:RefreshRoomFloor()
|
||||
local nFloorNum = self._panel.LevelData.nCurLevel
|
||||
self:SetAtlasSprite(self._mapNode.imgFloorNum[1], "05_number", "zs_fastBattle_floor_" .. nFloorNum % 10)
|
||||
NovaAPI.SetImageNativeSize(self._mapNode.imgFloorNum[1])
|
||||
nFloorNum = math.floor(nFloorNum / 10)
|
||||
self:SetAtlasSprite(self._mapNode.imgFloorNum[2], "05_number", "zs_fastBattle_floor_" .. nFloorNum % 10)
|
||||
NovaAPI.SetImageNativeSize(self._mapNode.imgFloorNum[2])
|
||||
end
|
||||
function StarTowerFastBattleCtrl:RefreshBuildScore()
|
||||
local nLastScore = tonumber(NovaAPI.GetTMPText(self._mapNode.textBulidScoreNum))
|
||||
local nAfterScore = self._panel.LevelData:CalBuildScore()
|
||||
if nAfterScore ~= nLastScore then
|
||||
local twCoin = DOTween.To(function()
|
||||
return nLastScore
|
||||
end, function(score)
|
||||
NovaAPI.SetTMPText(self._mapNode.textBulidScoreNum, math.floor(score))
|
||||
end, nAfterScore, 1)
|
||||
local _cb = function()
|
||||
NovaAPI.SetTMPText(self._mapNode.textBulidScoreNum, nAfterScore)
|
||||
end
|
||||
twCoin.onComplete = dotween_callback_handler(self, _cb)
|
||||
end
|
||||
local rank = PlayerData.Build:CalBuildRank(nAfterScore)
|
||||
local imagePath = "Icon/BuildRank/BuildRank_" .. rank.Id
|
||||
self:SetPngSprite(self._mapNode.imgBuildRank, imagePath)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:RefreshNoteCount()
|
||||
local goLastNoteObj
|
||||
local LevelData = self._panel.LevelData
|
||||
for i = 1, 9 do
|
||||
local nNoteId = self._panel.tbShowNote[i]
|
||||
self._mapNode.imgNote[i].gameObject:SetActive(false)
|
||||
if nNoteId ~= nil then
|
||||
local noteCfg = ConfigTable.GetData("SubNoteSkill", nNoteId)
|
||||
if nil ~= noteCfg then
|
||||
self:SetPngSprite(self._mapNode.imgNote[i], noteCfg.Icon .. AllEnum.DiscSkillIconSurfix.Small)
|
||||
NovaAPI.SetTMPText(self._mapNode.textNote[i], LevelData._mapNote[nNoteId] or 0)
|
||||
self._mapNode.imgNote[i].gameObject:SetActive(true)
|
||||
goLastNoteObj = self._mapNode.imgNote[i].gameObject
|
||||
end
|
||||
end
|
||||
end
|
||||
if nil ~= goLastNoteObj then
|
||||
goLastNoteObj.transform:Find("ImgLine").gameObject:SetActive(false)
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleCtrl:RefreshPerkCount()
|
||||
local LevelData = self._panel.LevelData
|
||||
for nIndex, nCharId in ipairs(self._panel.tbTeam) do
|
||||
local tbPerk = LevelData._mapPotential[nCharId]
|
||||
local count = 0
|
||||
for _, _ in pairs(tbPerk) do
|
||||
count = count + 1
|
||||
end
|
||||
if nil ~= self._mapNode.textPerkCount[nIndex] then
|
||||
NovaAPI.SetTMPText(self._mapNode.textPerkCount[nIndex], count)
|
||||
end
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleCtrl:RefreshLevelExp()
|
||||
local LevelData = self._panel.LevelData
|
||||
local nAllExp, bMaxLevel = self:GetTeamNeedExpByLevel(1, LevelData.nTeamLevel)
|
||||
if bMaxLevel then
|
||||
NovaAPI.SetImageFillAmount(self._mapNode.imgLevelBar, 1)
|
||||
else
|
||||
NovaAPI.SetImageFillAmount(self._mapNode.imgLevelBar, LevelData.nTeamExp / nAllExp)
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.textLevelNum, LevelData.nTeamLevel)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:RefreshCoin()
|
||||
local nCoinCount = 0
|
||||
local LevelData = self._panel.LevelData
|
||||
if LevelData._mapItem[AllEnum.CoinItemId.FixedRogCurrency] ~= nil then
|
||||
nCoinCount = LevelData._mapItem[AllEnum.CoinItemId.FixedRogCurrency]
|
||||
NovaAPI.SetTMPText(self._mapNode.textCoinCount, self:ThousandsNumber(nCoinCount))
|
||||
else
|
||||
NovaAPI.SetTMPText(self._mapNode.textCoinCount, 0)
|
||||
end
|
||||
EventManager.Hit("RefreshStarTowerCoin", nCoinCount)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:RefreshPauseStatus(bRestart)
|
||||
self._mapNode.goAuto.gameObject:SetActive(not self.bPause)
|
||||
self._mapNode.goPause.gameObject:SetActive(self.bPause)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:GetTeamNeedExpByLevel(nGroupId, nLevel)
|
||||
local bMaxLevel = false
|
||||
local nNeedExp = 0
|
||||
if CacheTable.GetData("_StarTowerTeamExpGroup", nGroupId) ~= nil then
|
||||
local nMaxLevel = #CacheTable.GetData("_StarTowerTeamExpGroup", nGroupId)
|
||||
bMaxLevel = nLevel >= nMaxLevel
|
||||
if nLevel < nMaxLevel then
|
||||
local expCfg = CacheTable.GetData("_StarTowerTeamExpGroup", nGroupId)[nLevel + 1]
|
||||
nNeedExp = expCfg.NeedExp
|
||||
end
|
||||
end
|
||||
return nNeedExp, bMaxLevel
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnHandleCasesOver()
|
||||
local CurHandleCasesOver = function()
|
||||
self.bOpenOption = false
|
||||
self.Animator:Play("StarTowerFastBattlePanel_idle")
|
||||
if self.bAuto and not self.bPause then
|
||||
self:EnterRoom()
|
||||
end
|
||||
end
|
||||
local bShop, bMachine, nMachineCount, nDiscount, bFirstFree = self._panel.LevelData:GetShopAndMachine()
|
||||
if bShop or bMachine then
|
||||
self.bOpenOption = true
|
||||
local bLastShopRoom = self._panel.LevelData:CheckLastShopRoom()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.StarTowerFastBattleOption, bShop, bMachine, nMachineCount, self._panel.LevelData._mapItem[AllEnum.CoinItemId.FixedRogCurrency], CurHandleCasesOver, nDiscount, bFirstFree, bLastShopRoom)
|
||||
else
|
||||
CurHandleCasesOver()
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnBackButtonClick()
|
||||
if not self.bHandleOver then
|
||||
return
|
||||
end
|
||||
local msg = {
|
||||
nType = AllEnum.MessageBox.Confirm,
|
||||
sContent = ConfigTable.GetUIText("StarTower_Sweep_BackTips_Content"),
|
||||
sConfirm = ConfigTable.GetUIText("StarTower_Sweep_Leave_Btn"),
|
||||
sCancel = ConfigTable.GetUIText("StarTower_Sweep_GiveUp_Btn"),
|
||||
callbackConfirm = function()
|
||||
self._panel.LevelData:StarTowerLeave()
|
||||
PanelManager.Home()
|
||||
end,
|
||||
callbackCancel = function()
|
||||
local giveUpCallBack = function()
|
||||
local mapStarTowerState = PlayerData.State:GetStarTowerState()
|
||||
PlayerData.StarTower:GiveUpReconnect(mapStarTowerState.Id, mapStarTowerState.CharIds, false, function()
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.StarTowerFastBattle)
|
||||
end
|
||||
cs_coroutine.start(wait)
|
||||
end)
|
||||
end
|
||||
local sContent = ConfigTable.GetUIText("StarTower_Pause_Tips")
|
||||
local msg = {
|
||||
nType = AllEnum.MessageBox.Confirm,
|
||||
sContent = sContent or "",
|
||||
callbackConfirm = giveUpCallBack
|
||||
}
|
||||
EventManager.Hit(EventId.OpenMessageBox, msg)
|
||||
end,
|
||||
bCloseNoHandler = true,
|
||||
bRedCancel = true
|
||||
}
|
||||
EventManager.Hit(EventId.OpenMessageBox, msg)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnLogButtonClick()
|
||||
if not self.bHandleOver then
|
||||
return
|
||||
end
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.StarTowerFastBattleLog, self.tbHistoryLog)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnBulidDetailsButtonClick()
|
||||
if not self.bHandleOver then
|
||||
return
|
||||
end
|
||||
local LevelData = self._panel.LevelData
|
||||
EventManager.Hit("OpenStarTowerDepot", LevelData._mapPotential, LevelData._mapNote, LevelData._mapFateCard, LevelData._mapItem, LevelData.tbActiveSecondaryIds, AllEnum.StarTowerDepotTog.Potential)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnRoleDetailsButtonClick()
|
||||
if not self.bHandleOver then
|
||||
return
|
||||
end
|
||||
local LevelData = self._panel.LevelData
|
||||
EventManager.Hit("OpenStarTowerDepot", LevelData._mapPotential, LevelData._mapNote, LevelData._mapFateCard, LevelData._mapItem, LevelData.tbActiveSecondaryIds, AllEnum.StarTowerDepotTog.Potential)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnNoteDetailsButtonClick()
|
||||
if not self.bHandleOver then
|
||||
return
|
||||
end
|
||||
local LevelData = self._panel.LevelData
|
||||
EventManager.Hit("OpenStarTowerDepot", LevelData._mapPotential, LevelData._mapNote, LevelData._mapFateCard, LevelData._mapItem, LevelData.tbActiveSecondaryIds, AllEnum.StarTowerDepotTog.DiscSkill)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnFastBattleButtonClick()
|
||||
self.bPause = not self.bPause
|
||||
self:RefreshPauseStatus(true)
|
||||
if not self.bHandleOver or self.bPause then
|
||||
return
|
||||
end
|
||||
if self.nNextCaseId < 0 or self.nNextCaseId < 0 then
|
||||
return
|
||||
end
|
||||
self:EnterRoom()
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnEvent_InitRoom()
|
||||
self.Animator:Play("StarTowerFastBattlePanel_close")
|
||||
self:AddTimer(1, 0.1, function()
|
||||
CS.WwiseAudioManager.Instance:PlaySound("ui_startower_fastBattle_elevator")
|
||||
self.Animator:Play("StarTowerFastBattlePanel_up")
|
||||
local nAnimLen = NovaAPI.GetAnimClipLength(self.Animator, {
|
||||
"StarTowerFastBattlePanel_up"
|
||||
})
|
||||
self:RefreshThemeFlag(nAnimLen)
|
||||
self:RefreshRoomBg()
|
||||
self:AddTimer(1, nAnimLen, function()
|
||||
self:RefreshRoomFloor()
|
||||
self:RefreshRoomIcon()
|
||||
end, true, true, true)
|
||||
self:AddTimer(1, 1, function()
|
||||
self._panel.LevelData:HandleCases()
|
||||
end, true, true, true)
|
||||
end, true, true, true)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnEvent_EventHandleOver()
|
||||
if self.bOpenOption then
|
||||
return
|
||||
end
|
||||
self.bHandleOver = true
|
||||
self.nNextCaseId, self.nNextRoomType = self._panel.LevelData:GetDoorCase()
|
||||
self:OnHandleCasesOver()
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnEvent_EnterDangerRoom(nCaseId, nRoomType)
|
||||
if self.bOpenOption then
|
||||
return
|
||||
end
|
||||
self.bHandleOver = true
|
||||
self.nNextCaseId = nCaseId
|
||||
self.nNextRoomType = nRoomType
|
||||
self:OnHandleCasesOver()
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnEvent_RefreshFastBattleInfo(tbChangeFateCard, mapChangeNote, mapItemChange, nLevelChange, nExpChange, mapPotentialChange)
|
||||
local LevelData = self._panel.LevelData
|
||||
self:RefreshPerkCount()
|
||||
self:RefreshBuildScore()
|
||||
self:RefreshNoteCount()
|
||||
self:RefreshLevelExp()
|
||||
self:RefreshCoin()
|
||||
local mapTower = ConfigTable.GetData("StarTower", LevelData.nTowerId)
|
||||
local ntowerName = orderedFormat(ConfigTable.GetUIText("Dungeon_Difficulty") or "", mapTower.Name, ConfigTable.GetUIText("Diffculty_" .. mapTower.Difficulty) or "")
|
||||
local towerName = mapTower and ntowerName
|
||||
for nId, tbData in pairs(mapChangeNote) do
|
||||
if tbData.Qty > 0 then
|
||||
local mapItem = ConfigTable.GetData_Item(nId)
|
||||
if nil ~= mapItem then
|
||||
end
|
||||
end
|
||||
end
|
||||
for nId, changeCount in pairs(mapItemChange) do
|
||||
local mapItem = ConfigTable.GetData_Item(nId)
|
||||
if nil ~= mapItem then
|
||||
if 0 < changeCount then
|
||||
table.insert(self.tbTips, {
|
||||
bSkill = false,
|
||||
nTid = nId,
|
||||
nCount = changeCount,
|
||||
nTipType = AllEnum.StarTowerTipsType.ItemTip
|
||||
})
|
||||
table.insert(self.tbHistoryLog, orderedFormat(ConfigTable.GetUIText("StarTower_Sweep_Log_1"), towerName, LevelData.nCurLevel, changeCount, mapItem.Title))
|
||||
else
|
||||
table.insert(self.tbHistoryLog, orderedFormat(ConfigTable.GetUIText("StarTower_Sweep_Log_4"), towerName, LevelData.nCurLevel, math.abs(changeCount), mapItem.Title))
|
||||
end
|
||||
end
|
||||
end
|
||||
for nId, changeInfo in pairs(mapPotentialChange) do
|
||||
if 0 < changeInfo.nNextLevel - changeInfo.nLevel then
|
||||
local mapItem = ConfigTable.GetData_Item(nId)
|
||||
if nil ~= mapItem then
|
||||
table.insert(self.tbHistoryLog, orderedFormat(ConfigTable.GetUIText("StarTower_Sweep_Log_2"), towerName, LevelData.nCurLevel, mapItem.Title))
|
||||
end
|
||||
end
|
||||
end
|
||||
for _, changeInfo in pairs(tbChangeFateCard) do
|
||||
if changeInfo[4] == 1 then
|
||||
local mapItem = ConfigTable.GetData_Item(changeInfo[1])
|
||||
if nil ~= mapItem then
|
||||
table.insert(self.tbHistoryLog, orderedFormat(ConfigTable.GetUIText("StarTower_Sweep_Log_3"), towerName, LevelData.nCurLevel, mapItem.Title))
|
||||
end
|
||||
end
|
||||
end
|
||||
if 0 < #self.tbTips then
|
||||
self._mapNode.Tips:StartShowTips(self.tbTips)
|
||||
self.tbTips = {}
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnEvent_StarTowerFastBattleOpenShop()
|
||||
if not self.bOpenOption then
|
||||
return
|
||||
end
|
||||
local bSuccess = self._panel.LevelData:OpenShop()
|
||||
if not bSuccess then
|
||||
printError("打开商店界面失败")
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnEvent_StarTowerFastBattleOpenMachine()
|
||||
if not self.bOpenOption then
|
||||
return
|
||||
end
|
||||
local bSuccess = self._panel.LevelData:OpenStrengthMachine()
|
||||
if not bSuccess then
|
||||
printError("打开强化界面失败")
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnEvent_DiscSkillActive(tbParam)
|
||||
self._panel.LevelData:DiscSkillActive(tbParam)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnEvent_OpenStarTowerDepot(nTog, nParam)
|
||||
if nTog == AllEnum.StarTowerDepotTog.CharInfo then
|
||||
printError("星塔扫荡无法打开星塔背包角色页签")
|
||||
return
|
||||
end
|
||||
local LevelData = self._panel.LevelData
|
||||
EventManager.Hit("OpenStarTowerDepot", LevelData._mapPotential, LevelData._mapNote, LevelData._mapFateCard, LevelData._mapItem, LevelData.tbActiveSecondaryIds, nTog, nParam)
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnEvent_RefreshNoteCount()
|
||||
self:RefreshNoteCount()
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnEvent_TryCloseStarTowerLastShop(bMachine, nMachineCost)
|
||||
local nMinPrice = self._panel.LevelData:GetShopMinPrice()
|
||||
if bMachine then
|
||||
nMinPrice = -1 < nMinPrice and math.min(nMinPrice, nMachineCost) or nMachineCost
|
||||
end
|
||||
local nCurCoin = self._panel.LevelData._mapItem[AllEnum.CoinItemId.FixedRogCurrency] or 0
|
||||
local closePanel = function()
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.StarTowerFastBattleOption)
|
||||
end
|
||||
if nMinPrice <= nCurCoin and -1 < nMinPrice then
|
||||
local data = {
|
||||
nType = AllEnum.MessageBox.Confirm,
|
||||
sContent = ConfigTable.GetUIText("StarTower_FastBattle_Shop_Tip"),
|
||||
callbackConfirm = closePanel
|
||||
}
|
||||
EventManager.Hit(EventId.OpenMessageBox, data)
|
||||
else
|
||||
closePanel()
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleCtrl:OnEvent_AffinityTips(nNpcId, nAffinity)
|
||||
local tbTips = {}
|
||||
table.insert(tbTips, {
|
||||
nNPCId = nNpcId,
|
||||
nAffinity = nAffinity,
|
||||
nTipType = AllEnum.StarTowerTipsType.NPCAffinity
|
||||
})
|
||||
self._mapNode.Tips:StartShowTips(tbTips)
|
||||
end
|
||||
return StarTowerFastBattleCtrl
|
||||
@@ -0,0 +1,74 @@
|
||||
local StarTowerFastBattleLogCtrl = class("StarTowerFastBattleLogCtrl", BaseCtrl)
|
||||
StarTowerFastBattleLogCtrl._mapNodeConfig = {
|
||||
goWindow = {},
|
||||
aniWindow = {sNodeName = "goWindow", sComponentName = "Animator"},
|
||||
goBlur = {
|
||||
sNodeName = "t_fullscreen_blur_blue"
|
||||
},
|
||||
txtWindowTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "StarTower_Sweep_Log_Title"
|
||||
},
|
||||
btnClose = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Close"
|
||||
},
|
||||
btnFullScreenClose = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Close"
|
||||
},
|
||||
EmptyRoot = {},
|
||||
textEmpty = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "StarTower_Sweep_Log_Empty"
|
||||
},
|
||||
LogRoot = {},
|
||||
svLog = {
|
||||
sComponentName = "LoopScrollView"
|
||||
}
|
||||
}
|
||||
StarTowerFastBattleLogCtrl._mapEventConfig = {}
|
||||
function StarTowerFastBattleLogCtrl:Awake()
|
||||
self._mapNode.goBlur:SetActive(false)
|
||||
self._mapNode.goWindow:SetActive(false)
|
||||
end
|
||||
function StarTowerFastBattleLogCtrl:OnEnable()
|
||||
self._mapNode.goBlur:SetActive(true)
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
self:Refresh()
|
||||
self._mapNode.goWindow:SetActive(true)
|
||||
self._mapNode.aniWindow:Play("t_window_04_t_in")
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
|
||||
end
|
||||
cs_coroutine.start(wait)
|
||||
end
|
||||
function StarTowerFastBattleLogCtrl:OnDisable()
|
||||
end
|
||||
function StarTowerFastBattleLogCtrl:OnDestroy()
|
||||
end
|
||||
function StarTowerFastBattleLogCtrl:Refresh()
|
||||
if nil ~= self._panel.tbHistoryLog and #self._panel.tbHistoryLog > 0 then
|
||||
self._mapNode.svLog:Init(#self._panel.tbHistoryLog, self, self.OnGridRefreshLog)
|
||||
self._mapNode.EmptyRoot:SetActive(false)
|
||||
self._mapNode.LogRoot:SetActive(true)
|
||||
self._mapNode.svLog:SetScrollGridPos(#self._panel.tbHistoryLog - 1, 0)
|
||||
else
|
||||
self._mapNode.LogRoot:SetActive(false)
|
||||
self._mapNode.EmptyRoot:SetActive(true)
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleLogCtrl:OnGridRefreshLog(goGrid, gridIndex)
|
||||
local nLogIndex = gridIndex + 1
|
||||
local sLog = self._panel.tbHistoryLog[nLogIndex]
|
||||
local txtLog = goGrid.transform:Find("btnGrid/AnimRoot/imgBg_Log/textLog"):GetComponent("TMP_Text")
|
||||
NovaAPI.SetTMPText(txtLog, sLog)
|
||||
end
|
||||
function StarTowerFastBattleLogCtrl:OnBtnClick_Close()
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.2)
|
||||
self._mapNode.aniWindow:Play("t_window_04_t_out")
|
||||
self:AddTimer(1, 0.2, function()
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.StarTowerFastBattleLog)
|
||||
end, true, true, true)
|
||||
end
|
||||
return StarTowerFastBattleLogCtrl
|
||||
@@ -0,0 +1,18 @@
|
||||
local StarTowerFastBattleLogPanel = class("StarTowerFastBattleLogPanel", BasePanel)
|
||||
StarTowerFastBattleLogPanel._bIsMainPanel = false
|
||||
StarTowerFastBattleLogPanel._tbDefine = {
|
||||
{
|
||||
sPrefabPath = "StarTowerFastBattle/StarTowerFastBattleLogPanel.prefab",
|
||||
sCtrlName = "Game.UI.StarTowerFastBattle.StarTowerFastBattleLogCtrl"
|
||||
}
|
||||
}
|
||||
function StarTowerFastBattleLogPanel:Awake()
|
||||
self.tbHistoryLog = self:GetPanelParam()[1]
|
||||
end
|
||||
function StarTowerFastBattleLogPanel:OnEnable()
|
||||
end
|
||||
function StarTowerFastBattleLogPanel:OnDisable()
|
||||
end
|
||||
function StarTowerFastBattleLogPanel:OnDestroy()
|
||||
end
|
||||
return StarTowerFastBattleLogPanel
|
||||
@@ -0,0 +1,205 @@
|
||||
local StarTowerFastBattleOptionCtrl = class("StarTowerFastBattleOptionCtrl", BaseCtrl)
|
||||
local GamepadUIManager = require("GameCore.Module.GamepadUIManager")
|
||||
StarTowerFastBattleOptionCtrl._mapNodeConfig = {
|
||||
goBlur = {
|
||||
sNodeName = "t_fullscreen_blur_blue"
|
||||
},
|
||||
rtSelectOption = {},
|
||||
TMP_Title = {sComponentName = "TMP_Text"},
|
||||
rtChoose = {nCount = 5},
|
||||
btnChoose = {
|
||||
sComponentName = "NaviButton",
|
||||
nCount = 5,
|
||||
callback = "OnBtnClick_Select"
|
||||
},
|
||||
imgIconLeave = {nCount = 5},
|
||||
TMPChoose = {sComponentName = "TMP_Text", nCount = 5},
|
||||
imgFunc = {nCount = 5},
|
||||
Select = {nCount = 5},
|
||||
goCoin = {sNodeName = "imgBg_Coin"},
|
||||
imgCoin = {sComponentName = "Image"},
|
||||
textCoinCount = {sComponentName = "TMP_Text"}
|
||||
}
|
||||
StarTowerFastBattleOptionCtrl._mapEventConfig = {
|
||||
RefreshStrengthMachineCost = "OnEvent_RefreshStrengthMachineCost",
|
||||
RefreshStarTowerCoin = "OnEvent_RefreshStarTowerCoin",
|
||||
GamepadUIChange = "OnEvent_GamepadUIChange",
|
||||
GamepadUIReopen = "OnEvent_Reopen"
|
||||
}
|
||||
function StarTowerFastBattleOptionCtrl:Awake()
|
||||
self._mapNode.goBlur:SetActive(false)
|
||||
self._mapNode.rtSelectOption:SetActive(false)
|
||||
for i = 1, 5 do
|
||||
self._mapNode.rtChoose[i]:SetActive(false)
|
||||
self._mapNode.imgIconLeave[i]:SetActive(false)
|
||||
self._mapNode.imgFunc[i]:SetActive(false)
|
||||
self._mapNode.Select[i]:SetActive(false)
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPChoose[i], "")
|
||||
if i == 5 then
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPChoose[i], ConfigTable.GetUIText("StartowerFastBattle_LastRoom_Option"))
|
||||
end
|
||||
end
|
||||
self.tbStrengthMachineCost = ConfigTable.GetConfigNumberArray("StrengthenMachineGoldConsume")
|
||||
end
|
||||
function StarTowerFastBattleOptionCtrl:OnEnable()
|
||||
self.handler = {}
|
||||
for k, v in ipairs(self._mapNode.btnChoose) do
|
||||
self.handler[k] = ui_handler(self, self.OnBtnSelect_Select, v, k)
|
||||
v.onSelect:AddListener(self.handler[k])
|
||||
end
|
||||
self.nSelectIdx = 0
|
||||
self.closeCallBack = self._panel.closeCallback
|
||||
self._mapNode.goBlur:SetActive(true)
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
self:Refresh()
|
||||
self._mapNode.rtSelectOption:SetActive(true)
|
||||
end
|
||||
cs_coroutine.start(wait)
|
||||
GamepadUIManager.EnableGamepadUI("StarTowerFastBattleOptionCtrl", self:GetGamepadUINode())
|
||||
self:SetSprite_Coin(self._mapNode.imgCoin, AllEnum.CoinItemId.FixedRogCurrency)
|
||||
NovaAPI.SetTMPText(self._mapNode.textCoinCount, self:ThousandsNumber(self._panel.nCoinCount))
|
||||
end
|
||||
function StarTowerFastBattleOptionCtrl:OnDisable()
|
||||
GamepadUIManager.DisableGamepadUI("StarTowerFastBattleOptionCtrl")
|
||||
if self.closeCallBack ~= nil and type(self.closeCallBack) == "function" then
|
||||
self.closeCallBack()
|
||||
end
|
||||
self.closeCallBack = nil
|
||||
for k, v in ipairs(self._mapNode.btnChoose) do
|
||||
v.onSelect:RemoveListener(self.handler[k])
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleOptionCtrl:OnDestroy()
|
||||
end
|
||||
function StarTowerFastBattleOptionCtrl:Refresh()
|
||||
self._mapNode.rtChoose[1]:SetActive(self._panel.bShop)
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPChoose[1], ConfigTable.GetUIText("StarTower_Sweep_Option_1"))
|
||||
self._mapNode.rtChoose[2]:SetActive(self._panel.bMachine)
|
||||
self:RefreshMachineCost()
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPChoose[3], ConfigTable.GetUIText("StarTower_Sweep_Option_3"))
|
||||
self._mapNode.rtChoose[3]:SetActive(not self._panel.bLastFloor)
|
||||
self._mapNode.rtChoose[5]:SetActive(self._panel.bLastFloor)
|
||||
local sTips = ConfigTable.GetUIText("StarTower_Sweep_Option_Title")
|
||||
if self._panel.bLastFloor then
|
||||
sTips = ConfigTable.GetUIText("StartowerFastBattle_LastRoom_Title")
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.TMP_Title, sTips)
|
||||
local tbBtnObj = {}
|
||||
local bFirst = true
|
||||
local add = function(i)
|
||||
table.insert(tbBtnObj, self._mapNode.btnChoose[i])
|
||||
if bFirst then
|
||||
bFirst = false
|
||||
self.nSelectIdx = i
|
||||
end
|
||||
end
|
||||
if self._panel.bShop then
|
||||
add(1)
|
||||
end
|
||||
if self._panel.bMachine then
|
||||
add(2)
|
||||
end
|
||||
if self._panel.bLastFloor then
|
||||
add(5)
|
||||
else
|
||||
add(3)
|
||||
end
|
||||
GamepadUIManager.SetNavigation(tbBtnObj, false)
|
||||
self:SelectChoose()
|
||||
end
|
||||
function StarTowerFastBattleOptionCtrl:RefreshMachineCost()
|
||||
self.nMachineCost = 120
|
||||
if nil ~= self.tbStrengthMachineCost then
|
||||
local times = self._panel.nMachineCount + 1
|
||||
self.nMachineCost = self.tbStrengthMachineCost[times]
|
||||
if self.nMachineCost == nil then
|
||||
self.nMachineCost = self.tbStrengthMachineCost[#self.tbStrengthMachineCost]
|
||||
end
|
||||
self.nMachineCost = self.nMachineCost - self._panel.nDiscount
|
||||
if self._panel.bFirstFree then
|
||||
self.nMachineCost = 0
|
||||
end
|
||||
end
|
||||
local sCost = self.nMachineCost == 0 and ConfigTable.GetUIText("ST_StrengthenMachine_Free") or tostring(self.nMachineCost)
|
||||
NovaAPI.SetTMPText(self._mapNode.TMPChoose[2], orderedFormat(ConfigTable.GetUIText("StarTower_Sweep_Option_2"), self._panel.nCoinCount < self.nMachineCost and "#BD3059" or "#264278", sCost))
|
||||
end
|
||||
function StarTowerFastBattleOptionCtrl:OnBtnClick_Select(btn)
|
||||
local nIdx = table.indexof(self._mapNode.btnChoose, btn)
|
||||
if nIdx == 1 then
|
||||
EventManager.Hit("StarTowerFastBattleOpenShop")
|
||||
elseif nIdx == 2 then
|
||||
EventManager.Hit("StarTowerFastBattleOpenMachine")
|
||||
elseif nIdx == 3 then
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.StarTowerFastBattleOption)
|
||||
elseif nIdx == 5 then
|
||||
EventManager.Hit("TryCloseStarTowerLastShop", self._panel.bMachine, self.nMachineCost)
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleOptionCtrl:OnEvent_RefreshStrengthMachineCost(nMachineCount, bFirstFree)
|
||||
self._panel.nMachineCount = nMachineCount
|
||||
self._panel.bFirstFree = bFirstFree
|
||||
self:RefreshMachineCost()
|
||||
end
|
||||
function StarTowerFastBattleOptionCtrl:OnEvent_RefreshStarTowerCoin(nCoinCount)
|
||||
self._panel.nCoinCount = nCoinCount
|
||||
self:RefreshMachineCost()
|
||||
NovaAPI.SetTMPText(self._mapNode.textCoinCount, self:ThousandsNumber(self._panel.nCoinCount))
|
||||
end
|
||||
function StarTowerFastBattleOptionCtrl:OnBtnSelect_Select(btn, nIndex)
|
||||
if self.nSelectIdx == nIndex then
|
||||
return
|
||||
end
|
||||
for k, v in ipairs(self._mapNode.Select) do
|
||||
if k == nIndex then
|
||||
if GamepadUIManager.GetCurUIType() ~= AllEnum.GamepadUIType.Other and GamepadUIManager.GetCurUIType() ~= AllEnum.GamepadUIType.Mouse then
|
||||
v:SetActive(true)
|
||||
else
|
||||
v:SetActive(false)
|
||||
end
|
||||
elseif k == self.nSelectIdx then
|
||||
v:SetActive(false)
|
||||
end
|
||||
end
|
||||
self.nSelectIdx = nIndex
|
||||
end
|
||||
function StarTowerFastBattleOptionCtrl:OnEvent_GamepadUIChange(sName, nBeforeType, nAfterType)
|
||||
if sName ~= "StarTowerFastBattleOptionCtrl" then
|
||||
return
|
||||
end
|
||||
local bNeedSelect = nBeforeType == AllEnum.GamepadUIType.Other and nAfterType ~= AllEnum.GamepadUIType.Mouse or nBeforeType == AllEnum.GamepadUIType.Mouse and nAfterType ~= AllEnum.GamepadUIType.Other
|
||||
if bNeedSelect then
|
||||
for k, v in ipairs(self._mapNode.btnChoose) do
|
||||
if k == self.nSelectIdx then
|
||||
self._mapNode.Select[k]:SetActive(true)
|
||||
GamepadUIManager.SetSelectedUI(self._mapNode.btnChoose[self.nSelectIdx].gameObject)
|
||||
end
|
||||
end
|
||||
else
|
||||
for k, v in ipairs(self._mapNode.btnChoose) do
|
||||
self._mapNode.Select[k]:SetActive(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattleOptionCtrl:OnEvent_Reopen(sName)
|
||||
if sName ~= "StarTowerFastBattleOptionCtrl" then
|
||||
return
|
||||
end
|
||||
local nSelect = self.nSelectIdx ~= 0 and self.nSelectIdx or 3
|
||||
GamepadUIManager.SetSelectedUI(self._mapNode.btnChoose[nSelect].gameObject)
|
||||
self:SelectChoose()
|
||||
end
|
||||
function StarTowerFastBattleOptionCtrl:SelectChoose()
|
||||
local nUIType = GamepadUIManager.GetCurUIType()
|
||||
if nUIType ~= AllEnum.GamepadUIType.Other and nUIType ~= AllEnum.GamepadUIType.Mouse then
|
||||
if self.nSelectIdx ~= 0 then
|
||||
self._mapNode.Select[self.nSelectIdx]:SetActive(true)
|
||||
GamepadUIManager.SetSelectedUI(self._mapNode.btnChoose[self.nSelectIdx].gameObject)
|
||||
end
|
||||
else
|
||||
for k, v in ipairs(self._mapNode.btnChoose) do
|
||||
self._mapNode.Select[k]:SetActive(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
return StarTowerFastBattleOptionCtrl
|
||||
@@ -0,0 +1,25 @@
|
||||
local StarTowerFastBattleOptionPanel = class("StarTowerFastBattleOptionPanel", BasePanel)
|
||||
StarTowerFastBattleOptionPanel._bIsMainPanel = false
|
||||
StarTowerFastBattleOptionPanel._tbDefine = {
|
||||
{
|
||||
sPrefabPath = "StarTowerFastBattle/StarTowerFastBattleOptionPanel.prefab",
|
||||
sCtrlName = "Game.UI.StarTowerFastBattle.StarTowerFastBattleOptionCtrl"
|
||||
}
|
||||
}
|
||||
function StarTowerFastBattleOptionPanel:Awake()
|
||||
self.bShop = self:GetPanelParam()[1]
|
||||
self.bMachine = self:GetPanelParam()[2]
|
||||
self.nMachineCount = self:GetPanelParam()[3]
|
||||
self.nCoinCount = self:GetPanelParam()[4]
|
||||
self.closeCallback = self:GetPanelParam()[5]
|
||||
self.nDiscount = self:GetPanelParam()[6]
|
||||
self.bFirstFree = self:GetPanelParam()[7]
|
||||
self.bLastFloor = self:GetPanelParam()[8]
|
||||
end
|
||||
function StarTowerFastBattleOptionPanel:OnEnable()
|
||||
end
|
||||
function StarTowerFastBattleOptionPanel:OnDisable()
|
||||
end
|
||||
function StarTowerFastBattleOptionPanel:OnDestroy()
|
||||
end
|
||||
return StarTowerFastBattleOptionPanel
|
||||
@@ -0,0 +1,117 @@
|
||||
local StarTowerFastBattlePanel = class("StarTowerFastBattlePanel", BasePanel)
|
||||
local GamepadUIManager = require("GameCore.Module.GamepadUIManager")
|
||||
StarTowerFastBattlePanel._tbDefine = {
|
||||
{
|
||||
sPrefabPath = "StarTowerFastBattle/StarTowerFastBattlePanel.prefab",
|
||||
sCtrlName = "Game.UI.StarTowerFastBattle.StarTowerFastBattleCtrl"
|
||||
},
|
||||
{
|
||||
sPrefabPath = "StarTower/PotentialSelectPanel.prefab",
|
||||
sCtrlName = "Game.UI.StarTower.Potential.PotentialSelectCtrl"
|
||||
},
|
||||
{
|
||||
sPrefabPath = "StarTower/PotentialLevelUpPanel.prefab",
|
||||
sCtrlName = "Game.UI.StarTower.Potential.PotentialLevelUpCtrl"
|
||||
},
|
||||
{
|
||||
sPrefabPath = "StarTower/FateCardSelectPanel.prefab",
|
||||
sCtrlName = "Game.UI.StarTower.FateCard.FateCardSelectCtrl"
|
||||
},
|
||||
{
|
||||
sPrefabPath = "StarTower/DiscSkillActivePanel.prefab",
|
||||
sCtrlName = "Game.UI.StarTower.DiscTips.DiscSkillActiveCtrl"
|
||||
},
|
||||
{
|
||||
sPrefabPath = "StarTower/StarTowerNotePanel.prefab",
|
||||
sCtrlName = "Game.UI.StarTower.StarTowerNoteCtrl"
|
||||
},
|
||||
{
|
||||
sPrefabPath = "StarTower/StarTowerDepotPanel.prefab",
|
||||
sCtrlName = "Game.UI.StarTower.Depot.StarTowerDepotCtrl"
|
||||
}
|
||||
}
|
||||
function StarTowerFastBattlePanel:Awake()
|
||||
self.trUIRoot = GameObject.Find("---- UI ----").transform
|
||||
local tbStarTowerInfo = self:GetPanelParam()[1]
|
||||
local luaClass = require("Game.Adventure.StarTower.StarTowerSweepData")
|
||||
self.LevelData = luaClass.new(tbStarTowerInfo.Meta.Id)
|
||||
self.LevelData:Init(tbStarTowerInfo.Meta, tbStarTowerInfo.Room, tbStarTowerInfo.Bag)
|
||||
EventManager.Hit("SetStarTowerSweepData", self.LevelData)
|
||||
self.tbTeam = self.LevelData.tbTeam
|
||||
self.tbDisc = self.LevelData.tbDisc
|
||||
self.mapCharData = self.LevelData.mapCharData
|
||||
self.mapDiscData = self.LevelData.mapDiscData
|
||||
self.mapPotentialAddLevel = self.LevelData.mapPotentialAddLevel
|
||||
self.nStarTowerId = self.LevelData.nTowerId
|
||||
self.tbShowNote = {}
|
||||
local mapCfg = ConfigTable.GetData("StarTower", self.nStarTowerId)
|
||||
if mapCfg ~= nil then
|
||||
local nDropGroup = mapCfg.SubNoteSkillDropGroupId
|
||||
local tbNoteDrop = CacheTable.GetData("_SubNoteSkillDropGroup", nDropGroup)
|
||||
if tbNoteDrop ~= nil then
|
||||
for _, v in ipairs(tbNoteDrop) do
|
||||
table.insert(self.tbShowNote, v.SubNoteSkillId)
|
||||
end
|
||||
end
|
||||
end
|
||||
table.sort(self.tbShowNote, function(a, b)
|
||||
return a < b
|
||||
end)
|
||||
GamepadUIManager.EnterAdventure(true)
|
||||
end
|
||||
function StarTowerFastBattlePanel:SetTop(goCanvas)
|
||||
local nTopLayer = 0
|
||||
if nil ~= self.trUIRoot then
|
||||
local nChildCount = self.trUIRoot.childCount
|
||||
local trChild
|
||||
for i = 1, nChildCount do
|
||||
trChild = self.trUIRoot:GetChild(i - 1)
|
||||
nTopLayer = math.max(nTopLayer, NovaAPI.GetCanvasSortingOrder(trChild:GetComponent("Canvas")))
|
||||
end
|
||||
end
|
||||
if 0 < nTopLayer then
|
||||
NovaAPI.SetCanvasSortingOrder(goCanvas, nTopLayer + 1)
|
||||
end
|
||||
end
|
||||
function StarTowerFastBattlePanel:CheckMainChar(nCharId)
|
||||
if self.tbTeam ~= nil then
|
||||
for k, v in ipairs(self.tbTeam) do
|
||||
if v == nCharId then
|
||||
return k == 1
|
||||
end
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
function StarTowerFastBattlePanel:GetSkillLevel(nCharId)
|
||||
local mapChar = self.mapCharData[nCharId]
|
||||
local tbList = {}
|
||||
tbList[GameEnum.skillSlotType.NORMAL] = mapChar and mapChar.tbSkillLvs[1] or 1
|
||||
tbList[GameEnum.skillSlotType.B] = mapChar and mapChar.tbSkillLvs[2] or 1
|
||||
tbList[GameEnum.skillSlotType.C] = mapChar and mapChar.tbSkillLvs[3] or 1
|
||||
tbList[GameEnum.skillSlotType.D] = mapChar and mapChar.tbSkillLvs[4] or 1
|
||||
return tbList
|
||||
end
|
||||
function StarTowerFastBattlePanel:OnEnable()
|
||||
PlayerData.State:SetStarTowerSweepState(true)
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.MainlineFormation)
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.MainlineFormationDisc)
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.RegionBossFormation)
|
||||
end
|
||||
cs_coroutine.start(wait)
|
||||
end
|
||||
function StarTowerFastBattlePanel:OnDisable()
|
||||
PlayerData.State:SetStarTowerSweepState(false)
|
||||
GamepadUIManager.QuitAdventure()
|
||||
end
|
||||
function StarTowerFastBattlePanel:OnDestroy()
|
||||
self.LevelData:UnBindEvent()
|
||||
EventManager.Hit("SetStarTowerSweepData")
|
||||
end
|
||||
function StarTowerFastBattlePanel:OnRelease()
|
||||
end
|
||||
function StarTowerFastBattlePanel:OnAfterEnter()
|
||||
end
|
||||
return StarTowerFastBattlePanel
|
||||
Reference in New Issue
Block a user