Update - 1.10.1.110

EN: 1.10.1.110
CN: 1.10.1.111
JP: 1.10.1.115
KR: 1.10.1.115
This commit is contained in:
SL1900
2026-05-26 15:30:00 +09:00
parent 8bf861bd70
commit 8a2a0f2a29
97 changed files with 10731 additions and 1875 deletions
+4 -4
View File
@@ -3424,7 +3424,7 @@ return {
"",
false,
"",
"Hmph...==W== He's gotten really comfortable ordering people around. Being in the Imperial Guard really gets into people's heads, huh?",
"Hmph...==W== She's gotten really comfortable ordering people around. Being in the Imperial Guard really gets into people's heads, huh?",
""
}
},
@@ -3789,7 +3789,7 @@ return {
"",
false,
"",
"So the problem is the outfit, right?==W== I get what he means, but what exactly counts as heroine energy?==W== Hmmm...",
"So the problem is the outfit, right?==W== I get what she means, but what exactly counts as heroine energy?==W== Hmmm...",
""
}
},
@@ -4861,7 +4861,7 @@ return {
"",
false,
"",
"Fashion magazines.==W== The director told me to prepare an outfit that feels more like a heroine, didn't he? So I figured I'd flip through some and see if I get any inspiration.",
"Fashion magazines.==W== The director told me to prepare an outfit that feels more like a heroine, didn't she? So I figured I'd flip through some and see if I get any inspiration.",
""
}
},
@@ -7234,7 +7234,7 @@ return {
"",
false,
"",
"What?==W== That's ....==W== <i>Goodbye, My Landmine Childhood Friend</i>?! Why is it here?!",
"What?==W== That's ...==W== <i>Goodbye, My Landmine Childhood Friend</i>?! Why is it here?!",
""
}
},
+2 -2
View File
@@ -1750,7 +1750,7 @@ return {
"",
false,
"",
"<size=80%>I.... I'm Vollara.</size>",
"<size=80%>I I'm Vollara.</size>",
""
}
},
@@ -5444,7 +5444,7 @@ return {
"",
false,
"",
"O mighty God of Grace, please hear our prayer...Please grant me...",
"O mighty God of Grace, please hear our prayerPlease grant me...",
""
}
},
+6 -6
View File
@@ -641,7 +641,7 @@ return {
"",
false,
"",
"After lunch, we're going straight into Tilia and Minova's scene together.==W== Everyone get ready. Let's try to nail it in one take.",
"After lunch, we're going straight into Tilia and Minova's scene together.==W== Everyone, get ready. Let's try to nail it in one take.",
""
}
},
@@ -2728,7 +2728,7 @@ return {
"",
false,
"",
"Huff...huff... The reinforcements just keep coming...",
"Huff… Huff… The reinforcements just keep coming",
""
}
},
@@ -9093,7 +9093,7 @@ return {
"",
false,
"",
"...Unforgivable.",
"… Unforgivable.",
""
}
},
@@ -9170,7 +9170,7 @@ return {
"",
false,
"",
"... Huh?",
" Huh?",
""
}
},
@@ -9231,7 +9231,7 @@ return {
"",
false,
"",
" ==RT== ==RT== ==RT== ==RT== ==RT==<color=#bd3059>Unforgivable unforgivable unforgivable unforgivable unforgivable unforgivable unforgivable unforgivable unforgivable unforgivable unforgivable unforgivable...</color>",
" ==RT== ==RT== ==RT== ==RT== ==RT==<color=#bd3059>Unforgivable unforgivable unforgivable==RT==unforgivable unforgivable unforgivable==RT==unforgivable unforgivable unforgivable==RT==unforgivable unforgivable unforgivable...</color>",
""
}
},
@@ -12037,7 +12037,7 @@ return {
"",
false,
"",
"O-oh. is that so...?==W== I should be the one thanking you.==W== Well, I've dropped off the gift, so I should get going.",
"O-oh, is that so...?==W== I should be the one thanking you.==W== Well, I've dropped off the gift, so I should get going.",
""
}
},
+1 -1
View File
@@ -2807,7 +2807,7 @@ return {
cmd = "SetTalk",
param = {
9,
"avg3_214",
"星輝会研究員",
"",
0,
"",
+1 -1
View File
@@ -2807,7 +2807,7 @@ return {
cmd = "SetTalk",
param = {
9,
"avg3_214",
"성휘회 연구원",
"",
0,
"",
+27 -17
View File
@@ -3349,7 +3349,7 @@ return {
"",
false,
"",
"<size=43>아야메는 반년간 필사적으로 공부했지만…… 은혜의지 입사 시험에 붙지는 못했고, 결과적으로 초록색 새</size> <size=43>로고로 쓰는 식품 가공 기술 컴퍼니에서 일하게 되었다.==P== </size> ==W====RT==<size=43>그 뒤엔 아주 순조로워서, 몇 개월 만에 관리직에 올랐지만……</size>==P== ==W====RT==<size=43>아야메의 승진 축하연 다음 날, 동료들은 상품을 들고 홀연히 자취를 감춰버렸다.</size>==RT==<size=43>결국, 미지급 외상 청구와 분노한 납품처의 연락을 혼자 대응하게 된다.</size>==RT==",
"<size=43>아야메는 반년간 필사적으로 공부했지만…… 은혜의지 입사 시험에 붙지는 못했고, 결과적으로 초록색 새</size> <size=43>로고로 쓰는 식품 가공 기술 컴퍼니에서 일하게 되었다.==P== </size> ==W====RT====RT==<size=43>그 뒤엔 아주 순조로워서, 몇 개월 만에 관리직에 올랐지만……</size>==P== ==W====RT====RT==<size=43>아야메의 승진 축하연 다음 날, 동료들은 상품을 들고 홀연히 자취를 감춰버렸다.</size>==RT==<size=43>결국, 미지급 외상 청구와 분노한 납품처의 연락을 혼자 대응하게 된다.</size>",
""
}
},
@@ -3433,7 +3433,7 @@ return {
"",
false,
"",
"<size=43>코하쿠는 고양이 카페의 직원으로 일하기 시작했다. 다른 직원이나 손님들과의 교류에 울렁증은 있었지만,</size> <size=43>가게의 고양이와는 마음이 통했다.==P==</size>==W====RT==<size=43>그러나 어느 날…… 카페에서==W== 폭발 사고가 일어나, 가게는 대혼란. 다행히 부상자는 나오지 않았지만……</size> <size=43>결국 그 뒤, 카페는 영업을 재개하지 못했다.</size>",
"<size=43>코하쿠는 고양이 카페의 직원으로 일하기 시작했다. 다른 직원이나 손님들과의 교류에 울렁증은 있었지만,</size> <size=43>가게의 고양이와는 마음이 통했다.==P==</size>==W====RT==<size=43>그러나 어느 날…… 카페에서 폭발 사고가 일어나, 가게는 대혼란. 다행히 부상자는 나오지 않았지만……</size> <size=43>결국 그 뒤, 카페는 영업을 재개하지 못했다.</size>",
""
}
},
@@ -4929,14 +4929,24 @@ return {
1,
0,
"0",
"OutSine",
"Linear",
false,
false,
0.6,
0.85,
false,
"default"
}
},
{
cmd = "SetSceneHeading",
param = {
"??:??",
"??월",
"??일",
"????",
"하얀 방"
}
},
{
cmd = "Wait",
param = {0.4}
@@ -5076,7 +5086,7 @@ return {
cmd = "SetTalk",
param = {
0,
"거울을 들고 있는 소녀",
"랜턴을 들고 있는 소녀",
"",
0,
"",
@@ -5163,7 +5173,7 @@ return {
cmd = "SetTalk",
param = {
0,
"랜턴을 들고 있는 소녀",
"",
"",
1,
"",
@@ -5300,7 +5310,7 @@ return {
cmd = "SetTalk",
param = {
0,
"거울을 들고 있는 소녀",
"",
"",
0,
"",
@@ -5414,7 +5424,7 @@ return {
cmd = "SetTalk",
param = {
0,
"랜턴을 들고 있는 소녀",
"",
"",
0,
"",
@@ -5686,7 +5696,7 @@ return {
cmd = "SetTalk",
param = {
0,
"랜턴을 들고 있는 소녀",
"거울을 들고 있는 소녀",
"",
1,
"",
@@ -5725,7 +5735,7 @@ return {
cmd = "SetTalk",
param = {
0,
"거울을 들고 있는 소녀",
"",
"",
0,
"",
@@ -5939,7 +5949,7 @@ return {
cmd = "SetTalk",
param = {
0,
"거울을 들고 있는 소녀",
"",
"",
0,
"",
@@ -6028,7 +6038,7 @@ return {
cmd = "SetTalk",
param = {
0,
"거울을 들고 있는 소녀",
"랜턴을 들고 있는 소녀",
"",
0,
"",
@@ -6196,7 +6206,7 @@ return {
cmd = "SetTalk",
param = {
0,
"랜턴을 들고 있는 소녀",
"거울을 들고 있는 소녀",
"",
1,
"",
@@ -6235,7 +6245,7 @@ return {
cmd = "SetTalk",
param = {
0,
"거울을 들고 있는 소녀",
"",
"",
0,
"",
@@ -6450,7 +6460,7 @@ return {
cmd = "SetTalk",
param = {
0,
"랜턴을 들고 있는 소녀",
"",
"",
0,
"",
@@ -6614,7 +6624,7 @@ return {
cmd = "SetTalk",
param = {
0,
"거울을 들고 있는 소녀",
"랜턴을 들고 있는 소녀",
"",
1,
"",
@@ -6653,7 +6663,7 @@ return {
cmd = "SetTalk",
param = {
0,
"랜턴을 들고 있는 소녀",
"",
"",
0,
"",
+1 -1
View File
@@ -12512,7 +12512,7 @@ return {
"",
false,
"",
"그 점은 걱정하지 않으셔도 됩니다. ==W==마왕님, 저희 은혜의지가 갑작스럽게 별의 탑 입찰을 시작한 이유는 알고 계십니까?",
"그 점은 걱정하지 않으셔도 됩니다. ==W==마왕님, 은혜의지가 갑작스럽게 별의 탑 입찰을 시작한 이유는 알고 계십니까?",
""
}
},
+2 -2
View File
@@ -3268,7 +3268,7 @@ return {
param = {
"avg1_163",
"그레이스혼",
"제국 호위대 기사",
"제국 호위대 기사장",
"a",
"002",
nil,
@@ -3461,7 +3461,7 @@ return {
"",
false,
"",
"다만 이번엔 이례적으로 제국 호위대의 대표로서 별의 탑 입찰에 참여하셨는데, 필리에에서 가장 가까운 곳에 있는 기사장이라 머릿수를 채우려고 불려 오신 것뿐이에요.",
"다만 이번엔 이례적으로 제국 호위대의 대표로서 별의 탑 입찰에 참여하셨는데, 필리에에서 가장 가까운 곳에 있는 기사장이라 머릿수를 채우려고 불려 오신 것뿐이에요.",
""
}
},
+1 -1
View File
@@ -8198,7 +8198,7 @@ return {
"",
false,
"",
"그럼 그냥 이 그림책 표지에 나온 의상으로 하는 건 어떻슴까!==W== 세 보이기도 하고, 안대도 완전 쿨해 보이는 게 딱 윈드 애시 스타일의 여주인공임다!",
"그럼 그냥 이 그림책 표지에 나온 의상으로 하는 건 어떻슴까!==W== 세 보이기도 하고, 안대도 완전 멋있어 보이는 게 딱 윈드 애시 스타일의 여주인공임다!",
""
}
},
+12 -12
View File
@@ -2014,7 +2014,7 @@ return {
"",
false,
"",
"무서운 소문이 아주 많단 말이에요~.",
"무서운 소문이 아주 많단 말이에요~",
""
}
},
@@ -2437,7 +2437,7 @@ return {
"",
false,
"",
"그게 말이지……==W== 설명하자면 좀 긴데, 실은 이래——",
"그게 말이지……==W== 설명하자면 좀 긴데, 실은 이래……",
""
}
},
@@ -3832,7 +3832,7 @@ return {
"",
false,
"",
"너희 둘 다 진정해. ==W==우리의 원래 목적은 감독을 만족시킬 만한 ‘여주인공’ 의상을 찾는 거였잖아—— 꼭 지뢰계일 필요는 없지 않아?",
"너희 둘 다 진정해. ==W==우리의 원래 목적은 감독을 만족시킬 만한 ‘여주인공’ 의상을 찾는 거였잖아…… 꼭 지뢰계일 필요는 없지 않아?",
""
}
},
@@ -4930,7 +4930,7 @@ return {
"",
false,
"",
"그럼 우선 소원 상자부터 찾으러 가죠. ==W==자, 저를 따라오세요——!!!",
"그럼 우선 소원 상자부터 찾으러 가죠. ==W==자, 저를 따라오세요……!!!",
""
}
},
@@ -5444,7 +5444,7 @@ return {
"",
false,
"",
"만능의 은혜의 신이시여, 경건한 마음으로 당신께 소원을 빕니다.부디 제게——",
"만능의 은혜의 신이시여, 경건한 마음으로 당신께 소원을 빕니다.부디 제게……",
""
}
},
@@ -5530,7 +5530,7 @@ return {
"",
false,
"",
"있지…… ==W==도대체 어떻게 해야 나만 바라봐 줄 거야?==W== 난 이렇게나 널 사랑하는데, 왜 넌 나를 봐주지 않는 거니?",
"있지…… ==W==도대체 어떻게 해야 나만 바라봐 줄 거야?==W== 난 이렇게나 널 사랑하는데, 왜 넌 나를 봐주지 않는 거니?",
""
}
},
@@ -6361,7 +6361,7 @@ return {
"",
false,
"",
"내가 정말 좋아하는 책……==W== 「안녕, 지뢰계 소녀」에 나오는 대사거든.==W== 감동적인 소녀 만화——",
"내가 정말 좋아하는 책……==W== 「안녕, 지뢰계 소녀」에 나오는 대사거든.==W== 감동적인 소녀 만화……",
""
}
},
@@ -6482,7 +6482,7 @@ return {
"",
false,
"",
"——! 소녀 그림책이야!==W== 그림책이라고, 알았지?!",
"……! 소녀 그림책이야!==W== 그림책이라고, 알았지?!",
""
}
},
@@ -8592,7 +8592,7 @@ return {
"",
false,
"",
"그게……==W== 이 옷이 가장 잘 어울리는 건 역시 두목이라서요……==W== 그러니까, 그레이 님은 두목의 모습만 눈에 담아주셨으면 해요~.",
"그게……==W== 이 옷이 가장 잘 어울리는 건 역시 두목이라서요……==W== 그러니까, 그레이 님은 두목의 모습만 눈에 담아주셨으면 해요~",
""
}
},
@@ -8733,7 +8733,7 @@ return {
"",
false,
"",
"맞아! 우리 둘은 이런 옷 별로 안 어울리거든. 두목의 소중한 기억력을 낭비하게 할 순 없지!",
"맞아! 우리 둘은 이런 옷 별로 안 어울리거든. 괜히 소중한 기억력을 낭비하게 할 순 없지!",
""
}
},
@@ -8968,7 +8968,7 @@ return {
"",
false,
"",
"두목~ 옷 다 갈아입었?",
"두목~ 옷 다 갈아입었슴까?",
""
}
},
@@ -9840,7 +9840,7 @@ return {
"",
false,
"",
"바, 바보 같은 소리 하지 마!==W== 볼 만큼 봤잖아. 이제 갈아입을 거야——!",
"바, 바보 같은 소리 하지 마!==W== 볼 만큼 봤잖아. 이제 갈아입을 거야……!",
""
}
},
+10 -10
View File
@@ -1453,7 +1453,7 @@ return {
"",
false,
"",
"나, 당당한 지뢰계 여주인공—— ==W==미네르바라고 해★ ==W==나와 좋아하는 사람이 함께하는 걸 방해하는 악당들은 전부 날려버릴 거야<size=53>♪</size>",
"나, 당당한 지뢰계 여주인공…… ==W==미네르바라고 해★ ==W==나와 좋아하는 사람이 함께하는 걸 방해하는 악당들은 전부 날려버릴 거야<size=53>♪</size>",
""
}
},
@@ -3171,7 +3171,7 @@ return {
"",
false,
"",
"——! 미네르바,==B====W== 지난번보다 훨씬 좋아졌어. 의상과 메이크업 느낌도 아주 훌륭해. 하지만 아직 조금 부족해.",
"……! 미네르바,==B====W== 지난번보다 훨씬 좋아졌어. 의상과 메이크업 느낌도 아주 훌륭해. 하지만 아직 조금 부족해.",
""
}
},
@@ -4030,7 +4030,7 @@ return {
"",
false,
"",
"음…… 부탁이야, 폴몬트랑 넬몬트한테는 비밀로 해줘.==W== 내가 소녀 만화를 좋아한다는 걸 들키면…… 두목으로서의 위엄이 땅에 떨어질 거야?",
"음…… 부탁이야, 폴몬트랑 넬몬트한테는 비밀로 해줘.==W== 내가 소녀 만화를 좋아한다는 걸 들키면…… 두목으로서의 위엄이 땅에 떨어질 거야……",
""
}
},
@@ -5120,7 +5120,7 @@ return {
"",
false,
"",
"그 녀석이 행복하다면 나도 기쁘겠——",
"그 녀석이 행복하다면 나도 기쁘겠……",
""
}
},
@@ -5811,7 +5811,7 @@ return {
"",
false,
"",
"괜찮아, 더 제멋대로 굴어도 돼.==W== 사랑하는 사람 곁에 너 말고 다른 사람이 서 있는 걸 절대 용납할 수 없는 거야——",
"괜찮아, 더 제멋대로 굴어도 돼.==W== 사랑하는 사람 곁에 너 말고 다른 사람이 서 있는 걸 절대 용납할 수 없는 거야……",
""
}
},
@@ -8940,7 +8940,7 @@ return {
"",
false,
"",
"틸리아가 쓰러졌어?! ==W==이, 이거 컷 해야 하는 거 아냐——",
"틸리아가 쓰러졌어?! ==W==이, 이거 컷 해야 하는 거 아냐……",
""
}
},
@@ -10443,7 +10443,7 @@ return {
"",
false,
"",
"이봐! 빨리 컷 해달라고—— ==W==아아아아아악! 나 도대체 언제까지 얻어맞아야 하는 거냐고오오오오!",
"이봐! 빨리 컷 해달라고…… ==W==아아아아아악! 나 도대체 언제까지 얻어맞아야 하는 거냐고오오오오!",
""
}
},
@@ -11114,7 +11114,7 @@ return {
"",
false,
"",
"미안하지만 예약 없이는 들여보낼 수 없——",
"미안하지만 예약 없이는 들여보낼 수 없……",
""
}
},
@@ -12037,7 +12037,7 @@ return {
"",
false,
"",
"오, 그, 그래……? ==W==나야말로 고마워.==W==그럼 사과 선물도 전했으니 난 이만 가볼게.",
"오, 그, 그래……? ==W==나야말로 고마워.==W== 그럼 사과 선물도 전했으니 난 이만 가볼게.",
""
}
},
@@ -12811,7 +12811,7 @@ return {
"",
false,
"",
"그건 그냥 너무 몰입해서 그랬던 거야——!",
"그건 그냥 너무 몰입해서 그랬던 거야……!",
""
}
},
+101 -6
View File
@@ -17,7 +17,11 @@ ChapterLineCtrl._mapNodeConfig = {
sNodeName = "ImgMask",
sComponentName = "RectTransform"
},
goImgMaskRoot = {}
goImgMaskRoot = {},
layoutContent = {
sNodeName = "Content",
sComponentName = "HorizontalLayoutGroup"
}
}
ChapterLineCtrl._mapEventConfig = {
Story_RewardClosed = "OnEvent_Story_RewardClosed",
@@ -145,17 +149,21 @@ function ChapterLineCtrl:Refresh()
table.sort(self.tbGridList, function(a, b)
return a.depth < b.depth
end)
self:RefreshCurNodeDepthByNewUnlock()
self:RefreshUnlockAnimList()
self.tbBranchOverflowDepths = {}
self.maxLockRootDepth = 0
for k, v in ipairs(self.tbGridList) do
self:RefreshGrid(v.grid, v.depth)
end
self:ApplyLayoutContentRightPadding()
local isComplete = self:IsAllStoryCompleted()
self.curTimeStamp = isComplete and self.curTimeStamp or self.maxUnlockDepth
for i = 1, #self.tbTimeStampList do
self:RefreshTimeStamp(self.tbTimeStampList[i], i)
end
self:AddTimer(1, 0.1, function()
local posX = self.curNodeDepth <= 4 and 0 or (self.curNodeDepth - 1) * -512
local posX = self.curNodeDepth < 4 and 0 or (self.curNodeDepth - 1) * -512
self._mapNode.tranContent.anchoredPosition = Vector2(posX, 0)
end, true, true, true)
CS.UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(self._mapNode.tranContent)
@@ -204,7 +212,8 @@ function ChapterLineCtrl:RefreshGrid(goGrid, gridDepth)
end
end
local bPlayedLockAnim = table.indexof(self.tbLockedPlayedAnim, avgId) > 0
goGrid.gameObject:SetActive((not bAllLock or not allParentDepthLock) and not bNeedPlayUnlockAnim or bPlayedLockAnim)
local bShowGrid = (not bAllLock or not allParentDepthLock) and not bNeedPlayUnlockAnim or bPlayedLockAnim
goGrid.gameObject:SetActive(bShowGrid)
local bReaded = AvgData:IsStoryReaded(storyConfig.Id)
local btnEnter = goGrid:Find("btnEnter"):GetComponent("UIButton")
local NormalRoot = btnEnter.transform:Find("AnimRoot/NormalRoot")
@@ -217,7 +226,17 @@ function ChapterLineCtrl:RefreshGrid(goGrid, gridDepth)
local txtUnlock = LockRoot:Find("txtUnlock"):GetComponent("TMP_Text")
local cgComp = storyConfig.IsBattle and NormalRoot:GetComponent("CanvasGroup") or BattleRoot:GetComponent("CanvasGroup")
NovaAPI.SetCanvasGroupAlpha(cgComp, bUnlock and 1 or 0.5)
LockRoot.gameObject:SetActive(not bUnlock or bPlayedLockAnim)
local bShowLockRoot = not bUnlock or bPlayedLockAnim
LockRoot.gameObject:SetActive(bShowLockRoot)
if bShowLockRoot and gridDepth > (self.maxLockRootDepth or 0) then
if bShowGrid then
if self.tbDepthLockCount[gridDepth].Node.gameObject.activeInHierarchy then
self.maxLockRootDepth = gridDepth
end
elseif bNeedPlayUnlockAnim then
self.maxLockRootDepth = gridDepth
end
end
imgClue.gameObject:SetActive(storyConfig.HasEvidence and bUnlock and not bReaded)
local bShowLineContinue = not bUnlock and gridDepth > self.maxUnlockDepth
lineContinue.gameObject:SetActive(bShowLineContinue)
@@ -236,7 +255,7 @@ function ChapterLineCtrl:RefreshGrid(goGrid, gridDepth)
end
end
end
if bFocus then
if bUnlock then
local nodeTimeStampIndex = tonumber(goGrid.transform.parent.parent.name)
if nodeTimeStampIndex > self.curTimeStamp then
if self.tbImgFocusNode[self.curTimeStamp] ~= nil then
@@ -245,7 +264,6 @@ function ChapterLineCtrl:RefreshGrid(goGrid, gridDepth)
end
end
self.curTimeStamp = nodeTimeStampIndex
self.curNodeDepth = nodeTimeStampIndex
end
if self.tbImgFocusNode[self.curTimeStamp] == nil then
self.tbImgFocusNode[self.curTimeStamp] = {}
@@ -401,6 +419,29 @@ function ChapterLineCtrl:RefreshBranchGrid(root, avgId, depth, isNeedPlayUnlockA
self:PlayUnlockAnim(root, "BranchRoot_Empty")
end
end
if 2 < nUnlockBranchCount then
if self.tbBranchOverflowDepths == nil then
self.tbBranchOverflowDepths = {}
end
table.insert(self.tbBranchOverflowDepths, depth)
end
end
function ChapterLineCtrl:ApplyLayoutContentRightPadding()
local maxLockDepth = self.maxLockRootDepth or 0
local bWide = false
local tbOverflow = self.tbBranchOverflowDepths or {}
for _, branchDepth in ipairs(tbOverflow) do
if branchDepth >= maxLockDepth then
bWide = true
break
end
end
local targetRight = bWide and 400 or 200
local layoutContent = self._mapNode.layoutContent
if layoutContent.padding.right ~= targetRight then
local padding = layoutContent.padding
NovaAPI.SetLayoutGroupPadding(layoutContent.gameObject, padding.left, targetRight, padding.top, padding.bottom)
end
end
function ChapterLineCtrl:RefreshTimeStamp(goTimeStamp, index)
local timeStampName
@@ -482,6 +523,60 @@ function ChapterLineCtrl:CheckLineReasonable(grid)
end
end
end
function ChapterLineCtrl:RefreshCurNodeDepthByNewUnlock()
local tbGridList = self.tbGridList or {}
local snapshotKey = "MainlineUnlockSnapshot_" .. tostring(self.curChapter)
local depthKey = "MainlineCurNodeDepth_" .. tostring(self.curChapter)
local prevUnlockSet = {}
local snapshotRaw = LocalData.GetPlayerLocalData(snapshotKey)
if type(snapshotRaw) == "string" and snapshotRaw ~= "" then
for storyId in string.gmatch(snapshotRaw, "([^,]+)") do
prevUnlockSet[storyId] = true
end
end
local deepestDepth
local curUnlockIds = {}
local parentDepthMap = {}
for _, v in ipairs(tbGridList) do
parentDepthMap[v.avgId] = v.depth
local storyConfig = AvgData:GetStoryCfgData(v.avgId)
if storyConfig ~= nil then
local bUnlock = AvgData:IsUnlock(storyConfig.ConditionId, storyConfig.StoryId)
if bUnlock then
local storyIdKey = tostring(storyConfig.Id)
table.insert(curUnlockIds, storyIdKey)
if not prevUnlockSet[storyIdKey] and (deepestDepth == nil or deepestDepth < v.depth) then
deepestDepth = v.depth
end
end
end
end
local tbBranch = self.tbBranch or {}
for parentAvgId, branchList in pairs(tbBranch) do
local parentDepth = parentDepthMap[parentAvgId]
for _, branchData in ipairs(branchList) do
local bUnlock = AvgData:IsUnlock(branchData.ConditionId, branchData.StoryId)
if bUnlock then
local branchIdKey = tostring(branchData.Id)
table.insert(curUnlockIds, branchIdKey)
if not prevUnlockSet[branchIdKey] and parentDepth ~= nil and (deepestDepth == nil or deepestDepth < parentDepth) then
deepestDepth = parentDepth
end
end
end
end
if deepestDepth ~= nil then
self.curNodeDepth = deepestDepth
LocalData.SetPlayerLocalData(depthKey, deepestDepth)
else
local savedDepth = LocalData.GetPlayerLocalData(depthKey)
local nSavedDepth = tonumber(savedDepth)
if nSavedDepth ~= nil and 0 < nSavedDepth then
self.curNodeDepth = nSavedDepth
end
end
LocalData.SetPlayerLocalData(snapshotKey, table.concat(curUnlockIds, ","))
end
function ChapterLineCtrl:RefreshUnlockAnimList()
self.tbNeedPlayUnlockAnimGird = {}
self.curShouldPlayDepth = 9999
@@ -63,6 +63,7 @@ BreakOutPlayCtrl._mapEventConfig = {
BrickBreaker_Time = "OnEvent_Time",
BrickBreaker_Life = "OnEvent_HPChange",
BrickBreaker_Scrole = "OnEvent_ScoreChange",
BrickBreaker_GameEnd_Pre = "OnEvent_GameEnd_Pre",
BrickBreaker_GameEnd = "OnEvent_FinishGame",
Brick_Monster = "OnEvent_KillMonster",
Brick_Wall = "OnEvent_BreakBricks",
@@ -129,6 +130,7 @@ function BreakOutPlayCtrl:InitState()
self.nKillMonster = 0
self.nBreakBricks = 0
self.tbDropCollect = self.BreakOutData.BreakOutLevelData:GetCurrentFloorDrops(self.FloorData)
self.IsGameEnd = false
NovaAPI.SetTMPText(self._mapNode.txt_TargetScore, "/" .. self.nTargetScore)
NovaAPI.SetTMPText(self._mapNode.txt_CurrentScore, self.nCurrentScore)
self:SetCurrentTime(self.FloorData.Time)
@@ -208,11 +210,15 @@ function BreakOutPlayCtrl:OnEvent_DropCollect(id)
end
end
function BreakOutPlayCtrl:OnEvent_InputEnable(bEnable)
self._mapNode.btn_pause.interactable = bEnable == true
self:ActiveBtnPause(bEnable)
end
function BreakOutPlayCtrl:OnBtnClick_Pause()
EventManager.Hit("Open_BattlePause")
end
function BreakOutPlayCtrl:OnEvent_GameEnd_Pre(nResult)
self.IsGameEnd = true
self:ActiveBtnPause(not self.IsGameEnd)
end
function BreakOutPlayCtrl:OnEvent_FinishGame(nResult)
if not self.BreakOutData.BreakOutLevelData:GetIsBreakOut_Complete() or self.BreakOutData.BreakOutLevelData:GetIsFinishGame() then
return
@@ -220,6 +226,9 @@ function BreakOutPlayCtrl:OnEvent_FinishGame(nResult)
if self.bInLockState then
return
end
if not self.IsGameEnd then
return
end
local bResult = nResult == GameEnum.levelState.Success
EventManager.Hit("BreakOut_Complete", true)
local requestCb = function(mapChangeInfo)
@@ -238,6 +247,7 @@ function BreakOutPlayCtrl:OnEvent_Exit()
self.bInLockState = false
end
local confirmCallback = function()
self.IsGameEnd = true
EventManager.Hit("Close_BattlePause")
EventManager.Hit("BreakOut_Complete", true)
EventManager.Hit("SetBreakOutPlaySkill_Visible", false)
@@ -265,6 +275,9 @@ function BreakOutPlayCtrl:OpenBreakOutResultPanel(Result, cb, mapChangeInfo)
EventManager.Hit("OpenBreakOutResultPanel", Result, sLevelName, cb, mapChangeInfo)
end
function BreakOutPlayCtrl:OnEvent_Restart()
if self.IsGameEnd then
return
end
if self.bInLockState then
self.bInLockState = false
NovaAPI.DispatchEventWithData("TGM_SET_BRICKER", nil, {2, 0})
@@ -338,4 +351,7 @@ function BreakOutPlayCtrl:BuildFinishData(bWin)
DropCollect = self.tbDropCollect
}
end
function BreakOutPlayCtrl:ActiveBtnPause(bEnable)
self._mapNode.btn_pause.interactable = bEnable
end
return BreakOutPlayCtrl