8766830959
EN: 1.8.0.95 CN: 1.8.0.96 JP: 1.8.0.97 KR: 1.8.0.100
120 lines
3.8 KiB
Lua
120 lines
3.8 KiB
Lua
local TowerDefenseResultCtrl = class("TowerDefenseResultCtrl", BaseCtrl)
|
|
local WwiseManger = CS.WwiseAudioManager.Instance
|
|
TowerDefenseResultCtrl._mapNodeConfig = {
|
|
ButtonClose = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Close"
|
|
},
|
|
imgBlurredBg = {},
|
|
SuccessRoot = {},
|
|
go_Perfect = {},
|
|
txt_Perfect = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "TowerDef_Perfect"
|
|
},
|
|
txt_level = {sComponentName = "TMP_Text"},
|
|
db_target = {nCount = 3},
|
|
Mask = {
|
|
sComponentName = "CanvasGroup"
|
|
},
|
|
FailRoot = {},
|
|
Mask_fail = {
|
|
sComponentName = "CanvasGroup"
|
|
},
|
|
txt_level_fail = {sComponentName = "TMP_Text"},
|
|
db_target_fail = {nCount = 3}
|
|
}
|
|
TowerDefenseResultCtrl._mapEventConfig = {}
|
|
TowerDefenseResultCtrl._mapRedDotConfig = {}
|
|
function TowerDefenseResultCtrl:Awake()
|
|
local param = self:GetPanelParam()
|
|
if type(param) == "table" then
|
|
self.bResult = param[1]
|
|
self.sLevelName = param[2]
|
|
self.tbTarget = param[3]
|
|
self.callback = param[4]
|
|
self.msgData = param[5]
|
|
self.nStar = param[6] or 0
|
|
end
|
|
self._mapNode.SuccessRoot:SetActive(self.bResult)
|
|
self._mapNode.FailRoot:SetActive(not self.bResult)
|
|
self:SetContent()
|
|
self.bProcessingClose = false
|
|
end
|
|
function TowerDefenseResultCtrl:SetContent()
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 1)
|
|
WwiseManger:PostEvent("ui_loading_combatSFX_mute", nil, false)
|
|
WwiseManger:PlaySound("ui_roguelike_victory")
|
|
if self.bResult then
|
|
for _, target in pairs(self._mapNode.db_target) do
|
|
target:SetActive(false)
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txt_level, self.sLevelName)
|
|
for i = 1, math.min(#self.tbTarget, #self._mapNode.db_target) do
|
|
local target = self._mapNode.db_target[i]
|
|
local star = target.transform:Find("star_get")
|
|
local txt_target = target.transform:Find("txt_target")
|
|
star.gameObject:SetActive(self.tbTarget[i].bResult)
|
|
NovaAPI.SetTMPText(txt_target:GetComponent("TMP_Text"), self.tbTarget[i].sTargetDes)
|
|
target:SetActive(true)
|
|
end
|
|
self._mapNode.go_Perfect:SetActive(self.nStar // 10 == 1)
|
|
self:AddTimer(1, 0.9, function()
|
|
local mapReward = PlayerData.Item:ProcessRewardChangeInfo(self.msgData)
|
|
local tbItem = {}
|
|
for _, v in ipairs(mapReward.tbReward) do
|
|
local item = {
|
|
Tid = v.id,
|
|
Qty = v.count,
|
|
rewardType = AllEnum.RewardType.First
|
|
}
|
|
table.insert(tbItem, item)
|
|
end
|
|
UTILS.OpenReceiveByDisplayItem(tbItem, self.msgData)
|
|
end, true, true, true)
|
|
else
|
|
for _, target in pairs(self._mapNode.db_target_fail) do
|
|
target:SetActive(false)
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txt_level_fail, self.sLevelName)
|
|
for i = 1, math.min(#self.tbTarget, #self._mapNode.db_target_fail) do
|
|
local target = self._mapNode.db_target_fail[i]
|
|
local txt_target = target.transform:Find("txt_target")
|
|
NovaAPI.SetTMPText(txt_target:GetComponent("TMP_Text"), self.tbTarget[i].sTargetDes)
|
|
target:SetActive(true)
|
|
end
|
|
end
|
|
end
|
|
function TowerDefenseResultCtrl:OnBtnClick_Close()
|
|
if self.bProcessingClose then
|
|
return
|
|
end
|
|
self.bProcessingClose = true
|
|
if self.callback ~= nil then
|
|
self.callback()
|
|
end
|
|
if NovaAPI.GetCurrentModuleName() == "MainMenuModuleScene" then
|
|
CS.AdventureModuleHelper.LevelStateChanged(true, 0, false)
|
|
EventManager.Hit(EventId.CloesCurPanel)
|
|
PlayerData.Base:OnBackToMainMenuModule()
|
|
else
|
|
EventManager.Hit(EventId.ClosePanel, PanelId.TowerDefensePanel)
|
|
local mask
|
|
if self.bResult then
|
|
mask = self._mapNode.Mask
|
|
else
|
|
mask = self._mapNode.Mask_fail
|
|
end
|
|
NovaAPI.SetCanvasGroupAlpha(mask, 0)
|
|
mask.gameObject:SetActive(true)
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 0.5)
|
|
local sequence = DOTween.Sequence()
|
|
sequence:Append(mask:DOFade(1, 0.5):SetUpdate(true))
|
|
sequence:AppendCallback(function()
|
|
CS.AdventureModuleHelper.LevelStateChanged(true, 0, false)
|
|
end)
|
|
sequence:SetUpdate(true)
|
|
end
|
|
end
|
|
return TowerDefenseResultCtrl
|