Hotfix - 2.0.1.145

EN: 2.0.1.145
CN: 2.0.1.144
JP: 2.0.1.147
KR: 2.0.1.152
This commit is contained in:
SL1900
2026-10-30 12:30:00 +09:00
parent 44f0ab2bc5
commit 00cf81046d
173 changed files with 23874 additions and 2355 deletions
@@ -1452,6 +1452,10 @@ function SoldierLevelData:BattleResult()
end
end
function SoldierLevelData:OpenSoldierEnding()
EventManager.Hit(EventId.ClosePanel, PanelId.SoldierPartnerTips)
EventManager.Hit(EventId.ClosePanel, PanelId.SoldierCharCardTips)
EventManager.Hit(EventId.ClosePanel, PanelId.SoldierCharSkillDetail)
EventManager.Hit(EventId.ClosePanel, PanelId.SoldierCharPontentialDetailPanel)
local endingData = self.mapClientCases[ClientCase.Ending].data
self.mapClientCases[ClientCase.Ending] = nil
local callback = function()
+2 -2
View File
@@ -162,7 +162,7 @@ return {
param = {
1,
"avg3_100",
"菲兰尼斯居然有这么宽广的地下岩洞……",
"好复杂的岩洞啊,要不是有你带路,我早就迷路了。",
0,
"",
false,
@@ -231,7 +231,7 @@ return {
param = {
0,
"avg1_162",
"菲兰尼斯的岩石很容易被水流溶蚀,日积月累就形成了很多这样的地下岩洞。",
"菲兰尼斯地下的岩洞群错综复杂,非常危险。不过,这也为我们的行动提供了方便,卡里古拉绝对想不到我们还能从这边潜入。",
0,
"",
false,
+16 -4
View File
@@ -10530,6 +10530,10 @@ return {
true
}
},
{
cmd = "Wait",
param = {1.0}
},
{
cmd = "SetChar",
param = {
@@ -10605,6 +10609,10 @@ return {
false
}
},
{
cmd = "Wait",
param = {0.5}
},
{
cmd = "SetMainRoleTalk",
param = {
@@ -10633,10 +10641,6 @@ return {
""
}
},
{
cmd = "Wait",
param = {0.3}
},
{
cmd = "SetChar",
param = {
@@ -10659,6 +10663,10 @@ return {
nil
}
},
{
cmd = "Wait",
param = {0.3}
},
{
cmd = "CtrlChar",
param = {
@@ -10698,6 +10706,10 @@ return {
""
}
},
{
cmd = "Wait",
param = {0.3}
},
{
cmd = "SetAudio",
param = {
+1 -1
View File
@@ -4312,7 +4312,7 @@ return {
"",
false,
"",
"That sounds a bit drama...",
"That sounds a bit dramatic...",
""
}
},
+1 -1
View File
@@ -494,7 +494,7 @@ return {
"",
false,
"",
"But me, the Lord Nazuna, play no such games",
"But I, the Lord Nazuna, play no such games",
""
}
},
+2 -2
View File
@@ -4037,7 +4037,7 @@ return {
"",
false,
"",
"Three horns, huh...==W== In all my years fighting Nocturn Eterna, I've never seen a single one with three horns.",
"White horns, huh...==W== In all my years fighting Nocturn Eterna, I've never seen a single one with white horns.",
""
}
},
@@ -4168,7 +4168,7 @@ return {
"",
false,
"",
"What are you talking about...?! You're the one who said they have three horns—",
"What are you talking about...?! You're the one who said they have white horns—",
""
}
},
+4 -4
View File
@@ -8967,7 +8967,7 @@ return {
cmd = "SetBg",
param = {
0,
"tower_common",
"tower_laundryroom",
"0",
"Linear",
1.0,
@@ -11879,7 +11879,7 @@ return {
cmd = "SetBg",
param = {
0,
"tower_common",
"tower_laundryroom",
"0",
"Linear",
1.0,
@@ -12868,7 +12868,7 @@ return {
cmd = "SetBg",
param = {
3,
"tower_common",
"tower_laundryroom",
"0",
"Linear",
0.0,
@@ -13789,7 +13789,7 @@ return {
cmd = "SetBg",
param = {
5,
"tower_common",
"tower_laundryroom",
"0",
"Linear",
0.0,
+1 -1
View File
@@ -8920,7 +8920,7 @@ return {
"",
false,
"",
"(Karin's face ... looks terrifying.)",
"(Karin… Her expression is so strained...)",
""
}
},
+2 -2
View File
@@ -3,7 +3,7 @@ return {
cmd = "SetIntro",
param = {
"ep_mainline_001",
"True End",
"The True End",
"Narrow Door",
"Fate converges atop the Monolith as the story reaches its final crossroads. Will you risk everything, or let it all go? Where will the next door lead...?",
0
@@ -16863,7 +16863,7 @@ return {
"",
false,
"",
"Heh. Speak like a true Tyrant.",
"Heh. Spoken like a true Tyrant.",
""
}
},
+1 -1
View File
@@ -4,7 +4,7 @@ return {
param = {
"ep_mainline_001",
"The End",
"The One Beside You",
"She at Your Side",
"You take Angie with you and become the bait yourself, driving Loxy out of the encirclement with the help of the Desert Scorpion. But then this inexplicable \"ocean\" completely cuts off your last path to survival…",
1
}
+3 -3
View File
@@ -5579,7 +5579,7 @@ return {
"",
false,
"",
"My name is Elis. E—lis.==W== I'm not Iris, nor am I anyone else.",
"My name is Elis. E-lis.==W== I'm not Iris, nor am I anyone else.",
""
}
},
@@ -6157,7 +6157,7 @@ return {
"",
false,
"",
"Loud and clear. You're Elis. E—lis. Not Iris.",
"Loud and clear. You're Elis. E-lis. Not Iris.",
""
}
},
@@ -9456,7 +9456,7 @@ return {
"",
false,
"",
"==SEX12== Acolyte! And ...==W== you, the slave.Thank the gods you're both here.",
"==SEX12== Acolyte! And ...==W== you, the slave. Thank the gods you're both here.",
""
}
},
+18 -6
View File
@@ -6162,7 +6162,7 @@ return {
cmd = "SetTalk",
param = {
0,
"",
"The Space Walker",
"",
0,
"",
@@ -8960,7 +8960,7 @@ return {
cmd = "SetTalk",
param = {
0,
"",
"The Space Walker",
"",
0,
"",
@@ -10530,6 +10530,10 @@ return {
true
}
},
{
cmd = "Wait",
param = {1.0}
},
{
cmd = "SetChar",
param = {
@@ -10605,6 +10609,10 @@ return {
false
}
},
{
cmd = "Wait",
param = {0.5}
},
{
cmd = "SetMainRoleTalk",
param = {
@@ -10633,10 +10641,6 @@ return {
""
}
},
{
cmd = "Wait",
param = {0.3}
},
{
cmd = "SetChar",
param = {
@@ -10659,6 +10663,10 @@ return {
nil
}
},
{
cmd = "Wait",
param = {0.3}
},
{
cmd = "CtrlChar",
param = {
@@ -10698,6 +10706,10 @@ return {
""
}
},
{
cmd = "Wait",
param = {0.3}
},
{
cmd = "SetAudio",
param = {
+1 -1
View File
@@ -10212,7 +10212,7 @@ return {
"",
false,
"",
"Ahaha, we're actually super plain-looking! Totally average! Uh, anyway—Noya, Abmer, Boss? Let's go scout ahead!",
"Ahaha, we're actually super plain-looking! Totally average! Uh, anyway—Noya, Amber, Boss? Let's go scout ahead!",
""
}
},
+4 -4
View File
@@ -8891,7 +8891,7 @@ return {
cmd = "SetBg",
param = {
0,
"tower_common",
"tower_laundryroom",
"0",
"Linear",
1.0,
@@ -11803,7 +11803,7 @@ return {
cmd = "SetBg",
param = {
0,
"tower_common",
"tower_laundryroom",
"0",
"Linear",
1.0,
@@ -12792,7 +12792,7 @@ return {
cmd = "SetBg",
param = {
3,
"tower_common",
"tower_laundryroom",
"0",
"Linear",
0.0,
@@ -13713,7 +13713,7 @@ return {
cmd = "SetBg",
param = {
5,
"tower_common",
"tower_laundryroom",
"0",
"Linear",
0.0,
+1 -1
View File
@@ -11894,7 +11894,7 @@ return {
false,
"",
"向こうはエリナとルルのふたりだけ。==RT==なら私たちが別々の方向に逃げれば、==W====RT==優先して『堕落した聖女』を追うだろうな。",
"向こうはエリナとルルのふたりだけ。==RT==なら僕たちが別々の方向に逃げれば、==W====RT==優先して『堕落した聖女』追うだろうな。"
"向こうはエリナとルルのふたりだけ。==RT==なら僕たちが別々の方向に逃げれば、==W====RT==優先して『堕落した聖女』を追うだろうな。"
}
},
{
+16 -4
View File
@@ -10530,6 +10530,10 @@ return {
true
}
},
{
cmd = "Wait",
param = {1.0}
},
{
cmd = "SetChar",
param = {
@@ -10605,6 +10609,10 @@ return {
false
}
},
{
cmd = "Wait",
param = {0.5}
},
{
cmd = "SetMainRoleTalk",
param = {
@@ -10633,10 +10641,6 @@ return {
""
}
},
{
cmd = "Wait",
param = {0.3}
},
{
cmd = "SetChar",
param = {
@@ -10659,6 +10663,10 @@ return {
nil
}
},
{
cmd = "Wait",
param = {0.3}
},
{
cmd = "CtrlChar",
param = {
@@ -10698,6 +10706,10 @@ return {
""
}
},
{
cmd = "Wait",
param = {0.3}
},
{
cmd = "SetAudio",
param = {
+12 -24
View File
@@ -167,7 +167,7 @@ return {
"",
false,
"",
"필라니스에 이렇게 넓은 지하 동굴이 있었다니……",
"정말 복잡한 동굴이네. 네가 길을 안내해 주지 않았다면 진작 길을 잃었을 거야.",
""
}
},
@@ -236,7 +236,7 @@ return {
"",
false,
"",
"필라니스의 암석은 물에 잘 침식되는 성질이라, 오랜 세월이 지나면서 이런 지하 동굴이 많이 생겨났습니다.",
"필라니스 지하의 동굴은 미로처럼 얽혀 있어 매우 위험합니다. 하지만 덕분에 저희도 움직이기 편해졌죠. 칼리굴라는 저희가 이쪽으로 잠입할 수 있으리라고는 절대 생각하지 못할 겁니다.",
""
}
},
@@ -268,7 +268,7 @@ return {
"",
false,
"",
"어쩌면 대자연도, 저희가 이 악인을 응징하는 걸 응원하는 걸지도 모르죠.",
"어쩌면 대자연도, 우리가 이 악인을 응징하는 걸 응원하는 걸지도 모르겠네.",
""
}
},
@@ -6247,7 +6247,7 @@ return {
0,
"music_avg_volume100_0s",
0,
"m128",
"m164",
"none",
0.0,
false
@@ -6398,7 +6398,7 @@ return {
param = {
11,
"avg1_162",
"그거라면 ==W==이미 통증은 없으니 ==W==신경 쓰지 마시길.",
"",
0,
"",
false,
@@ -6475,7 +6475,7 @@ return {
param = {
11,
"avg1_162",
"네. ==W==그렇다고는 해도, ==W==저는 원래 상처가 빨리 낫는 편이라, ==W==웬만한 상처는 그냥 둬도 흉터조차 안 남겠지만……==W==",
"",
0,
"",
false,
@@ -6489,7 +6489,7 @@ return {
param = {
11,
"avg1_162",
"상당히 깊은 상처였다 보니, ==W==지금도 남아 있는 거겠죠. ==W==그래도 조금씩 옅어지고 있으니, ==W==걱정하실 필요는 없습니다.==W==",
"",
0,
"",
false,
@@ -6580,7 +6580,7 @@ return {
param = {
11,
"avg1_162",
"정말이지…… ==W==당신은 항상 ‘세이나, 세이나’라는 소리만 하고. 같이 어려움을 이겨낸 건 ==W==세이나가 아니라 저인데……",
"",
0,
"",
false,
@@ -6737,7 +6737,7 @@ return {
param = {
11,
"avg1_162",
"저에게서 그 사람의 흔적을 찾아낸다는 건, ==W==당신 안에 아직 그 사람과의 기억이 남아 있다는 증거입니다.==W==",
"",
0,
"",
false,
@@ -6751,7 +6751,7 @@ return {
param = {
11,
"avg1_162",
"예전에 서로 등을 맡겼던 동료들의 얼굴조차 떠올리지 못하는, ==W==저와는 다르게 말이죠……==W==",
"",
0,
"",
false,
@@ -6856,7 +6856,7 @@ return {
param = {
11,
"avg1_162",
"솔직히 말하면, ==W==당신이 부럽습니다. 만나고 싶다 생각할 수 있는 ==W==사람이 있는 당신이……",
"",
0,
"",
false,
@@ -6961,7 +6961,7 @@ return {
param = {
11,
"avg1_162",
"당신과 있으면, ==W==어디까지든 ‘타락’하고 싶어집니다. 정말로…… ==W==곤란한 사람이네요.",
"",
0,
"",
false,
@@ -6984,18 +6984,6 @@ return {
"default"
}
},
{
cmd = "SetBGM",
param = {
1,
"music_avg_volume100_0s",
0,
"",
"1500ms",
0.0,
false
}
},
{
cmd = "SetL2D",
param = {
+54 -54
View File
@@ -370,7 +370,7 @@ return {
"",
false,
"",
"맞습니다. 그렇게 힘껏 내려치세요. 손목은 조금 더 유연하게, 방향을 바꿀 여유를 남겨두고요.",
"네, 그렇게 힘껏 내려치십시오. 손목은 조금 더 유연하게, 방향을 바꿀 여유를 남겨두고요.",
""
}
},
@@ -485,7 +485,7 @@ return {
"",
false,
"",
"좋습니다. 무게중심을 조금 더 세우세요. 지금은 체중이 너무 앞으로 실려 있어요. 언제든 동작을 바꿀 수 있게 여유를 충분히 남겨 둬야 해요.",
"좋습니다. 무게중심을 조금 더 세우세요. 지금은 체중이 너무 앞으로 실려 있습니다. 언제든 동작을 바꿀 수 있게 여유를 충분히 남겨 둬야 합니다.",
""
}
},
@@ -625,7 +625,7 @@ return {
"",
false,
"",
"맞습니다. 자세가 많이 좋아졌어요.",
"맞습니다. 자세가 많이 좋아졌군요.",
""
}
},
@@ -668,7 +668,7 @@ return {
"",
false,
"",
"자, 실전처럼 해 보죠! 방금 연습한 모든 기술로 저를 공격하세요. 전력을 다해서요.",
"자, 실전처럼 해 보죠! 방금 연습한 모든 기술로 저를 공격하십시오. 전력을 다해서요.",
""
}
},
@@ -1407,7 +1407,7 @@ return {
"",
false,
"",
"호오…… 제법이네요.",
"호오…… 제법이군요.",
""
}
},
@@ -1920,7 +1920,7 @@ return {
"",
false,
"",
"무…… ==W==무슨 일이지? 나? 내가 바닥에 누워 있어?",
"무…… ==W==무슨 일이지? 나, 바닥에 누워 있는 거야?",
""
}
},
@@ -2111,7 +2111,7 @@ return {
"",
false,
"",
"죄, 죄송합니다. 순간 흥분해서 큰 실례를 범했네요. 다치진 않으셨습니까…… ==W==일으켜 드릴게요.",
"죄, 죄송합니다. 순간 흥분해서 큰 실례를 범했군요. 다치진 않으셨습니까…… ==W==일으켜 드리죠.",
""
}
},
@@ -2464,7 +2464,7 @@ return {
"",
false,
"",
"검술이라…… ==W==확실히 많이 능숙해지셨어요. 베는 척 속여 놓고 찌르기로 바꿀 생각까지 해내시다니요.",
"검술이라…… ==W==확실히 많이 능숙해지셨습니다. 베는 척 속여 놓고 찌르기로 바꿀 생각까지 해내시다니요.",
""
}
},
@@ -2537,7 +2537,7 @@ return {
"",
false,
"",
"하지만 기초 체력이 너무 부족해요. 머리로 생각한 걸 몸이 전혀 따라가질 못하잖아요. 방금 동작을 바꿀 때도 엄청나게 큰 빈틈을 보였고요.",
"하지만 기초 체력이 너무 부족합니다. 머리로 생각한 걸 몸이 전혀 따라가질 못하잖습니까. 방금 동작을 바꿀 때도 엄청나게 큰 빈틈을 보였고요.",
""
}
},
@@ -2593,7 +2593,7 @@ return {
"",
false,
"",
"그러니까…… ==W==보자마자 바짝 파고들어서 다리를 걸어 넘어뜨리고, 머리로 들이받고 싶어지는 그런 빈틈이요.",
"그러니까…… ==W==자마자 바짝 파고들어서 다리를 걸어 넘어뜨리고, 머리로 들이받고 싶어지는 그런 빈틈 말입니다.",
""
}
},
@@ -2745,7 +2745,7 @@ return {
"",
false,
"",
"너무 매력적인 빈틈이라, 저도 모르게 몸이 먼저 나갔어요. 마지막에 머리로 들이받기 직전에 겨우 멈춰서 다행이었죠.",
"너무 매력적인 빈틈이라, 저도 모르게 몸이 먼저 나갔습니다. 마지막에 머리로 들이받기 직전에 겨우 멈춰서 다행이었죠.",
""
}
},
@@ -2968,7 +2968,7 @@ return {
"",
false,
"",
"크흠, 흠. 그건 제 잘못이 맞아요. 하지만…… 연습 때 전력을 다해야, 실전에서도 마음먹은 대로 몸이 움직이는 법이에요.",
"크흠, 흠. 그건 제 잘못이 맞습니다. 하지만…… 연습 때 전력을 다해야, 실전에서도 마음먹은 대로 몸이 움직이는 법이죠.",
""
}
},
@@ -3011,7 +3011,7 @@ return {
"",
false,
"",
"당신도 느끼셨죠? 몸이 생각을 따라가지 못한다는 걸요. 아무리 뛰어난 전술이라도 써먹지 못하면…… ==W==없는 것이나 마찬가지예요.",
"당신도 느끼셨겠죠? 몸이 생각을 따라가지 못한다는 걸요. 아무리 뛰어난 전술이라도 써먹지 못하면…… ==W==없는 것이나 마찬가지입니다.",
""
}
},
@@ -3084,7 +3084,7 @@ return {
"",
false,
"",
"기초 체력을 기르는 건 하루아침에 되는 일이 아니에요. 매일 꾸준히 단련해도 눈에 띄는 효과를 보려면 몇 달에서 1년은 걸리죠.",
"기초 체력을 기르는 건 하루아침에 되는 일이 아닙니다. 매일 꾸준히 단련해도 눈에 띄는 효과를 보려면 몇 달에서 1년은 걸리죠.",
""
}
},
@@ -3127,7 +3127,7 @@ return {
"",
false,
"",
"내일부터 저랑 같이 밤에 달리기해요. 체력도 기르고 검술도 연습하면서 천천히 꾸준히 해 나가다 보면, 다 잘될 거예요.",
"내일부터 저랑 밤에 같이 달리시죠. 체력도 기르고 검술도 연습하면서 천천히 꾸준히 해 나가다 보면, 다 잘될 겁니다.",
""
}
},
@@ -3248,7 +3248,7 @@ return {
"",
false,
"",
"네? 그, 그런가요? 제가 그렇게 말이 많나요?",
"네? 그, 그렇습니까? 제가 그렇게 말이 많나요?",
""
}
},
@@ -3337,7 +3337,7 @@ return {
"",
false,
"",
"꼬, 꼭 그렇지도 않은데요…… ==W==같이 순찰도 돌았잖아요. 아, 맞다. 지금 바로 야간 순찰 가요. 기분 전환도 할 겸!",
"꼬, 꼭 그렇지도 않습니다만…… ==W==같이 순찰도 돌았잖습니까. 아, 참. 지금 바로 야간 순찰 가시죠. 기분 전환도 할 겸!",
""
}
},
@@ -3456,7 +3456,7 @@ return {
"",
false,
"",
"그렇긴 하네요. 반박을 못 하겠어요.",
"그렇긴 하군요. 반박은 못 하겠습니다.",
""
}
},
@@ -3511,7 +3511,7 @@ return {
"",
false,
"",
"인정하긴 싫지만, 제 생활이 확실히…… ==W==좀 단조롭긴 하죠. 저랑 같이 있으면 지루하시죠?",
"인정하긴 싫지만, 제 생활이 확실히…… ==W==좀 단조롭긴 하죠. 저랑 같이 있으면 지루하시겠죠?",
""
}
},
@@ -3585,7 +3585,7 @@ return {
"",
false,
"",
"솔직히 말하면 좀 그렇긴 해. ==W==그래도 너랑 같이 있으니까, 그런 건 아무래도 괜찮아.",
"솔직히 말하면 좀 그렇긴 한데, ==W==그래도 너랑 같이하니까 괜찮아.",
""
}
},
@@ -3661,7 +3661,7 @@ return {
"",
false,
"",
"같이 있어서 괜찮다고요? ==W==제가 딱히 재미있는 사람은 아니잖아요? 재치와 박식함으로는 이리스를 못 따라가고, 필라니스에 대해 아는 것도 루루만 못합니다.",
"같이해서 괜찮다고요? ==W==제가 딱히 재미있는 사람은 아닐 텐데요? 재치와 박식함으로는 이리스를 못 따라가고, 필라니스에 대해 아는 것도 루루만 못한걸요.",
""
}
},
@@ -3853,7 +3853,7 @@ return {
"",
false,
"",
"제 검술이 나쁘지 않고 당신을 지켜 드리기도 하겠지만, 제가 모든 상황을 해결할 수 있는 건 아니에요.",
"제 검술이 나쁘지 않아서 당신을 지켜 드릴 수는 있겠지만, 제가 모든 상황을 해결할 수 있는 건 아닙니다.",
""
}
},
@@ -3982,7 +3982,7 @@ return {
"",
false,
"",
"엄밀히 말해, 저는 어떤 상황에서도 당신을 지켜 낼 수 있는 건 아니에요. 그러니까……==W== 너무 쉽게 마음 놓지 마세요.",
"엄밀히 말해, 저는 어떤 상황이든 당신을 지켜 낼 수 있는 건 아닙니다. 그러니까……==W== 너무 쉽게 마음을 놓지 마십시오.",
""
}
},
@@ -4044,7 +4044,7 @@ return {
"",
false,
"",
"내가 마음을 놓는다는 건 그런 뜻이 아니야. 내 말은…… ==W==지금 우리가 캄캄한 밤길을 걷고 있어도, 네가 애쓴 걸 아는 필라니스 주민들이 극히 일부뿐이어도……",
"그런 의미로 마음이 놓인다는 게 아니야. 내 말은…… ==W==지금 우리가 캄캄한 밤길을 걷고 있어도, 네가 노력하는 걸 아는 필라니스 주민들이 극히 일부뿐이어도……",
""
}
},
@@ -4278,7 +4278,7 @@ return {
"",
false,
"",
"고향…… ==W==그곳에 관한 얘기를 좀 더 해 주시겠어요?",
"고향…… ==W==그곳에 관한 얘기를 좀 더 해 주시겠습니까?",
""
}
},
@@ -4301,7 +4301,7 @@ return {
"",
false,
"",
"지난번에 그러셨잖아요, 당신 고향에는 노예가 없다고…… ==W==대체 어떤 도시인가요?",
"지난번에 말씀하셨죠, 당신 고향에는 노예가 없다고…… ==W==대체 어떤 도시인가요?",
""
}
},
@@ -4370,7 +4370,7 @@ return {
"",
false,
"",
"동료들이랑 그 차를 몰고 세계 곳곳을 여행했거든. 근데 확실한 건 우리가 가 본 도시에는 전부 노예가 없었어.",
"동료들이랑 그 차를 몰고 세계 곳곳을 여행했거든. 그래도 확실한 건, 우리가 가 본 도시에는 전부 노예가 없었어.",
""
}
},
@@ -4402,7 +4402,7 @@ return {
"",
false,
"",
"듣기만 해도…… ==W==정말 자유롭네요. 저는 어릴 때부터 지금까지, 지내본 곳이라곤 아모르의 검투장이랑 필라니스, 딱 두 곳뿐이거든요.",
"듣기만 해도…… ==W==정말 자유로워 보입니다. 저는 어릴 때부터 지금까지, 지내본 곳이라곤 아모르의 검투장이랑 필라니스, 딱 두 곳뿐이거든요.",
""
}
},
@@ -4434,7 +4434,7 @@ return {
"",
false,
"",
"저는 검투장 밖의 아모르가 어떤 모습인지조차…… ==W==몰라요.",
"저는 검투장 밖의 아모르가 어떤 모습인지조차…… ==W==알지 못합니다.",
""
}
},
@@ -4636,7 +4636,7 @@ return {
"",
false,
"",
"그럼 약속하신 거예요?",
"그럼 약속하신 겁니다?",
""
}
},
@@ -4668,7 +4668,7 @@ return {
"",
false,
"",
"약속해.",
"약속할게.",
""
}
},
@@ -4813,7 +4813,7 @@ return {
"",
false,
"",
"아, 벌써 시간이 이렇게 됐네요. 이제 순찰을 돌면서 시각을 알리는 나팔을 불어야겠어요.",
"아, 벌써 시간이 이렇게 됐군요. 이제 순찰을 돌면서 시각을 알리는 나팔을 불어야겠습니다.",
""
}
},
@@ -4927,7 +4927,7 @@ return {
"",
false,
"",
"어제도 섬은 기사단 장부 정리를 도와주느라 늦게 주무셨잖아요…… ==W==괜찮으시겠어요?",
"어제도 섬은 기사단 장부 정리를 도와주느라 늦게 주무셨잖습니까…… ==W==괜찮으시겠어요?",
""
}
},
@@ -5039,7 +5039,7 @@ return {
"",
false,
"",
"날 뭐로 보고, 밤새는 건 엄청 자신 있거든!",
"날 뭘로 보고. 밤새는 건 엄청 자신 있거든!",
""
}
},
@@ -5356,7 +5356,7 @@ return {
"",
false,
"",
"결국 잠들어 버렸네. 내 칼자루를 꼭 붙든 채로 잠들어 버리다니.",
"결국 잠들어 버렸군요. 제 칼자루를 꼭 붙든 채로 잠들다니.",
""
}
},
@@ -5399,7 +5399,7 @@ return {
"",
false,
"",
"당신, 요 며칠 너무 고생 많았어요.",
"최근 며칠 정말 고생하셨습니다.",
""
}
},
@@ -5533,7 +5533,7 @@ return {
"",
false,
"",
"엘리나는 자꾸만 자신에게 기대 오는 나를 두 팔로 안아 들고, 인술라의 문을 열었다. 그리고 침대에 살포시 눕혀줬다.",
"엘리나는 자꾸만 자신에게 기대 오는 이를 두 팔로 안아 들고, 인술라의 문을 열었다. 그리고 침대에 살포시 눕혔다.",
""
}
},
@@ -5673,7 +5673,7 @@ return {
"",
false,
"",
"<size=85%>제가 곁에 있으면.…… </size>==W==<size=85%>마음이 놓이시나요?</size>",
"<size=85%>제가 곁에 있으면.…… </size>==W==<size=85%>마음이 놓이신다고요?</size>",
""
}
},
@@ -5746,7 +5746,7 @@ return {
"",
false,
"",
"<size=85%>사실…… </size>==W==<size=85%>당신이 제 곁에 있으면, 저도 마음이 놓여요.</size>",
"<size=85%>사실…… </size>==W==<size=85%>당신이 제 곁에 있으면, 저도 마음이 놓입니다.</size>",
""
}
},
@@ -5819,7 +5819,7 @@ return {
"",
false,
"",
"<size=85%>특히…… </size>==W==<size=85%>이렇게 잠든 당신의 얼굴을 보고 있을 때면 더 그래요.</size>",
"<size=85%>특히…… </size>==W==<size=85%>이렇게 잠든 당신의 얼굴을 보고 있을 때면 더 그렇죠.</size>",
""
}
},
@@ -6622,7 +6622,7 @@ return {
"",
false,
"",
"지금 필라니스에서는 더 이상 그녀가 야간 순찰을 할 필요가 없었다.",
"지금의 필라니스에서는 더 이상 그녀가 야간 순찰을 할 필요가 없었다.",
""
}
},
@@ -6965,7 +6965,7 @@ return {
"",
false,
"",
"당신이 말했던 그 세이나가 되고 싶은…… 세이나. ==W==당신조차 알지 못하는 세이나.",
"당신이 말했던 그 세이나가 되고 싶은…… 세이나. ==W==당신조차도 알지 못하는 세이나.",
""
}
},
@@ -7038,7 +7038,7 @@ return {
"",
false,
"",
"후우…… 정말 바보 같네.",
"후우…… 정말 바보 같군요.",
""
}
},
@@ -7138,7 +7138,7 @@ return {
"",
false,
"",
"내가 여기서 뭘 찾고 있는 거람. 그 사람은 분명 저 별의 탑에 있는데.",
"전 여기서 뭘 찾고 있는 걸까요. 그 사람은 분명 저 별의 탑에 있는데 말이죠.",
""
}
},
@@ -7382,7 +7382,7 @@ return {
"",
false,
"",
"기초 체력을 기르는 건 하루아침에 되는 일이 아니야. 매일 꾸준히 단련해도 눈에 띄는 효과를 보려면 몇 달에서 1년은 걸려.",
"기초 체력을 기르는 건 하루아침에 되는 일이 아닙니다. 매일 꾸준히 단련해도 눈에 띄는 효과를 보려면 몇 달에서 1년은 걸리죠.",
""
}
},
@@ -7450,7 +7450,7 @@ return {
"",
false,
"",
"내일부터 나랑 같이 밤에 달리기하자. 체력도 기르고 검술도 연습하면서 천천히 꾸준히 해 나가다 보면, 다 잘될 거야.",
"내일부터 저랑 밤에 같이 달리시죠. 체력도 기르고 검술도 연습하면서 천천히 꾸준히 해 나가다 보면, 다 잘될 겁니다.",
""
}
},
@@ -7633,7 +7633,7 @@ return {
"",
false,
"",
"우리에게 가져다준 이 미래는, 내가 언제까지나 지켜 나갈게.",
"우리에게 가져다준 이 미래는, 제가 언제까지나 지켜 나가겠습니다.",
""
}
},
@@ -7667,7 +7667,7 @@ return {
"",
false,
"",
"필라니스에 남긴 흔적들도 영원히 남아 있도록 지켜낼 거야…… ==W==우리의 약속을 이뤄낼 그날까지.",
"필라니스에 남긴 흔적들도 영원히 남아 있도록 지켜낼 겁니다…… ==W==우리의 약속을 이뤄낼 그날까지.",
""
}
},
@@ -7690,7 +7690,7 @@ return {
"",
false,
"",
"맞아, 포기하지 않고 버티다 보면 언젠가는 다 괜찮아질 거야. 모든 소원도 이루어질 거고.",
"네, 포기하지 않고 버티다 보면 언젠가는 다 괜찮아질 겁니다. 모든 소원도 이루어질 거고요.",
""
}
},
@@ -7724,7 +7724,7 @@ return {
"",
false,
"",
"난 후회하지 않아. 당신도 그러하리라 믿어.",
"전 후회하지 않습니다. 당신도 그러하리라 믿습니다.",
""
}
},
@@ -7758,7 +7758,7 @@ return {
"",
false,
"",
"지켜봐 줘. 난 반드시 지금보다 더 강해질 거야.",
"지켜봐 주길. 저는 반드시 지금보다 더 강해질 겁니다.",
""
}
},
@@ -7776,7 +7776,7 @@ return {
"",
false,
"",
"다음엔 꼭 마지막 순간까지 당신을 지켜낼 거야. 그러니까, 소원 하나만 빌게 허락해 줘.",
"다음엔 꼭 마지막 순간까지 당신을 지켜 낼 겁니다. 그러니까, 소원 하나만 빌게 허락해 주십시오.",
""
}
},
@@ -7875,7 +7875,7 @@ return {
"",
false,
"",
"기사는 밤하늘을 향해 맹세의 검을 바쳤다. ==RT==이곳에서 그녀의 마음속 소원에 귀 기울여 줄 이는, 하늘의 무수한 별들과 말 없는 높은 탑뿐이었다.",
"기사는 밤하늘을 향해 맹세의 검을 바쳤다. 이곳에서 그녀의 마음속 소원에 귀 기울여 줄 이는, 하늘의 무수한 별들과 말 없는 높은 탑뿐이었다.",
""
}
},
@@ -7893,7 +7893,7 @@ return {
"",
false,
"",
"그녀의 소원이 과연 이루어졌는지는 또 다른 이야기다. 또 다른 세월이 들려주어야 할 이야기.",
"그녀의 소원이 과연 이루어졌는지는 또 다른 이야기다. 또 다른 세월이 들려주어야 할 이야기……",
""
}
},
+24 -24
View File
@@ -5,7 +5,7 @@ return {
"ep_mainline_001",
"04",
"편지 도둑을 만나다",
"테레사의 정보를 토대로 편지의 행방을 추적하던 중, 거리에서 낡은 편지를 수집하고 있던 보물 사냥꾼과 마주친다. 프리지아는 갑자기 무기를 꺼내 드는데……",
"테레사의 정보를 토대로 편지의 행방을 추적하던 중, 거리에서 낡은 편지를 수집하고 있던 보물찾기 여행가와 마주친다. 프리지아는 갑자기 무기를 꺼내 드는데……",
0
}
},
@@ -2171,7 +2171,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -2214,7 +2214,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -5863,7 +5863,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -6217,7 +6217,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -6347,7 +6347,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -6621,7 +6621,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -6929,7 +6929,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -7143,7 +7143,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -7204,13 +7204,13 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
false,
"",
"거기 계신 분, 우리 본 적 있잖아요!==W== 우리는 그…… ==W== 봉사로 편지를 배달 중! 그래요, 봉사로 편지 배달을 돕고 있다고요!",
"거기 계신 분, 우리 본 적 있잖아요!==W== 우리는 그…… 봉사로 편지를 배달 중! 그래요, 봉사로 편지 배달을 돕고 있다고요!",
""
}
},
@@ -7302,7 +7302,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -7427,7 +7427,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -7715,7 +7715,7 @@ return {
cmd = "SetTalk",
param = {
0,
"당황한 보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -7778,7 +7778,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -8063,7 +8063,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -8141,7 +8141,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -8184,7 +8184,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -8279,13 +8279,13 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
false,
"",
"편지를 훔쳤다고요? 흥, 웃기는 소리. 보물사냥 업계에선 ‘먼저 찾는 놈이 임자’랍니다!",
"편지를 훔쳤다고요? 흥, 웃기는 소리. 보물찾기 업계에선 ‘먼저 찾는 놈이 임자’랍니다!",
""
}
},
@@ -8347,7 +8347,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -8405,7 +8405,7 @@ return {
"",
false,
"",
"아니요, 편지는 반드시 제 주인에게 돌아가야 하는 법입니다. 어떤 이유로든 제3자가 빼앗는 일은 있을 수 없다고요!",
"아니요, 편지는 반드시 제 주인에게 돌아가야 하는 법입니다. 어떤 이유로든 제 3자가 빼앗는 일은 있을 수 없다고요!",
""
}
},
@@ -8519,7 +8519,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
@@ -8562,7 +8562,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼",
"보물찾기 여행가",
"",
0,
"",
+12 -12
View File
@@ -523,7 +523,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼 두목",
"보물찾기 여행가 두목",
"",
0,
"",
@@ -1007,7 +1007,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼 두목",
"보물찾기 여행가 두목",
"",
0,
"",
@@ -1231,7 +1231,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼 두목",
"보물찾기 여행가 두목",
"",
0,
"",
@@ -1639,7 +1639,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼 두목",
"보물찾기 여행가 두목",
"",
0,
"",
@@ -1750,7 +1750,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼 두목",
"보물찾기 여행가 두목",
"",
0,
"",
@@ -2158,7 +2158,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼 두목",
"보물찾기 여행가 두목",
"",
0,
"",
@@ -2379,7 +2379,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼 두목",
"보물찾기 여행가 두목",
"",
1,
"",
@@ -2447,7 +2447,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼 두목",
"보물찾기 여행가 두목",
"",
0,
"",
@@ -2866,7 +2866,7 @@ return {
cmd = "SetTalk",
param = {
0,
"보물 사냥꾼 두목",
"보물찾기 여행가 두목",
"",
1,
"",
@@ -2980,7 +2980,7 @@ return {
"",
false,
"",
"하지만, 보물 사냥꾼 두목의 가방을 뒤져보아도 하워드 씨의 편지는 찾지 못했다.",
"하지만, 보물찾기 여행가 두목의 가방을 뒤져보아도 하워드 씨의 편지는 찾지 못했다.",
""
}
},
@@ -3895,7 +3895,7 @@ return {
"",
false,
"",
"내가 남아서 도와줄게, 토나.",
"내가 남아서 도와줄 게, 토나.",
""
}
},
@@ -7607,7 +7607,7 @@ return {
"",
false,
"",
"‘편지를 빼앗는 마물’ 토벌…… 이번 사건을 해결하는 핵심은 이거라고 생각해.",
"‘편지를 빼앗는 마물’ 토벌…… 내 생각엔 이번 사건을 해결하는 핵심은 이거라고 생각해.",
""
}
},
+4 -4
View File
@@ -8967,7 +8967,7 @@ return {
cmd = "SetBg",
param = {
0,
"tower_common",
"tower_laundryroom",
"0",
"Linear",
1.0,
@@ -11879,7 +11879,7 @@ return {
cmd = "SetBg",
param = {
0,
"tower_common",
"tower_laundryroom",
"0",
"Linear",
1.0,
@@ -12868,7 +12868,7 @@ return {
cmd = "SetBg",
param = {
3,
"tower_common",
"tower_laundryroom",
"0",
"Linear",
0.0,
@@ -13789,7 +13789,7 @@ return {
cmd = "SetBg",
param = {
5,
"tower_common",
"tower_laundryroom",
"0",
"Linear",
0.0,
+2 -2
View File
@@ -948,7 +948,7 @@ return {
"",
false,
"",
"그래서…… 앞으로의 일 얘기인데, ==PLAYER_NAME==의 생각을 들려주지 않을래?",
"그래서…… 앞으로의 일 얘기인데, 네 생각을 들려주지 않을래?",
""
}
},
@@ -1037,7 +1037,7 @@ return {
"",
false,
"",
"피킨을 궁지에 몰아붙인 그 멋진 추리는, ==PLAYER_NAME==만이 할 수 있는 거야!",
"피킨을 궁지에 몰아붙인 그 멋진 추리는, 너만이 할 수 있는 거야!",
""
}
},
+16 -4
View File
@@ -10530,6 +10530,10 @@ return {
true
}
},
{
cmd = "Wait",
param = {1.0}
},
{
cmd = "SetChar",
param = {
@@ -10605,6 +10609,10 @@ return {
false
}
},
{
cmd = "Wait",
param = {0.5}
},
{
cmd = "SetMainRoleTalk",
param = {
@@ -10633,10 +10641,6 @@ return {
""
}
},
{
cmd = "Wait",
param = {0.3}
},
{
cmd = "SetChar",
param = {
@@ -10659,6 +10663,10 @@ return {
nil
}
},
{
cmd = "Wait",
param = {0.3}
},
{
cmd = "CtrlChar",
param = {
@@ -10698,6 +10706,10 @@ return {
""
}
},
{
cmd = "Wait",
param = {0.3}
},
{
cmd = "SetAudio",
param = {
+1 -1
View File
@@ -304,7 +304,7 @@ return {
{
id = 162,
icon = "Icon/Head/head_16201_S",
name = "엘리나",
name = "세이나(기원)",
landmark = "필라니스",
signature = "여기에 서명하라는데, 펜이 없는데 어떻게 서명하지?",
ver = "2.0.0"
+1
View File
@@ -1,5 +1,6 @@
local DiscSkillPanel = class("DiscSkillPanel", BasePanel)
DiscSkillPanel._bIsMainPanel = false
DiscSkillPanel._sSortingLayerName = AllEnum.SortingLayerName.UI_Top
DiscSkillPanel._tbDefine = {
{
sPrefabPath = "DiscSkill/DiscSkillPanel.prefab",
+64 -21
View File
@@ -293,18 +293,24 @@ function DormGuideAdapter.ContactRole()
return tonumber(mapInfo.nDataId)
end
function DormGuideAdapter.BeginDormEnter()
if DormGuideAdapter._mapEnter == nil then
DormGuideAdapter._nEnterGen = (DormGuideAdapter._nEnterGen or 0) + 1
DormGuideAdapter._mapEnter = {
nGen = DormGuideAdapter._nEnterGen,
bLoad = false,
bTimeline = nil
}
end
return DormGuideAdapter._mapEnter.nGen
end
function DormGuideAdapter.MarkDormLoad()
DormGuideAdapter._nDormLoadFrame = CS.UnityEngine.Time.frameCount
DormGuideAdapter._nEnterGen = (DormGuideAdapter._nEnterGen or 0) + 1
DormGuideAdapter._mapEnter = {
nGen = DormGuideAdapter._nEnterGen,
bLoad = false,
bLoad = true,
bTimeline = nil
}
return DormGuideAdapter._nEnterGen
end
function DormGuideAdapter.MarkDormLoad()
if DormGuideAdapter._mapEnter ~= nil then
DormGuideAdapter._mapEnter.bLoad = true
end
DormGuideAdapter.MarkRoomLoaded()
end
function DormGuideAdapter.MarkTimeline(bSuccess)
@@ -396,7 +402,10 @@ function DormGuideAdapter.SaveSettled(nId)
end
function DormGuideAdapter.QuestCardSettled()
local objCtrl = DormGuideAdapter._Ctrl()
if objCtrl == nil then
if objCtrl == nil or objCtrl.gameObject == nil or not objCtrl.gameObject.activeInHierarchy then
return false
end
if DormGuideAdapter._nDormLoadFrame ~= nil and CS.UnityEngine.Time.frameCount <= DormGuideAdapter._nDormLoadFrame then
return false
end
return DormGuideAdapter.AnimatorSettled(objCtrl.animator, "DormPanel_in")
@@ -541,20 +550,61 @@ function DormGuideAdapter.CaressPhase(nId)
end
function DormGuideAdapter.MarkFocus(nRoleId)
if DormGuideAdapter.ContactRole() ~= nRoleId then
DormGuideAdapter._nFocusRole = nil
DormGuideAdapter._nFocusAt = nil
DormGuideAdapter.ResetFocus()
return false
end
local nNow = TimerManager.GetUnscaledTime()
if DormGuideAdapter._nFocusRole ~= nRoleId then
DormGuideAdapter._nFocusRole = nRoleId
DormGuideAdapter._nFocusAt = TimerManager.GetUnscaledTime()
DormGuideAdapter._nFocusAt = nNow
DormGuideAdapter._nFocusX = nil
DormGuideAdapter._nFocusY = nil
DormGuideAdapter._nFocusFrame = nil
DormGuideAdapter._nFocusStable = 0
return false
end
return TimerManager.GetUnscaledTime() - (DormGuideAdapter._nFocusAt or 0) >= 0.7
local nElapsed = nNow - (DormGuideAdapter._nFocusAt or 0)
if nElapsed < 0.5 then
return false
end
local obj = DormGuideAdapter._Interactive()
local trHud
if obj ~= nil and obj._mapNode ~= nil and obj._mapNode.rtContact ~= nil and obj._mapNode.rtContact._mapNode ~= nil then
trHud = DormGuideAdapter.NodeTr(obj._mapNode.rtContact._mapNode.goCharHudRoot)
end
if trHud == nil then
return false
end
local pos = trHud.localPosition
local nFrame = CS.UnityEngine.Time.frameCount
if DormGuideAdapter._nFocusX == nil then
DormGuideAdapter._nFocusX = pos.x
DormGuideAdapter._nFocusY = pos.y
DormGuideAdapter._nFocusFrame = nFrame
DormGuideAdapter._nFocusStable = 0
return false
end
if nFrame ~= DormGuideAdapter._nFocusFrame then
local dx = pos.x - DormGuideAdapter._nFocusX
local dy = pos.y - DormGuideAdapter._nFocusY
DormGuideAdapter._nFocusX = pos.x
DormGuideAdapter._nFocusY = pos.y
DormGuideAdapter._nFocusFrame = nFrame
if dx * dx + dy * dy <= 0.04 then
DormGuideAdapter._nFocusStable = (DormGuideAdapter._nFocusStable or 0) + 1
else
DormGuideAdapter._nFocusStable = 0
end
end
return 0.7 <= nElapsed and (DormGuideAdapter._nFocusStable or 0) >= 2
end
function DormGuideAdapter.ResetFocus()
DormGuideAdapter._nFocusRole = nil
DormGuideAdapter._nFocusAt = nil
DormGuideAdapter._nFocusX = nil
DormGuideAdapter._nFocusY = nil
DormGuideAdapter._nFocusFrame = nil
DormGuideAdapter._nFocusStable = 0
end
function DormGuideAdapter.BeginRoomEnter(nRoomId, bElevator)
DormGuideAdapter._nRoomGen = (DormGuideAdapter._nRoomGen or 0) + 1
@@ -599,6 +649,7 @@ function DormGuideAdapter.MarkWalkout()
if DormGuideAdapter._mapRoomEnter ~= nil then
DormGuideAdapter._mapRoomEnter.bWalkout = true
end
DormGuideUI.TryBroadcastEnter()
DormGuideAdapter.FlushPassive()
end
function DormGuideAdapter.RoomArrived(nRoomId)
@@ -646,15 +697,7 @@ function DormGuideAdapter._PendingValid(sMsg)
if sMsg == "Guide_DormEnterRoom2" then
return DormGuideAdapter.RoomEnterReady(DormGuideAdapter.ROOM2_ID)
end
local nMode = DormGuideAdapter.Mode()
if nMode == nil or nMode == 2 or nMode == 3 then
return false
end
local PanelManager = require("GameCore.UI.PanelManager")
if PanelManager.CheckPanelOpen(PanelId.DormQuestPanel) then
return false
end
return true
return DormGuideUI.IsOnDormMainPanel()
end
function DormGuideAdapter.FlushPassive()
if DormGuideAdapter._objFlush ~= nil then
+63 -38
View File
@@ -19,10 +19,7 @@ DormGuideUI._bKeepContact = false
DormGuideUI._nInputCap = 0
DormGuideUI._bTriggerEventBound = false
DormGuideUI._bInterceptEventBound = false
DormGuideUI._bPendingRoom2Guide = false
DormGuideUI._nRoom2Timer = nil
DormGuideUI.ROOM2_ID = 701002
DormGuideUI.ROOM2_ENTER_DELAY = 1.5
DormGuideUI.GUIDE_GROUP_ID = {
[521] = true,
[522] = true,
@@ -69,6 +66,7 @@ function DormGuideUI._EnsureTriggerEvents()
EventManager.Add("OnEvent_DormLevelLoadComplete", DormGuideUI, DormGuideUI.OnEvent_DormLevelLoadComplete)
EventManager.Add("DormRoomSelect_ChangeRoomResult", DormGuideUI, DormGuideUI.OnEvent_ChangeRoomResult)
EventManager.Add("Guide_CloseDisposablePanel", DormGuideUI, DormGuideUI.OnEvent_CloseDisposablePanel)
EventManager.Add("DormGuide_CharSelectClosed", DormGuideUI, DormGuideUI.OnEvent_CharSelectClosed)
EventManager.Add("DormGuide_ModeApplied", DormGuideUI, DormGuideUI.OnEvent_ModeApplied)
EventManager.Add("DORM_CS2LUA_BORN_TIMELINE_DONE", DormGuideUI, DormGuideUI.OnEvent_BornTimeline)
end
@@ -80,6 +78,7 @@ function DormGuideUI._RemoveTriggerEvents()
EventManager.Remove("OnEvent_DormLevelLoadComplete", DormGuideUI, DormGuideUI.OnEvent_DormLevelLoadComplete)
EventManager.Remove("DormRoomSelect_ChangeRoomResult", DormGuideUI, DormGuideUI.OnEvent_ChangeRoomResult)
EventManager.Remove("Guide_CloseDisposablePanel", DormGuideUI, DormGuideUI.OnEvent_CloseDisposablePanel)
EventManager.Remove("DormGuide_CharSelectClosed", DormGuideUI, DormGuideUI.OnEvent_CharSelectClosed)
EventManager.Remove("DormGuide_ModeApplied", DormGuideUI, DormGuideUI.OnEvent_ModeApplied)
EventManager.Remove("DORM_CS2LUA_BORN_TIMELINE_DONE", DormGuideUI, DormGuideUI.OnEvent_BornTimeline)
end
@@ -151,6 +150,10 @@ function DormGuideUI.Unbind(objCtrl)
if objCtrl ~= nil and DormGuideUI._objDormCtrl ~= objCtrl then
return
end
if DormGuideUI._objEnterTimer ~= nil then
TimerManager.Remove(DormGuideUI._objEnterTimer)
DormGuideUI._objEnterTimer = nil
end
DormGuideUI._RemoveTriggerEvents()
DormGuideUI._objDormCtrl = nil
end
@@ -234,42 +237,71 @@ function DormGuideUI.Clear()
DormGuideUI._ApplyLeaveBtns()
DormGuideUI._RemoveInterceptEvents()
end
function DormGuideUI._CancelRoom2Timer()
if DormGuideUI._nRoom2Timer ~= nil then
TimerManager.Remove(DormGuideUI._nRoom2Timer)
DormGuideUI._nRoom2Timer = nil
local IsPopupDisposablePanel = function(nPanelId)
if nPanelId == nil then
return true
end
if nPanelId == PanelId.ReceivePropsTips or nPanelId == PanelId.ReceivePropsNPC or nPanelId == PanelId.ReceiveAutoTrans or nPanelId == PanelId.ReceiveSpecialReward or nPanelId == PanelId.CharFavourLevelUp or nPanelId == PanelId.DormInteractiveAffinityPanel or nPanelId == PanelId.DictionaryEntry then
return true
end
if UTILS ~= nil and type(UTILS.CheckIsTipsPanel) == "function" and UTILS.CheckIsTipsPanel(nPanelId) then
return true
end
return false
end
function DormGuideUI.TryBroadcastEnter()
function DormGuideUI.IsOnDormMainPanel()
if NovaAPI.GetCurrentModuleName() ~= "DormModuleScene" then
return
return false
end
local objCtrl = DormGuideUI._objDormCtrl
if objCtrl == nil or objCtrl._panel == nil then
return
if objCtrl == nil or objCtrl._panel == nil or objCtrl._panel._bIsActive ~= true then
return false
end
if objCtrl.gameObject == nil or not objCtrl.gameObject.activeInHierarchy then
return false
end
local nMode = objCtrl._panel.nCurMode
if nMode == 2 or nMode == 3 then
return
if nMode ~= 0 and nMode ~= 1 then
return false
end
if PanelManager.CheckPanelOpen(PanelId.DormQuestPanel) then
local objSelect = DormGuideUI._GetCharSelectCtrl()
if objSelect ~= nil and objSelect.bOpen == true then
return false
end
if PanelManager.GetCurPanelId() ~= PanelId.DormPanel or PanelManager.CheckNextPanelOpening() or PanelManager.HasDisposablePanel() then
return false
end
return true
end
function DormGuideUI.TryBroadcastEnter()
if not DormGuideUI.IsOnDormMainPanel() then
return
end
EventManager.Hit("Guide_PassiveCheck_Msg", "Guide_DormEnter")
end
function DormGuideUI._TryBroadcastRoom2()
if not DormGuideUI._bPendingRoom2Guide then
return
function DormGuideUI._ScheduleReturnCheck()
if DormGuideUI._objEnterTimer ~= nil then
TimerManager.Remove(DormGuideUI._objEnterTimer)
DormGuideUI._objEnterTimer = nil
end
local objCtrl = DormGuideUI._objDormCtrl
if objCtrl == nil or objCtrl._panel == nil or objCtrl._panel.nCurRoom ~= DormGuideUI.ROOM2_ID then
return
end
DormGuideUI._bPendingRoom2Guide = false
DormGuideUI._CancelRoom2Timer()
DormGuideUI._nRoom2Timer = TimerManager.Add(1, DormGuideUI.ROOM2_ENTER_DELAY, DormGuideUI, function()
DormGuideUI._nRoom2Timer = nil
EventManager.Hit("Guide_PassiveCheck_Msg", "Guide_DormEnterRoom2")
local nScheduleFrame = CS.UnityEngine.Time.frameCount
DormGuideUI._objEnterTimer = TimerManager.Add(1, 0, DormGuideUI, function(_, timer)
if CS.UnityEngine.Time.frameCount <= nScheduleFrame then
return
end
if timer ~= nil then
timer:Cancel(false)
end
DormGuideUI._objEnterTimer = nil
if PlayerData.Guide ~= nil and PlayerData.Guide.isProcessing then
return
end
if PanelManager.CheckInTransition() or not DormGuideUI.IsOnDormMainPanel() then
return
end
DormGuideUI.TryBroadcastEnter()
local DormGuideAdapter = require("Game.UI.Dorm.DormGuideAdapter")
DormGuideAdapter.FlushPassive()
end, true, true, true, nil)
end
function DormGuideUI.OnEvent_DormLevelLoadComplete()
@@ -291,20 +323,13 @@ function DormGuideUI.OnEvent_ChangeRoomResult(_, bConfirm, nRoomId)
end
end
function DormGuideUI.OnEvent_CloseDisposablePanel(_, nPanelId)
if nPanelId ~= PanelId.DormQuestPanel then
if IsPopupDisposablePanel(nPanelId) then
return
end
if DormGuideUI._objEnterTimer ~= nil then
TimerManager.Remove(DormGuideUI._objEnterTimer)
DormGuideUI._objEnterTimer = nil
end
DormGuideUI._objEnterTimer = TimerManager.Add(1, 0, DormGuideUI, function(_, timer)
if timer ~= nil then
timer:Cancel(false)
end
DormGuideUI._objEnterTimer = nil
DormGuideUI.TryBroadcastEnter()
end, true, true, true, nil)
DormGuideUI._ScheduleReturnCheck()
end
function DormGuideUI.OnEvent_CharSelectClosed()
DormGuideUI._ScheduleReturnCheck()
end
function DormGuideUI._GetInteractiveNode()
local objCtrl = DormGuideUI._objDormCtrl
+2 -2
View File
@@ -144,7 +144,7 @@ end
function GuideCtrl:PlayTypeMask(msg)
self._mapNode.btnShortcutClose.gameObject:SetActive(GamepadUIManager.GetInputState() and not msg.isUITop)
if GamepadUIManager.GetInputState() then
GamepadUIManager.EnableGamepadUI("GuideCtrl", self.tbGamepadUINode)
GamepadUIManager.EnableGamepadUI("GuideCtrl", self.tbGamepadUINode, nil, nil, nil, AllEnum.UI_SORTING_ORDER.TipsEx)
end
self.tmpSort = nil
local nSort = NovaAPI.GetCanvasSortingOrder(self.gameObject:GetComponent("Canvas"))
@@ -566,7 +566,7 @@ end
function GuideCtrl:PlayTypeMask_505(msg)
self._mapNode.btnShortcutClose.gameObject:SetActive(false)
if GamepadUIManager.GetInputState() then
GamepadUIManager.EnableGamepadUI("GuideCtrl", self.tbGamepadUINode)
GamepadUIManager.EnableGamepadUI("GuideCtrl", self.tbGamepadUINode, nil, nil, nil, AllEnum.UI_SORTING_ORDER.TipsEx)
end
self.tmpSort = nil
local nSort = NovaAPI.GetCanvasSortingOrder(self.gameObject:GetComponent("Canvas"))
@@ -143,8 +143,10 @@ function GuideGroup_505:Step_4()
current = 4
self.waitAnimTime = 0.3
local wait = function()
EventManager.Hit(EventId.BlockInput, true)
coroutine.yield(CS.UnityEngine.WaitForSeconds(self.waitAnimTime))
self.parent:PlayTypeMask(self.msg)
EventManager.Hit(EventId.BlockInput, false)
end
cs_coroutine.start(wait)
end
@@ -84,8 +84,10 @@ function GuideGroup_508:Step_3()
current = 3
self.waitAnimTime = 0.3
local wait = function()
EventManager.Hit(EventId.BlockInput, true)
coroutine.yield(CS.UnityEngine.WaitForSeconds(self.waitAnimTime))
self.parent:PlayTypeMask(self.msg)
EventManager.Hit(EventId.BlockInput, false)
end
cs_coroutine.start(wait)
end
@@ -88,8 +88,10 @@ function GuideGroup_510:Step_2()
current = 2
self.waitAnimTime = 0.3
local wait = function()
EventManager.Hit(EventId.BlockInput, true)
coroutine.yield(CS.UnityEngine.WaitForSeconds(self.waitAnimTime))
self.parent:PlayTypeMask(self.msg)
EventManager.Hit(EventId.BlockInput, false)
end
cs_coroutine.start(wait)
end
+15 -57
View File
@@ -22,13 +22,7 @@ local Policy = function(nCap, bHide, bQuest, bBarrier)
}
end
function GuideGroup_521:OnStart(ctx)
if NovaAPI.GetCurrentModuleName() == "DormModuleScene" then
print("[DormGuide] 521 abort, already in dorm")
ctx:Set("bAbort", true)
else
PlayerData.PlayerDormData:SetEnterDormParam(nil, true)
ctx:Set("nEnterGen", DormGuideAdapter.BeginDormEnter())
end
ctx:Set("nEnterGen", DormGuideAdapter.BeginDormEnter())
end
function GuideGroup_521:OnClear()
EventManager.Hit(EventId.AvgBubbleExit)
@@ -38,60 +32,18 @@ end
function GuideGroup_521:GetSteps()
return {
{
sName = "dorm_entry",
sName = "outdoor_avg",
bPlayerWait = true,
ShouldRun = function(ctx)
if ctx:Get("bAbort") then
ShouldRun = function()
if DormGuideAdapter.QuestStatus(nQuestId) == 2 then
return "finish"
end
if DormGuideAdapter.Mode() == 3 then
return "abort"
end
return "run"
end,
Poll = function()
local goRoot = GameObject.Find("---- UI ----")
if goRoot == nil then
return nil
end
return goRoot.transform:Find("MainViewPanel/----SafeAreaRoot----/HideRoot/--BottomRight--/btnDorm")
end,
Present = {
sKind = "Mask",
mapMask = {
Size = {200, 200},
Deviation = {0, 0},
Desc = "Guide_521_1",
DescDeviation = {-650, 0},
HandDeviation = {0, 180},
HandRotation = 180
}
},
InputPolicy = Policy(0, false, false, true),
Action = function()
local goRoot = GameObject.Find("---- UI ----")
if goRoot == nil then
return {sState = "rejected"}
end
local tr = goRoot.transform:Find("MainViewPanel/----SafeAreaRoot----/HideRoot/--BottomRight--/btnDorm")
if tr == nil then
return {sState = "rejected"}
end
local btn = tr:GetComponent("UIButton")
if btn ~= nil and btn.onClick ~= nil then
btn.onClick:Invoke()
end
return {sState = "accepted"}
end,
End = {sMode = "Click"},
OnExit = function(_, sReason)
if sReason ~= "success" then
return
end
DormGuideAdapter.ApplyPolicy(Policy(nTimelineBlock, true, false, true))
end
},
{
sName = "outdoor_avg",
bPlayerWait = true,
Start = {
WaitTrigger = {
Events = {
"DORM_CS2LUA_BORN_TIMELINE_DONE"
},
@@ -101,6 +53,9 @@ function GuideGroup_521:GetSteps()
return true
end,
Ready = function(ctx)
if not PlayerData.PlayerDormData.bCurEnterIsGuide then
return true
end
if ctx:Get("bCameraDone") == true then
return true
end
@@ -113,7 +68,10 @@ function GuideGroup_521:GetSteps()
sAvgId = sAvgId,
sAvgGroup = sAvgGroupId
},
InputPolicy = Policy(DormGuideUI.DEFAULT_BLOCK, true, false, false),
InputPolicy = {
enter = Policy(nTimelineBlock, true, false, true),
present = Policy(DormGuideUI.DEFAULT_BLOCK, true, false, false)
},
End = {
sMode = "Condition",
Ready = function()
@@ -68,7 +68,13 @@ function GuideGroup_522:GetSteps()
HandDeviation = {0, 120},
HandRotation = 180,
Type = GameEnum.guidetype.ForcedClick
}
},
Ready = function(_, tr)
if tr == nil or tr.gameObject == nil or not tr.gameObject.activeInHierarchy then
return false
end
return DormGuideAdapter.QuestCardSettled()
end
},
InputPolicy = Policy(false, false),
Action = function()
@@ -65,6 +65,12 @@ function GuideGroup_523:GetSteps()
if tr ~= nil then
tr.gameObject:SetActive(true)
end
end,
Ready = function(_, tr)
if tr == nil or tr.gameObject == nil or not tr.gameObject.activeInHierarchy then
return false
end
return DormGuideAdapter.QuestCardSettled()
end
},
InputPolicy = {
+74 -32
View File
@@ -10,6 +10,21 @@ local sHead = "Icon/Head/head_11101"
local CAP = DormGuideUI.InputCap
local nApproachCap = CAP.Zoom | CAP.PickFur
local nCaressCap = CAP.Zoom | CAP.Move | CAP.PickFur
local mapCaressFree = {
nSceneCap = nApproachCap,
bUiBarrier = false,
bLockLeave = true,
bHideChrome = true,
bKeepContact = true
}
local mapCaressLock = {
nSceneCap = nCaressCap,
bUiBarrier = true,
bLockLeave = true,
bHideChrome = true,
bKeepContact = true
}
local bGateLock
local SelectOpen = function()
local obj = DormGuideAdapter._Select()
return obj ~= nil and obj.bOpen == true
@@ -32,9 +47,27 @@ local RoomFullWithoutRole = function()
end
return #mapRoom.RoleList >= mapCfg.RoleNum
end
local SyncCaressGate = function()
local bLock = DormGuideAdapter.ContactRole() == nRoleId
if bLock then
DormGuideAdapter.MarkFocus(nRoleId)
else
DormGuideAdapter.ResetFocus()
end
if bGateLock ~= bLock then
bGateLock = bLock
DormGuideAdapter.ApplyPolicy(bLock and mapCaressLock or mapCaressFree)
end
return bLock
end
function GuideGroup_524:OnStart()
bGateLock = nil
DormGuideAdapter.ResetFocus()
end
function GuideGroup_524:OnClear()
bGateLock = nil
DormGuideAdapter.ResetFocus()
EventManager.Hit(EventId.AvgBubbleExit)
DormGuideAdapter.ReleaseGuide()
end
function GuideGroup_524:GetSteps()
@@ -68,7 +101,13 @@ function GuideGroup_524:GetSteps()
Head = sHead,
HandDeviation = {0, 80},
HandRotation = 180
}
},
Ready = function(_, tr)
if tr == nil or tr.gameObject == nil or not tr.gameObject.activeInHierarchy then
return false
end
return DormGuideAdapter.QuestCardSettled()
end
},
InputPolicy = {
nSceneCap = DormGuideUI.DEFAULT_BLOCK | CAP.Move,
@@ -283,6 +322,13 @@ function GuideGroup_524:GetSteps()
{
sName = "approach_avg",
bPlayerWait = true,
ShouldRun = function()
if DormGuideAdapter.ContactRole() ~= nRoleId then
return "run"
end
SyncCaressGate()
return "skip"
end,
WaitTrigger = {
Ready = function()
if DormGuideAdapter.RoleInRoom(nRoleId) ~= true then
@@ -310,17 +356,30 @@ function GuideGroup_524:GetSteps()
},
End = {
sMode = "Condition",
Events = {
"DormShowInteractiveBtns"
},
Match = function()
if not SyncCaressGate() then
return false
end
EventManager.Hit(EventId.AvgBubbleExit)
return true
end,
Ready = function()
return false
return DormGuideAdapter.ContactRole() == nRoleId
end
}
},
OnExit = function()
EventManager.Hit(EventId.AvgBubbleExit)
end
},
{
sName = "caress",
bPlayerWait = true,
bReportDone = true,
Poll = function()
if DormGuideAdapter.ContactRole() ~= nRoleId then
if not SyncCaressGate() then
return nil
end
local obj = DormGuideAdapter._Interactive()
@@ -331,7 +390,7 @@ function GuideGroup_524:GetSteps()
end,
WaitTrigger = {
Ready = function()
if DormGuideAdapter.ContactRole() ~= nRoleId then
if not SyncCaressGate() then
return false
end
return DormGuideAdapter.MarkFocus(nRoleId)
@@ -339,10 +398,8 @@ function GuideGroup_524:GetSteps()
Events = {
"DormShowInteractiveBtns"
},
Match = function(_, bShow)
if bShow == true or DormGuideAdapter.ContactRole() ~= nRoleId then
DormGuideAdapter.ResetFocus()
end
Match = function()
SyncCaressGate()
return true
end,
bPlayerWait = true
@@ -383,29 +440,14 @@ function GuideGroup_524:GetSteps()
end
return DormGuideAdapter.ContactRole() == nRoleId
end,
InputPolicy = {
enter = {
nSceneCap = nApproachCap,
bUiBarrier = false,
bLockLeave = true,
bHideChrome = true,
bKeepContact = true
},
click = {
nSceneCap = nCaressCap,
bUiBarrier = true,
bLockLeave = true,
bHideChrome = true,
bKeepContact = true
},
request = {
nSceneCap = nCaressCap,
bUiBarrier = true,
bLockLeave = true,
bHideChrome = true,
bKeepContact = true
}
},
InputPolicy = function()
local bLock = DormGuideAdapter.ContactRole() == nRoleId
bGateLock = bLock
if not bLock then
DormGuideAdapter.ResetFocus()
end
return bLock and mapCaressLock or mapCaressFree
end,
Action = function(ctx)
local nId, bNew = DormGuideAdapter.BeginCaress()
ctx:Set("nCaressOp", nId)
@@ -110,6 +110,12 @@ function GuideGroup_526:GetSteps()
if tr ~= nil then
tr.gameObject:SetActive(true)
end
end,
Ready = function(_, tr)
if tr == nil or tr.gameObject == nil or not tr.gameObject.activeInHierarchy then
return false
end
return DormGuideAdapter.QuestCardSettled()
end
},
InputPolicy = {
@@ -108,7 +108,13 @@ function GuideGroup_527:GetSteps()
DescDeviation = {-650, 0},
HandDeviation = {0, 120},
HandRotation = 180
}
},
Ready = function(_, tr)
if tr == nil or tr.gameObject == nil or not tr.gameObject.activeInHierarchy then
return false
end
return DormGuideAdapter.QuestCardSettled()
end
},
InputPolicy = {
nSceneCap = DormGuideUI.DEFAULT_BLOCK | CAP.Move,
@@ -65,6 +65,12 @@ function GuideMissionShopCtrl:EnterShop(nTogIndex)
self:CheckShopData(nTogIndex)
end
function GuideMissionShopCtrl:ExitShop()
if self.tbGridCtrl ~= nil then
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
self:UnbindCtrlByNode(objCtrl)
self.tbGridCtrl[nInstanceId] = nil
end
end
if not self.bInShop then
return
end
@@ -185,6 +185,8 @@ function StoryChapterCtrl:OnEnable()
self:OnGrid_Chapter(goChapterGridBtn, true)
end
local AnimDone = function()
self.nChapterId_To = 0
self.nStoryLineId_To = 0
self.nChapterIn = 0
end
local nAnimDuration = 0
@@ -119,7 +119,8 @@ local Storys = {
1120,
1121,
1122,
1123
1123,
1124
}
local BG_SCROLL_SPEED = 1.0
local BEHIND_BG_SCROLL_SPEED = 0.15
@@ -245,7 +246,7 @@ function MainlineEx_DustDawnStoryCtrl:RebaseBGScroll()
end
local x = content.anchoredPosition.x
self.bgInitX = self._mapNode.behindBG.anchoredPosition.x - x * BEHIND_BG_SCROLL_SPEED
self.zsBGInitX = self._mapNode.zsBG.anchoredPosition.x - x * BG_SCROLL_SPEED
self.zsBGInitX = self._mapNode.zsBG.anchoredPosition.x
self.dustDawnBgInitX = self._mapNode.DustDawnBg.anchoredPosition.x - x * DUSTDAWN_BG_SCROLL_SPEED
end
function MainlineEx_DustDawnStoryCtrl:InitBGScroll()
@@ -1,4 +1,6 @@
local SoldierBattleResultCtrl = class("SoldierBattleResultCtrl", BaseCtrl)
local LocalData = require("GameCore.Data.LocalData")
local newDayTime = UTILS.GetDayRefreshTimeOffset()
SoldierBattleResultCtrl._mapNodeConfig = {
goRoot = {
sNodeName = "----SafeAreaRoot----"
@@ -113,6 +115,8 @@ local _NF = AllEnum.SoldierResultType.NodeFail
local _CS = AllEnum.SoldierResultType.ChallengeSuccess
local _CF = AllEnum.SoldierResultType.ChallengeFail
local AssetRoot = "Icon/SoldierOtherIcon/"
local RecommendTipsKey = "Soldier_Recommend_Tips_Time"
local RecommendWorldClass = 20
function SoldierBattleResultCtrl:RefreshResult()
self.bInBattleReport = false
self._mapNode.goBattleReport.gameObject:SetActive(false)
@@ -235,8 +239,76 @@ function SoldierBattleResultCtrl:OnBtnClick_Confirm()
self:ShowBattleReport()
return
end
if (self.nResultType == _CS or self.nResultType == _CF) and self:CheckShowRecommendTips() then
self:ShowRecommendTips()
return
end
self:ClosePanel()
end
local GetTodayKey = function()
local nFixedTimeStamp = CS.ClientManager.Instance.serverTimeStampWithTimeZone - newDayTime * 3600
local nYear = tonumber(os.date("!%Y", nFixedTimeStamp))
local nMonth = tonumber(os.date("!%m", nFixedTimeStamp))
local nDay = tonumber(os.date("!%d", nFixedTimeStamp))
return nYear * 366 + nMonth * 31 + nDay
end
function SoldierBattleResultCtrl:CheckIsLastGradeChallenge()
local nGradeChallengeId = self.mapData and self.mapData.nGradeChallengeId or 0
if nGradeChallengeId == 0 then
return false
end
local nSeasonId = PlayerData.SoldierData:GetCurSelectSeasonId()
local nMaxGradeId = 0
ForEachTableLine(ConfigTable.Get("SoldierGradeChallenge"), function(mapLine)
if mapLine.Season == nSeasonId and mapLine.Id > nMaxGradeId then
nMaxGradeId = mapLine.Id
end
end)
return 0 < nMaxGradeId and nGradeChallengeId == nMaxGradeId
end
function SoldierBattleResultCtrl:CheckShowRecommendTips()
local nTipDay = tonumber(LocalData.GetPlayerLocalData(RecommendTipsKey) or 0)
if nTipDay == GetTodayKey() then
return false
end
if PlayerData.Base:GetWorldClass() < RecommendWorldClass then
return false
end
local nScoreCondition = ConfigTable.GetConfigNumber("SoldierRecommendScoreCondition")
if nScoreCondition == nil or nScoreCondition > (self.nTotalScore or 0) then
return false
end
return self:CheckIsLastGradeChallenge()
end
function SoldierBattleResultCtrl:ShowRecommendTips()
local bSelectAgain = false
local SaveAgain = function()
if bSelectAgain then
LocalData.SetPlayerLocalData(RecommendTipsKey, tostring(GetTodayKey()))
end
end
local confirmCallback = function()
SaveAgain()
PlayerData.SoldierData:OpenRecommendSquare()
self:ClosePanel()
end
local cancelCallback = function()
SaveAgain()
self:ClosePanel()
end
local againCallback = function(bSelect)
bSelectAgain = bSelect
end
local msg = {
nType = AllEnum.MessageBox.Confirm,
sContent = ConfigTable.GetUIText("Soldier_Result_Recommend_Tips"),
callbackConfirm = confirmCallback,
callbackCancel = cancelCallback,
callbackAgain = againCallback,
bBlur = false
}
EventManager.Hit(EventId.OpenMessageBox, msg)
end
function SoldierBattleResultCtrl:ShowBattleReport()
self.bInBattleReport = true
self._mapNode.goBattleExpansion:SetActive(false)
@@ -415,6 +487,7 @@ function SoldierBattleResultCtrl:SetGoBattleExpansionMsg()
local nCheckStageTime = tbSettle.nCheckStageTime or 0
local nChessTotalCost = tbSettle.nChessTotalCost or 0
local nTotalScore = nPassedNode + nRemainingHp + nCheckStageDps + nCheckStageTime + nChessTotalCost
self.nTotalScore = nTotalScore
if 0 < nTotalScore then
CS.WwiseAudioManager.Instance:PostEvent("mode_900001_chess_result_countPoint")
end
@@ -138,7 +138,7 @@ function SoldierPartnerTipsCtrl:OnEnable()
end
function SoldierPartnerTipsCtrl:OnDisable()
self:DisableGamepadUI()
if self._tbTargetOriginPos ~= nil and self.rtTarget ~= nil then
if self._tbTargetOriginPos ~= nil and not self.rtTarget:IsNull() then
local rtTargetRect = self.rtTarget:GetComponent("RectTransform")
rtTargetRect.anchoredPosition = self._tbTargetOriginPos
self._tbTargetOriginPos = nil
@@ -1,5 +1,4 @@
local SoldierRecommendCtrl = class("SoldierRecommendCtrl", BaseCtrl)
local SDKManager = CS.SDKManager.Instance
local HIDE_CELL_POS_Y = 100000
SoldierRecommendCtrl._mapNodeConfig = {
Topbar = {
@@ -440,29 +439,7 @@ function SoldierRecommendCtrl:OnBtnClick_ConfirmImport()
end)
end
function SoldierRecommendCtrl:OnBtnClick_RcmdSquare()
local bHasUrl, sUrl = UTILS.GetToolBoxUrl()
if not (bHasUrl and sUrl) or sUrl == "" then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Function_NotAvailable"))
return
end
sUrl = sUrl .. "/auto-chess"
local bSuccess, bOpened = pcall(function()
if NovaAPI.IsEditorPlatform() then
NovaAPI.OpenURL(sUrl)
return true
end
if not SDKManager:IsSDKInit() then
return false
end
SDKManager:ShowWebView(false, "", sUrl, 1, 0, true)
return true
end)
if not bSuccess then
printError(bOpened)
end
if not bSuccess or not bOpened then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Function_NotAvailable"))
end
PlayerData.SoldierData:OpenRecommendSquare()
end
function SoldierRecommendCtrl:OnEvent_RefreshRecommendList()
if self.nListState == 2 then
@@ -61,8 +61,7 @@ function SoldierPartnerListCtrl:OnPartnerRefreshGrid(goGrid, gridIndex)
NovaAPI.SetTMPText(txt_name, partnerCfg.Name)
NovaAPI.SetTMPText(txtPartner2, partner.nCurNum)
local bTrace = PlayerData.SoldierData:GetCurLevelData():CheckPartnerTrace(partner.nType)
local bRecommend = PlayerData.SoldierData:CheckPartnerRecommendState(partner.nType)
img_Trace.gameObject:SetActive(bTrace or bRecommend)
img_Trace.gameObject:SetActive(bTrace)
local strLevel = ""
for i = 1, #partner.tbNumList do
if 1 < i then
@@ -1820,6 +1820,9 @@ function SoldierSandtableCtrl:OnEvent_SoldierSandtableCharItemDragEnd(nDragInsId
self:InitChessList()
self._mapNode.blockInput:SetActive(false)
end)
if self._mapNode.SoldierShopComponent:IsShopOpen() then
self._mapNode.SoldierShopComponent:RefreshShopData()
end
end)
elseif targetChessData == nil then
self:RefreshChessList()
@@ -1859,12 +1862,16 @@ function SoldierSandtableCtrl:OnEvent_SoldierSandtableOtherCharItemDragEnd(chess
table.insert(tbStep, v)
end
end
CS.WwiseAudioManager.Instance:PostEvent("mode_900001_chess_shop_sell")
self._mapNode.blockInput:SetActive(true)
self:PlayStepsAnimation(tbStep, function()
self:InitOtherChessList()
self:InitChessList()
self._mapNode.blockInput:SetActive(false)
end)
if self._mapNode.SoldierShopComponent:IsShopOpen() then
self._mapNode.SoldierShopComponent:RefreshShopData()
end
end)
else
self:RefreshChessList()
@@ -772,6 +772,12 @@ function PlayerBaseData:GoHomeFromCurModule()
EventManager.Add("EnterModule", self, OnEventEnterModule)
NovaAPI.EnterModule("MainMenuModuleScene", true)
return
elseif PanelManager.CheckPanelOpen(PanelId.SoldierSandtable) == true then
if PlayerData.SoldierData:GetCurLevelData() ~= nil then
PlayerData.SoldierData:GetCurLevelData():UnloadSandtableScene()
end
PanelManager.Home()
return
end
PanelManager.Home()
end
@@ -24,6 +24,7 @@ function PlayerDormData:Init()
self.nLastLikeInfoTime = 0
self.nEnterRoomSceneId = nil
self.bEnterIsGuide = false
self.bCurEnterIsGuide = false
printLog("dorm init")
EventManager.Add(EventId.IsNewDay, self, self.OnEvent_NewDay)
self.nHonorMaxLevel = 0
@@ -68,6 +69,7 @@ end
function PlayerDormData:GetGuideState()
local ret = self.bEnterIsGuide == true
self.bEnterIsGuide = false
self.bCurEnterIsGuide = ret
return ret
end
function PlayerDormData:GetRoomInfo(callback)
@@ -918,6 +920,7 @@ function PlayerDormData:CacheDormHotInfo(mapData)
if mapData ~= nil then
self.cachedCollection = mapData.CollectionValue
PlayerData.Guide:SetGuideNewbie(mapData.Newbies)
self.bEnterIsGuide = not PlayerData.Guide:CheckGuideFinishById(521)
end
local sKey = "PlayerDormNewRoom"
local sData = LocalData.GetPlayerLocalData(sKey)
@@ -215,6 +215,7 @@ function PlayerInfinityTowerData:RefreshCharDamageData(tbCharId)
local actorInfo = {}
actorInfo.nCharId = tbCharId[i]
actorInfo.nDamage = damage
actorInfo.nSkinId = PlayerData.Build:GetBattleCharSkinId(tbCharId[i])
table.insert(self.tbCharDamage, actorInfo)
end
CS.AdventureModuleHelper.ClearCharacterDamageRecord(true)
@@ -827,8 +827,8 @@ function PlayerQuestData:ReceiveDailyActiveReward(callBack)
self.tbDailyActives[v].bReward = true
local mapCfg = ConfigTable.GetData("DailyQuestActive", v)
if mapCfg ~= nil then
for i = 1, 2 do
if mapCfg["ItemTid" .. i] ~= 0 then
for i = 1, 3 do
if mapCfg["ItemTid" .. i] ~= nil and mapCfg["ItemTid" .. i] ~= 0 then
if tbReward[mapCfg["ItemTid" .. i]] == nil then
tbReward[mapCfg["ItemTid" .. i]] = 0
end
@@ -1741,7 +1741,9 @@ function PlayerQuestData:RequestGuideMissionInfo(callback)
local tbDoneChapter = {}
if mapDataCb.Chapters ~= nil then
for _, mapChapterData in pairs(mapDataCb.Chapters) do
PlayerData.GuideMission:CacheServerUnlockTime(mapChapterData.Id, mapChapterData.UnlockTime)
if PlayerData.GuideMission ~= nil then
PlayerData.GuideMission:CacheServerUnlockTime(mapChapterData.Id, mapChapterData.UnlockTime)
end
if mapChapterData.Quests ~= nil and mapChapterData.Quests.List ~= nil then
for _, mapQuestData in pairs(mapChapterData.Quests.List) do
self:OnQuestProgressChanged(mapQuestData)
@@ -347,6 +347,32 @@ end
function PlayerSoldierData:CheckPartnerRecommendState(nPartnerType)
return self.recommendData:CheckPartnerRecommendState(nPartnerType)
end
function PlayerSoldierData:OpenRecommendSquare()
local bHasUrl, sUrl = UTILS.GetToolBoxUrl()
if not (bHasUrl and sUrl) or sUrl == "" then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Function_NotAvailable"))
return
end
sUrl = sUrl .. "/auto-chess"
local bSuccess, bOpened = pcall(function()
if NovaAPI.IsEditorPlatform() then
NovaAPI.OpenURL(sUrl)
return true
end
local SDKManager = CS.SDKManager.Instance
if not SDKManager:IsSDKInit() then
return false
end
SDKManager:ShowWebView(false, "", sUrl, 1, 0, true)
return true
end)
if not bSuccess then
printError(bOpened)
end
if not bSuccess or not bOpened then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Function_NotAvailable"))
end
end
function PlayerSoldierData:GetTechActiveClientEffect()
if self.nCurSelectSeasonId == 0 then
return
+3
View File
@@ -581,6 +581,9 @@ end
function PanelManager.CheckNextPanelOpening()
return objNextPanel ~= nil
end
function PanelManager.HasDisposablePanel()
return type(tbDisposablePanel) == "table" and 0 < #tbDisposablePanel
end
function PanelManager.SetMainViewSkipAnimIn(bIn)
bMainViewSkipAnimIn = bIn
end