Major Update - 2.0.0.143

EN: 2.0.0.143
CN: 2.0.0.142
JP: 2.0.0.145
KR: 2.0.0.150
This commit is contained in:
SL1900
2026-10-20 13:00:00 +09:00
parent 4bcada6061
commit 08b515afd9
1773 changed files with 1095195 additions and 65670 deletions
+61 -1
View File
@@ -30,6 +30,10 @@ DatingEventCtrl._mapNodeConfig = {
goEventEndItem = {
sComponentName = "RectTransform"
},
animEventEndItem = {
sNodeName = "goEventEndItem",
sComponentName = "Animator"
},
goEventSelectionItem = {},
endItemLayoutElement = {
sNodeName = "goEventEndItem",
@@ -71,6 +75,7 @@ DatingEventCtrl._mapEventConfig = {
DatingEventNext = "OnEvent_DatingEventNext"
}
function DatingEventCtrl:SetEventList(tbEvent, tbEventId)
self:ReleaseSkipInputBlock()
self.tbEventId = {}
for i = 1, #tbEventId do
table.insert(self.tbEventId, tbEventId[i])
@@ -209,7 +214,11 @@ function DatingEventCtrl:OnEnable()
self._mapNode.imgAutoPlay1.gameObject:SetActive(true)
self._mapNode.imgAutoPlay2.gameObject:SetActive(false)
end
function DatingEventCtrl:OnPreExit()
self:ReleaseSkipInputBlock()
end
function DatingEventCtrl:OnDisable()
self:ReleaseSkipInputBlock()
for nInstanceId, objCtrl in pairs(self.tbEventItemCtrl) do
self:UnbindCtrlByNode(objCtrl)
self.tbEventItemCtrl[nInstanceId] = nil
@@ -238,6 +247,16 @@ function DatingEventCtrl:OnBtnClick_AutoPlay()
end
function DatingEventCtrl:OnBtnClick_Skip()
if self.nCurIndex <= #self.tbEventItemCtrl then
if not self._bSkipInputBlocked then
self._bSkipInputBlocked = true
EventManager.Hit(EventId.BlockInput, true)
self._objSkipInputTimeoutTimer = self:AddTimer(1, 10, function()
printWarn("DatingEventCtrl: skip input block timed out")
self:ReleaseSkipInputBlock()
end, true, true, true)
end
self._bSkipLayoutReady = false
self._bSkipEndAnimFinished = false
self.bSkip = true
self.tbEventItemCtrl[self.nCurIndex]:SkipTimer()
for i = self.nCurIndex, #self.tbEventItemCtrl do
@@ -246,20 +265,61 @@ function DatingEventCtrl:OnBtnClick_Skip()
end
self._mapNode.btnNextEvent.gameObject:SetActive(false)
self.tbEventItemCtrl[#self.tbEventItemCtrl]:SkipTimer()
local objSkipInputTimer = self._objSkipInputTimeoutTimer
local wait = function()
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
if not self._bSkipInputBlocked or self._objSkipInputTimeoutTimer ~= objSkipInputTimer then
return
end
CS.UnityEngine.Canvas.ForceUpdateCanvases()
CS.UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(self._mapNode.goContent)
NovaAPI.SetVerticalNormalizedPosition(self._mapNode.eventListSV, 0)
self._bSkipLayoutReady = true
self:TryReleaseSkipInputBlock()
end
cs_coroutine.start(wait)
EventManager.Hit(EventId.TemporaryBlockInput, 3)
if self.tbEventId[#self.tbEventId].nType == GameEnum.DatingEventType.End then
self._mapNode.goEventEndItem:SetParent(self._mapNode.goContent)
self._mapNode.btnNextEvent.gameObject:SetActive(false)
self._mapNode.goEventEndItem.gameObject:SetActive(true)
EventManager.Hit("DatingEventFinish")
if self._objSkipEndAnimTimer == nil then
do
local nAnimLength = NovaAPI.GetAnimClipLength(self._mapNode.animEventEndItem, {
"DatingPanel_EventEndItem_in"
})
if 0 < nAnimLength then
self._objSkipEndAnimTimer = self:AddTimer(1, nAnimLength, function()
self._bSkipEndAnimFinished = true
self:TryReleaseSkipInputBlock()
end, true, true, true)
end
end
end
end
end
end
function DatingEventCtrl:TryReleaseSkipInputBlock()
if self._bSkipInputBlocked and self._bSkipLayoutReady and self._bSkipEndAnimFinished then
self:ReleaseSkipInputBlock()
end
end
function DatingEventCtrl:ReleaseSkipInputBlock()
if self._objSkipEndAnimTimer ~= nil then
self._objSkipEndAnimTimer:Cancel()
self._objSkipEndAnimTimer = nil
end
if self._objSkipInputTimeoutTimer ~= nil then
self._objSkipInputTimeoutTimer:Cancel()
self._objSkipInputTimeoutTimer = nil
end
self._bSkipLayoutReady = false
self._bSkipEndAnimFinished = false
if self._bSkipInputBlocked then
self._bSkipInputBlocked = false
EventManager.Hit(EventId.BlockInput, false)
end
end
function DatingEventCtrl:OnBtnClick_Send()
EventManager.Hit("DatingSendGift")
end