08b515afd9
EN: 2.0.0.143 CN: 2.0.0.142 JP: 2.0.0.145 KR: 2.0.0.150
164 lines
4.6 KiB
Lua
164 lines
4.6 KiB
Lua
local ActivityStoryReceiveCtrl = class("ActivityStoryReceiveCtrl", BaseCtrl)
|
|
ActivityStoryReceiveCtrl._mapNodeConfig = {
|
|
btnReceiveCG = {
|
|
sComponentName = "UIButton",
|
|
callback = "OnBtnClick_ReceiveCG"
|
|
},
|
|
goOn = {},
|
|
goOff = {},
|
|
txtBtnReceive = {
|
|
nCount = 2,
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "StoryReview_Btn_ReceiveCG"
|
|
},
|
|
reddotGift = {},
|
|
goSafeArea = {
|
|
sNodeName = "----SafeAreaRoot----"
|
|
},
|
|
goProgress = {},
|
|
txtProgress = {sComponentName = "TMP_Text"},
|
|
goReceived = {},
|
|
txtReceived = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "StoryReview_CGReceived"
|
|
},
|
|
txtReceiveTip = {
|
|
sComponentName = "TMP_Text",
|
|
sLanguageId = "StoryReview_ReceiveCGSuc"
|
|
},
|
|
blur = {
|
|
sNodeName = "t_fullscreen_blur_blue"
|
|
},
|
|
aniBlur = {
|
|
sNodeName = "t_fullscreen_blur_blue",
|
|
sComponentName = "Animator"
|
|
},
|
|
btnBlur = {
|
|
sNodeName = "snapshot",
|
|
sComponentName = "Button",
|
|
callback = "OnBtnClick_ClosePopup"
|
|
},
|
|
goComplete = {
|
|
sNodeName = "--Complete--"
|
|
},
|
|
aniComplete = {
|
|
sNodeName = "--Complete--",
|
|
sComponentName = "Animator"
|
|
}
|
|
}
|
|
ActivityStoryReceiveCtrl._mapEventConfig = {
|
|
Story_Done = "OnEvent_Story_Done",
|
|
ActivityStoryReceive_SetVisible = "OnEvent_SetVisible"
|
|
}
|
|
ActivityStoryReceiveCtrl._mapRedDotConfig = {}
|
|
local State = {
|
|
Lock = 1,
|
|
CanReceive = 2,
|
|
Received = 3
|
|
}
|
|
function ActivityStoryReceiveCtrl:SetState(nState)
|
|
self.nState = nState
|
|
local bReceived = nState == State.Received
|
|
self._mapNode.btnReceiveCG.gameObject:SetActive(not bReceived)
|
|
self._mapNode.goOn:SetActive(nState == State.CanReceive)
|
|
self._mapNode.goOff:SetActive(nState == State.Lock)
|
|
self._mapNode.reddotGift:SetActive(nState == State.CanReceive)
|
|
self._mapNode.goProgress:SetActive(not bReceived)
|
|
self._mapNode.goReceived:SetActive(bReceived)
|
|
end
|
|
function ActivityStoryReceiveCtrl:SetProgress(nRead, nTotal)
|
|
local sFormat = ConfigTable.GetUIText("StoryReview_ReadProgress") or ""
|
|
NovaAPI.SetTMPText(self._mapNode.txtProgress, orderedFormat(sFormat, nRead or 0, nTotal or 0))
|
|
end
|
|
function ActivityStoryReceiveCtrl:RefreshState()
|
|
local nRead, nTotal = PlayerData.StoryReview:GetChapterReadProgress(self.nChapterId)
|
|
self:SetProgress(nRead, nTotal)
|
|
if PlayerData.StoryReview:IsChapterReadByHandbook(self.nChapterId) then
|
|
self:SetState(State.Received)
|
|
elseif 0 < nTotal and nTotal <= nRead then
|
|
self:SetState(State.CanReceive)
|
|
else
|
|
self:SetState(State.Lock)
|
|
end
|
|
end
|
|
function ActivityStoryReceiveCtrl:ShowPopup()
|
|
self._mapNode.blur:SetActive(true)
|
|
self._mapNode.goComplete:SetActive(true)
|
|
self._mapNode.aniComplete:Play("ActivityStoryReceivePanel_tips_in")
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 0.5)
|
|
end
|
|
function ActivityStoryReceiveCtrl:HidePopup()
|
|
self._mapNode.aniComplete:Play("ActivityStoryReceivePanel_tips_out")
|
|
self._mapNode.aniBlur:SetTrigger("tOut")
|
|
self:AddTimer(1, 0.33, function()
|
|
if self._mapNode == nil then
|
|
return
|
|
end
|
|
self._mapNode.goComplete:SetActive(false)
|
|
self._mapNode.blur:SetActive(false)
|
|
end, true, true, true)
|
|
EventManager.Hit(EventId.TemporaryBlockInput, 0.33)
|
|
end
|
|
function ActivityStoryReceiveCtrl:Awake()
|
|
local param = self:GetPanelParam()
|
|
if type(param) == "table" then
|
|
self.nActId = param[1]
|
|
self.bReview = param[2] == true
|
|
end
|
|
local mapCfg = ConfigTable.GetData("ActivityStoryChapter", self.nActId)
|
|
self.nChapterId = mapCfg ~= nil and mapCfg.ChapterId or 0
|
|
end
|
|
function ActivityStoryReceiveCtrl:OnEnable()
|
|
if not self.bReview then
|
|
self.gameObject:SetActive(false)
|
|
return
|
|
end
|
|
self._mapNode.goSafeArea:SetActive(true)
|
|
self:RefreshState()
|
|
end
|
|
function ActivityStoryReceiveCtrl:OnDisable()
|
|
end
|
|
function ActivityStoryReceiveCtrl:OnDestroy()
|
|
end
|
|
function ActivityStoryReceiveCtrl:OnBtnClick_ReceiveCG(btn)
|
|
if self.nState ~= State.CanReceive then
|
|
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("StoryReview_ReceiveLockTip"))
|
|
return
|
|
end
|
|
PlayerData.StoryReview:SendChapterPass(self.nChapterId, function()
|
|
if self._mapNode == nil then
|
|
return
|
|
end
|
|
self:RefreshState()
|
|
self:ShowPopup()
|
|
end)
|
|
end
|
|
function ActivityStoryReceiveCtrl:OnEvent_Story_Done(bHasReward)
|
|
if not self.bReview then
|
|
return
|
|
end
|
|
self:RefreshState()
|
|
end
|
|
function ActivityStoryReceiveCtrl:OnEvent_SetVisible(bShow)
|
|
if not self.bReview then
|
|
return
|
|
end
|
|
self.bWantShow = bShow == true
|
|
if self.bWantShow then
|
|
self._mapNode.goSafeArea:SetActive(true)
|
|
return
|
|
end
|
|
local wait = function()
|
|
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
|
if self._mapNode == nil or self.bWantShow then
|
|
return
|
|
end
|
|
self._mapNode.goSafeArea:SetActive(false)
|
|
end
|
|
cs_coroutine.start(wait)
|
|
end
|
|
function ActivityStoryReceiveCtrl:OnBtnClick_ClosePopup(btn)
|
|
self:HidePopup()
|
|
end
|
|
return ActivityStoryReceiveCtrl
|