e0549005e1
EN: 1.9.0.103 CN: 1.9.0.104 JP: 1.9.0.106 KR: 1.9.0.108
127 lines
4.3 KiB
Lua
127 lines
4.3 KiB
Lua
local PenguinCardPauseCtrl = class("PenguinCardPauseCtrl", BaseCtrl)
|
|
local PenguinCardUtils = require("Game.UI.Play_PenguinCard.PenguinCardUtils")
|
|
PenguinCardPauseCtrl._mapNodeConfig = {
|
|
blur = {
|
|
sNodeName = "t_fullscreen_blur_blue"
|
|
},
|
|
aniBlur = {
|
|
sNodeName = "t_fullscreen_blur_blue",
|
|
sComponentName = "Animator"
|
|
},
|
|
btnCloseBg = {
|
|
sNodeName = "snapshot",
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Close"
|
|
},
|
|
txtWindowTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "PenguinCard_Title_Pause"
|
|
},
|
|
window = {},
|
|
aniWindow = {sNodeName = "window", sComponentName = "Animator"},
|
|
btnClose = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Close"
|
|
},
|
|
txtTurnTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "PenguinCard_Pause_Turn"
|
|
},
|
|
txtTurnCount = {sComponentName = "TMP_Text"},
|
|
txtLeftTurn = {sComponentName = "TMP_Text"},
|
|
txtTargetTitle = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "PenguinCard_Pause_StarTarget"
|
|
},
|
|
goStar = {nCount = 3},
|
|
imgStarOff = {nCount = 3},
|
|
imgStarOn = {nCount = 3},
|
|
txtTarget = {nCount = 3, sComponentName = "TMP_Text"},
|
|
txtGameTarget = {sComponentName = "TMP_Text"},
|
|
btnGiveup = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Giveup"
|
|
},
|
|
txtBtnGiveup = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "PenguinCard_Btn_Giveup"
|
|
},
|
|
btnRestart = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_Restart"
|
|
},
|
|
txtBtnRestart = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "PenguinCard_Btn_Restart"
|
|
}
|
|
}
|
|
PenguinCardPauseCtrl._mapEventConfig = {}
|
|
function PenguinCardPauseCtrl:Open()
|
|
self._panel.mapLevel:Pause()
|
|
self:PlayInAni()
|
|
self:Refresh()
|
|
end
|
|
function PenguinCardPauseCtrl:Refresh()
|
|
if self._panel.mapLevel.nGameState == PenguinCardUtils.GameState.Prepare then
|
|
local nLeft = self._panel.mapLevel.nMaxTurn - self._panel.mapLevel.nCurTurn + 1
|
|
NovaAPI.SetTMPText(self._mapNode.txtLeftTurn, orderedFormat(ConfigTable.GetUIText("PenguinCard_Pause_LeftTurn"), nLeft))
|
|
NovaAPI.SetTMPText(self._mapNode.txtTurnCount, orderedFormat(ConfigTable.GetUIText("PenguinCard_Pause_TurnCount"), self._panel.mapLevel.nCurTurn - 1))
|
|
else
|
|
local nLeft = self._panel.mapLevel.nMaxTurn - self._panel.mapLevel.nCurTurn
|
|
NovaAPI.SetTMPText(self._mapNode.txtLeftTurn, orderedFormat(ConfigTable.GetUIText("PenguinCard_Pause_LeftTurn"), nLeft))
|
|
NovaAPI.SetTMPText(self._mapNode.txtTurnCount, orderedFormat(ConfigTable.GetUIText("PenguinCard_Pause_TurnCount"), self._panel.mapLevel.nCurTurn))
|
|
end
|
|
for i, v in ipairs(self._panel.mapLevel.tbStarScore) do
|
|
self._mapNode.imgStarOff[i]:SetActive(v > self._panel.mapLevel.nScore)
|
|
self._mapNode.imgStarOn[i]:SetActive(v <= self._panel.mapLevel.nScore)
|
|
NovaAPI.SetTMPText(self._mapNode.txtTarget[i], orderedFormat(ConfigTable.GetUIText("PenguinCard_Pause_StarDesc"), self:ThousandsNumber(v)))
|
|
end
|
|
NovaAPI.SetTMPText(self._mapNode.txtGameTarget, orderedFormat(ConfigTable.GetUIText("PenguinCard_Pause_StarDesc"), self:ThousandsNumber(self._panel.mapLevel.tbStarScore[1])))
|
|
end
|
|
function PenguinCardPauseCtrl:PlayInAni()
|
|
self.gameObject:SetActive(true)
|
|
self._mapNode.blur:SetActive(true)
|
|
local wait = function()
|
|
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
|
self._mapNode.window:SetActive(true)
|
|
self._mapNode.aniWindow:Play("t_window_04_t_in")
|
|
end
|
|
cs_coroutine.start(wait)
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
|
|
end
|
|
function PenguinCardPauseCtrl:Close()
|
|
self._mapNode.aniWindow:Play("t_window_04_t_out")
|
|
self._mapNode.aniBlur:SetTrigger("tOut")
|
|
self:AddTimer(1, 0.2, function()
|
|
self._mapNode.window:SetActive(false)
|
|
self.gameObject:SetActive(false)
|
|
self._panel.mapLevel:Resume()
|
|
end, true, true, true)
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 0.2)
|
|
end
|
|
function PenguinCardPauseCtrl:Awake()
|
|
self._mapNode.window:SetActive(false)
|
|
end
|
|
function PenguinCardPauseCtrl:OnEnable()
|
|
end
|
|
function PenguinCardPauseCtrl:OnDisable()
|
|
end
|
|
function PenguinCardPauseCtrl:OnBtnClick_Close()
|
|
self:Close()
|
|
end
|
|
function PenguinCardPauseCtrl:OnBtnClick_Giveup()
|
|
self:Close()
|
|
EventManager.Hit("PenguinCard_Pause_SwitchGame")
|
|
self:AddTimer(1, 0.2, function()
|
|
self._panel.mapLevel:CompleteGame()
|
|
end, true, true, true)
|
|
end
|
|
function PenguinCardPauseCtrl:OnBtnClick_Restart()
|
|
self:Close()
|
|
EventManager.Hit("PenguinCard_Pause_SwitchGame")
|
|
self:AddTimer(1, 0.2, function()
|
|
self._panel.mapLevel:RestartGame()
|
|
end, true, true, true)
|
|
end
|
|
return PenguinCardPauseCtrl
|