Update - 1.7.0.89
EN: 1.7.0.89 CN: 1.7.0.91 JP: 1.7.0.92 KR: 1.7.0.95
This commit is contained in:
@@ -38,6 +38,7 @@ function JointDrillLevelData_2:Init(parent, nLevelId, nBuildId, nCurLevel, nLeve
|
||||
self.mapFloor = nil
|
||||
self.nGameTime = self.parent:GetGameTime()
|
||||
self.bInResult = false
|
||||
self.bAllBossDead = false
|
||||
self.bChangeLevel = self.nLevelType == AllEnum.JointDrillLevelStartType.ChangeLevel
|
||||
self.bRestart = self.nLevelType == AllEnum.JointDrillLevelStartType.Restart
|
||||
if not self.bChangeLevel then
|
||||
@@ -333,6 +334,10 @@ function JointDrillLevelData_2:OnEvent_BossDeath(nBattleLv, nTotalTime, nDamageV
|
||||
if nBattleLv < self.nCurLevel then
|
||||
return
|
||||
end
|
||||
if nBattleLv == nParam then
|
||||
self.bAllBossDead = true
|
||||
return
|
||||
end
|
||||
local nLastLevel = self.nCurLevel
|
||||
nTotalTime = math.min(self.mapLevel.BattleTime * 1000, self:GetSyncGameTime(nTotalTime))
|
||||
self.nCurLevel = nParam
|
||||
@@ -362,6 +367,9 @@ function JointDrillLevelData_2:OnEvent_BossDeath(nBattleLv, nTotalTime, nDamageV
|
||||
})
|
||||
end
|
||||
function JointDrillLevelData_2:OnEvent_BattleLvsToggle()
|
||||
if self.bInResult or self.bAllBossDead or self.bChangeLevel then
|
||||
return
|
||||
end
|
||||
self.bChangeLevel = true
|
||||
self.bRestart = false
|
||||
AdventureModuleHelper.LevelStateChanged(false)
|
||||
|
||||
@@ -212,7 +212,7 @@ function ThrowGiftLevelSelectCtrl:RefreshLevelInfoGrid()
|
||||
local bPass = self.mapRecordLevelData[nLevelId] ~= nil and self.mapRecordLevelData[nLevelId].FirstComplete or false
|
||||
local bShowRedDot = false
|
||||
if self.actData ~= nil then
|
||||
self.actData:GetLevelNewState(nLevelId)
|
||||
bShowRedDot = self.actData:GetLevelNewState(nLevelId)
|
||||
if bShowRedDot then
|
||||
self.actData:SetLevelNew(nLevelId)
|
||||
end
|
||||
|
||||
@@ -213,9 +213,9 @@ function SpringFestivalThemeCtrl:OnDisable()
|
||||
TimerManager.Remove(self.taskRemainTimer)
|
||||
self.taskRemainTimer = nil
|
||||
end
|
||||
if nil ~= self.eatingAnimationTimer then
|
||||
TimerManager.Remove(self.eatingAnimationTimer)
|
||||
self.eatingAnimationTimer = nil
|
||||
if nil ~= self.updateTimer then
|
||||
self.updateTimer:Cancel()
|
||||
self.updateTimer = nil
|
||||
end
|
||||
end
|
||||
function SpringFestivalThemeCtrl:RefreshPanel()
|
||||
@@ -595,30 +595,51 @@ function SpringFestivalThemeCtrl:StartEatingAnimation()
|
||||
self._mapNode.Eat_01:SetActive(false)
|
||||
self._mapNode.Eat_02:SetActive(false)
|
||||
self._mapNode.Eat_03:SetActive(false)
|
||||
self:PlayRandomEatingAnimation()
|
||||
self.eatingAnimationTimer = self:AddTimer(0, 4, function()
|
||||
self:PlayRandomEatingAnimation()
|
||||
end, true, true, false)
|
||||
self.nEatingElapsed = 0
|
||||
self.nEatingDelay = 0
|
||||
self.nEatShowElapsed = nil
|
||||
self.selectedEat = nil
|
||||
if self.updateTimer ~= nil then
|
||||
self.updateTimer:Cancel()
|
||||
self.updateTimer = nil
|
||||
end
|
||||
self.updateTimer = self:AddTimer(0, 0, "OnUpdate", true, true, true)
|
||||
end
|
||||
function SpringFestivalThemeCtrl:PlayRandomEatingAnimation()
|
||||
self._mapNode.Eat_01:SetActive(false)
|
||||
self._mapNode.Eat_02:SetActive(false)
|
||||
self._mapNode.Eat_03:SetActive(false)
|
||||
local randomValue = math.random(1, 100)
|
||||
local selectedEat
|
||||
if randomValue <= 50 then
|
||||
selectedEat = self._mapNode.Eat_03
|
||||
self.selectedEat = self._mapNode.Eat_03
|
||||
elseif randomValue <= 85 then
|
||||
selectedEat = self._mapNode.Eat_02
|
||||
self.selectedEat = self._mapNode.Eat_02
|
||||
else
|
||||
selectedEat = self._mapNode.Eat_01
|
||||
self.selectedEat = self._mapNode.Eat_01
|
||||
end
|
||||
self._mapNode.Chensha_Expression_02:SetActive(selectedEat ~= self._mapNode.Eat_01)
|
||||
self._mapNode.Chensha_Expression_01:SetActive(selectedEat == self._mapNode.Eat_01)
|
||||
if selectedEat then
|
||||
self:AddTimer(1, 0.13, function()
|
||||
selectedEat:SetActive(true)
|
||||
end, true, true, true)
|
||||
self._mapNode.Chensha_Expression_02:SetActive(self.selectedEat ~= self._mapNode.Eat_01)
|
||||
self._mapNode.Chensha_Expression_01:SetActive(self.selectedEat == self._mapNode.Eat_01)
|
||||
self.nEatShowElapsed = 0
|
||||
end
|
||||
function SpringFestivalThemeCtrl:OnUpdate()
|
||||
if self.updateTimer == nil then
|
||||
return
|
||||
end
|
||||
local nDeltaTime = self.updateTimer:GetDelTime()
|
||||
if self.nEatShowElapsed ~= nil then
|
||||
self.nEatShowElapsed = self.nEatShowElapsed + nDeltaTime
|
||||
if self.nEatShowElapsed >= 0.13 then
|
||||
if self.selectedEat ~= nil then
|
||||
self.selectedEat:SetActive(true)
|
||||
end
|
||||
self.nEatShowElapsed = nil
|
||||
end
|
||||
end
|
||||
self.nEatingElapsed = self.nEatingElapsed + nDeltaTime
|
||||
if self.nEatingElapsed >= self.nEatingDelay then
|
||||
self.nEatingElapsed = 0
|
||||
self.nEatingDelay = 4
|
||||
self:PlayRandomEatingAnimation()
|
||||
end
|
||||
end
|
||||
return SpringFestivalThemeCtrl
|
||||
|
||||
@@ -5862,7 +5862,7 @@ return {
|
||||
param = {
|
||||
0,
|
||||
"avg1_112",
|
||||
"魔<r=mowang></r>王大人这么厉害,恶灵什么的伤不到他的啦!",
|
||||
"魔<r=mowang></r>王大人这么厉害,恶灵什么的伤不到==SEX1==的啦!",
|
||||
0,
|
||||
"",
|
||||
false,
|
||||
|
||||
@@ -1374,7 +1374,7 @@ return {
|
||||
cmd = "SetPhoneMsgChoiceBegin",
|
||||
param = {
|
||||
"1",
|
||||
"什么什么,两个人之间小秘密?",
|
||||
"什么什么,两个人之间的小秘密?",
|
||||
"我保证!",
|
||||
"",
|
||||
"",
|
||||
@@ -1392,7 +1392,7 @@ return {
|
||||
param = {
|
||||
1,
|
||||
"avg3_100",
|
||||
"什么什么,两个人之间小秘密?",
|
||||
"什么什么,两个人之间的小秘密?",
|
||||
"0",
|
||||
"",
|
||||
false,
|
||||
@@ -1520,7 +1520,7 @@ return {
|
||||
param = {
|
||||
1,
|
||||
"avg3_100",
|
||||
"你在哪,我这就喊上尘沙琥珀一起去过去。",
|
||||
"你在哪,我这就喊上尘沙琥珀一起过去。",
|
||||
"0",
|
||||
"",
|
||||
false,
|
||||
|
||||
@@ -1674,7 +1674,7 @@ return {
|
||||
param = {
|
||||
0,
|
||||
"avg1_132",
|
||||
"电影中的各方的形象都比现实强太多了,但片子还挺精彩",
|
||||
"影戏中的各方的形象都比现实强太多了,但片子还挺精彩",
|
||||
"0",
|
||||
"",
|
||||
false,
|
||||
|
||||
@@ -376,7 +376,7 @@ return {
|
||||
param = {
|
||||
"1",
|
||||
"那我要过去一探究竟咯?",
|
||||
"那我要给你打电话咯?",
|
||||
"那我要打你手机咯?",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
|
||||
@@ -2019,7 +2019,7 @@ return {
|
||||
param = {
|
||||
0,
|
||||
"avg1_135",
|
||||
"如果报道这么写——“新型诈骗集团落网,联合种业助力菲莱安全”,那对公司来说不也扬名了吗?",
|
||||
"如果报道这么写——“新型诈骗集团落网,恩赐意志助力菲莱安全”,那对公司来说不也扬名了吗?",
|
||||
0,
|
||||
"",
|
||||
false,
|
||||
@@ -2051,7 +2051,7 @@ return {
|
||||
param = {
|
||||
1,
|
||||
"avg3_100",
|
||||
"算盘打得不错嘛……不管结果如何,对联合种业都有好处。",
|
||||
"算盘打得不错嘛……不管结果如何,对恩赐意志都有好处。",
|
||||
1,
|
||||
"",
|
||||
false,
|
||||
|
||||
@@ -6107,7 +6107,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"”。",
|
||||
"",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -10557,7 +10557,7 @@ return {
|
||||
"music_avg_volume100_3s",
|
||||
0,
|
||||
"m13",
|
||||
"1000ms",
|
||||
"2000ms",
|
||||
0.0,
|
||||
false
|
||||
}
|
||||
@@ -10739,6 +10739,10 @@ return {
|
||||
nil
|
||||
}
|
||||
},
|
||||
{
|
||||
cmd = "Wait",
|
||||
param = {0.6}
|
||||
},
|
||||
{
|
||||
cmd = "SetTrans",
|
||||
param = {
|
||||
@@ -10748,8 +10752,8 @@ return {
|
||||
"Linear",
|
||||
false,
|
||||
false,
|
||||
0.1,
|
||||
true,
|
||||
0.5,
|
||||
false,
|
||||
"default"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1484,7 +1484,7 @@ return {
|
||||
cmd = "SetTalk",
|
||||
param = {
|
||||
0,
|
||||
"Anxious Server",
|
||||
"Hasty Server",
|
||||
"",
|
||||
0,
|
||||
"",
|
||||
|
||||
@@ -1927,7 +1927,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"The movie portrayals of each side are way more impressive than their counterparts in reality, but it makes for a very exciting film",
|
||||
"The Stella Drama portrayals of each side are way more impressive than their counterparts in reality, but it makes for a very exciting Drama",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -4,8 +4,8 @@ return {
|
||||
param = {
|
||||
"ep_mainline_001",
|
||||
"Act One",
|
||||
"Slipped into Sunlight (Part I)",
|
||||
"Dona, who has always championed teamwork, has been avoiding everyone lately and acting on her own. Could it be that the Post Haste is facing a crisis too dangerous to speak of?!",
|
||||
"Slipping into Sunlight (Part I)",
|
||||
"Donna, who has always championed teamwork, has been avoiding everyone lately and acting on her own. Could it be that the Post Haste is facing a crisis too dangerous to speak of?!",
|
||||
0
|
||||
}
|
||||
},
|
||||
|
||||
@@ -4,7 +4,7 @@ return {
|
||||
param = {
|
||||
"ep_mainline_001",
|
||||
"Act Three",
|
||||
"Slipped into Sunlight (Part III)",
|
||||
"Slipping into Sunlight (Part III)",
|
||||
"Post Haste is a whole—whether joy or toil, it only gains meaning when shared together.",
|
||||
0
|
||||
}
|
||||
|
||||
@@ -4407,7 +4407,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"Boss, rumor has it Arbiter food is spelled. Eat it and you end up spilling your guts. That's how they interrogate people!",
|
||||
"Boss… Don't eat Arbiter food.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -4420,8 +4420,8 @@ return {
|
||||
param = {
|
||||
1,
|
||||
0,
|
||||
"025",
|
||||
"none",
|
||||
"007",
|
||||
"avg_emoji_symbol",
|
||||
"none",
|
||||
"z",
|
||||
0.0,
|
||||
@@ -4439,7 +4439,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"What's the play? She's offering it right to my face. If I refuse, is she gonna turn hostile?",
|
||||
"Eh? I-Is it dangerous?!",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -4496,7 +4496,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"If it comes to that... We will buy you time to escape.",
|
||||
"I will protect you.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -4528,7 +4528,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"Too dangerous. Wait,==W== she doesn't know I'm immune to magic. I'll take the first bite.",
|
||||
"That's not good...==W== Wait, she doesn't know I'm immune to magic. I'll take the first bite.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -11638,7 +11638,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"Always charging the front line... Another good boy. Heresy Score: zero.",
|
||||
"Always charging the front line... Another good kid. Heresy Score: zero.",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -3879,7 +3879,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"A Stellaroid?! Does that mean the Trekker who called us is already...",
|
||||
"Stellaroids?! Does that mean the Trekker who called us is already...",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -10557,7 +10557,7 @@ return {
|
||||
"music_avg_volume100_3s",
|
||||
0,
|
||||
"m13",
|
||||
"1000ms",
|
||||
"2000ms",
|
||||
0.0,
|
||||
false
|
||||
}
|
||||
@@ -10739,6 +10739,10 @@ return {
|
||||
nil
|
||||
}
|
||||
},
|
||||
{
|
||||
cmd = "Wait",
|
||||
param = {0.6}
|
||||
},
|
||||
{
|
||||
cmd = "SetTrans",
|
||||
param = {
|
||||
@@ -10748,8 +10752,8 @@ return {
|
||||
"Linear",
|
||||
false,
|
||||
false,
|
||||
0.1,
|
||||
true,
|
||||
0.5,
|
||||
false,
|
||||
"default"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -7363,7 +7363,7 @@ return {
|
||||
false,
|
||||
"",
|
||||
"魔王さんのおかげで、いい買い物ができたよ。==RT==あらためて、今日はありがとう。",
|
||||
"魔王くんのおかげで、いい買い物ができたよ。==RT==あたらめて、今日はありがとう。"
|
||||
"魔王くんのおかげで、いい買い物ができたよ。==RT==あらためて、今日はありがとう。"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -10773,7 +10773,7 @@ return {
|
||||
"Linear",
|
||||
false,
|
||||
false,
|
||||
0.1,
|
||||
0.5,
|
||||
true,
|
||||
"default"
|
||||
}
|
||||
|
||||
@@ -3221,10 +3221,10 @@ return {
|
||||
cmd = "SetBg",
|
||||
param = {
|
||||
0,
|
||||
"traveller_camp_a_daylight",
|
||||
"BG_Black",
|
||||
"0",
|
||||
"Linear",
|
||||
1.0,
|
||||
0.5,
|
||||
true,
|
||||
"default",
|
||||
0
|
||||
@@ -3244,6 +3244,46 @@ return {
|
||||
"default"
|
||||
}
|
||||
},
|
||||
{
|
||||
cmd = "SetAudio",
|
||||
param = {
|
||||
0,
|
||||
"se_055",
|
||||
0.0,
|
||||
false
|
||||
}
|
||||
},
|
||||
{
|
||||
cmd = "SetTalk",
|
||||
param = {
|
||||
8,
|
||||
"0",
|
||||
"",
|
||||
0,
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"몇 분 전",
|
||||
""
|
||||
}
|
||||
},
|
||||
{
|
||||
cmd = "Wait",
|
||||
param = {1.0}
|
||||
},
|
||||
{
|
||||
cmd = "SetBg",
|
||||
param = {
|
||||
0,
|
||||
"traveller_camp_a_daylight",
|
||||
"16",
|
||||
"Linear",
|
||||
1.0,
|
||||
true,
|
||||
"AvgStageEffect_clockwise",
|
||||
0
|
||||
}
|
||||
},
|
||||
{
|
||||
cmd = "SetAudio",
|
||||
param = {
|
||||
@@ -3480,7 +3520,7 @@ return {
|
||||
cmd = "SetTalk",
|
||||
param = {
|
||||
0,
|
||||
"기념품 노점상",
|
||||
"",
|
||||
"",
|
||||
0,
|
||||
"",
|
||||
@@ -3880,7 +3920,7 @@ return {
|
||||
cmd = "SetTalk",
|
||||
param = {
|
||||
0,
|
||||
"기념품 노점상",
|
||||
"",
|
||||
"",
|
||||
0,
|
||||
"",
|
||||
@@ -4282,7 +4322,7 @@ return {
|
||||
cmd = "SetTalk",
|
||||
param = {
|
||||
0,
|
||||
"기념품 노점상",
|
||||
"",
|
||||
"",
|
||||
0,
|
||||
"",
|
||||
@@ -4718,7 +4758,7 @@ return {
|
||||
cmd = "SetTalk",
|
||||
param = {
|
||||
0,
|
||||
"기념품 노점상",
|
||||
"",
|
||||
"",
|
||||
0,
|
||||
"",
|
||||
@@ -4980,7 +5020,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"저 정말 화낼 거예요?",
|
||||
"정말 화낸다?",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -5017,7 +5057,7 @@ return {
|
||||
cmd = "SetTalk",
|
||||
param = {
|
||||
0,
|
||||
"기념품 노점상",
|
||||
"",
|
||||
"",
|
||||
0,
|
||||
"",
|
||||
@@ -5867,7 +5907,7 @@ return {
|
||||
cmd = "SetTalk",
|
||||
param = {
|
||||
0,
|
||||
"당황한 여행가",
|
||||
"불안한 여행가",
|
||||
"",
|
||||
0,
|
||||
"",
|
||||
@@ -5957,7 +5997,7 @@ return {
|
||||
cmd = "SetTalk",
|
||||
param = {
|
||||
0,
|
||||
"불안한 여행가",
|
||||
"당황한 여행가",
|
||||
"",
|
||||
0,
|
||||
"",
|
||||
@@ -6000,7 +6040,7 @@ return {
|
||||
cmd = "SetTalk",
|
||||
param = {
|
||||
0,
|
||||
"당황한 여행가",
|
||||
"",
|
||||
"",
|
||||
0,
|
||||
"",
|
||||
|
||||
@@ -2272,7 +2272,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"네가 늘 쓰는 그 총검 역시 같은 이유야?",
|
||||
"네가 늘 쓰는 그 건블레이드 역시 같은 이유야?",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -2388,7 +2388,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"기억도 무기처럼 닿아서 희미해지는 걸까",
|
||||
"기억도 무기처럼 닳아서 희미해지는 걸까",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -5949,7 +5949,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"그, 그렇구나……==W== 나는 다들 든든하고 맛있게 먹을 수만 있다면, 어떤 방식이든 상관없다고 생각하는데……",
|
||||
"그, 그렇구나……==W== 내 소원은 모두가 배불리 먹을 수 있는 것만으로도 충분하지만, 만약 재료가 더 신선하다면, 모두가 더 행복해질 거야……",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -2965,7 +2965,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"아…… 괜찮아. 지금 우리 요로즈 택배는 인수합병이 필요하지 않아!",
|
||||
"아…… 괜찮아. 지금 우리 요로즈 택배는 인수 합병이 필요하지 않아!",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1106,7 +1106,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"짜잔! 방금 쿠키 구웠어! 먹을래!",
|
||||
"짜잔! 방금 쿠키 구웠어! 먹을래?",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -1623,7 +1623,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"세 명이서 탈 수 있는 교통수단……==W== 그런 게 있어요?",
|
||||
"3명이서 탈 수 있는 교통수단……==W== 그런 게 있어요?",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -1696,7 +1696,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"하하, 있어! 전에 편지 배달하면서 1대 본 적 있어!",
|
||||
"하하, 있어! 전에 편지 배달하면서 한 대 본 적 있어!",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -5978,7 +5978,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"이름하여…… ‘토나의 깜짝선물’! 정말 완벽해~ 역시 나는 최고야~",
|
||||
"이름하여…… ‘토나의 깜짝 선물’! 정말 완벽해~ 역시 나는 최고야~",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -849,7 +849,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"아이고, 토나야 오늘은 왜 이렇게 일찍……",
|
||||
"아이고, 토나야, 오늘은 왜 이렇게 일찍……",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -4812,7 +4812,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"말도 안 되는 소리! 내가 너희에게 얼마나 많은 도움을 받고 있는데!==W== 나는 그냥 너희에게 깜짝선물을 해주고 싶었을…… 뿐이야.",
|
||||
"말도 안 되는 소리! 내가 너희에게 얼마나 많은 도움을 받고 있는데!==W== 나는 그냥 너희에게 깜짝 선물을 해주고 싶었을…… 뿐이야.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -7963,7 +7963,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"앗 내가 잘못했어!!",
|
||||
"앗, 내가 잘못했어!!",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -8496,7 +8496,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"그런데 최근 들어 갑자기 활발하게 곳곳을 조사하기 시작했고, 아모르 주변에서 실종 사건이 발생했데. 최근 2주 사이에 여행가 팀 4~5개가 황야에서 사라졌고",
|
||||
"그런데 최근 들어 갑자기 활발하게 곳곳을 조사하기 시작했고, 아모르 주변에서 실종 사건이 발생했대. 최근 2주 사이에 여행가 팀 4~5개가 황야에서 사라졌고",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -5,7 +5,7 @@ return {
|
||||
"ep_mainline_001",
|
||||
"02",
|
||||
"눈동자에 비친 서로의 모습",
|
||||
"의뢰를 진행하면서 당신은 그레이에 대해 새로운 사실을 알게 되었지만, 그녀는 당신이 마왕이라는 사실을 더욱 의심하게 된다. 바로 그때, 당신들에게 구조 신호가 도착하는데……",
|
||||
"의뢰를 진행하면서 그레이에 대한 새로운 사실을 알게 되었지만, 그녀는 당신의 마왕 신분을 더욱 의심하게 된다. 바로 그때, 구조 신호가 도착하는데……",
|
||||
0
|
||||
}
|
||||
},
|
||||
@@ -4407,7 +4407,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"보스…… 심판관이 주는 음식은 먹지 마.",
|
||||
"보스, 심판관이 주는 음식은…… 먹지 마.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -4439,7 +4439,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"어, 위험한 거야?!",
|
||||
"왜? 위험한 거야?",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -4496,7 +4496,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"아무튼…… 난 보스를 지켜줄 거야.",
|
||||
"어쨌든…… 내가 보스를 보호해 줄게.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -4528,7 +4528,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"그건 너무 위험해. ==W==아, 맞다. 그레이는 내가 ‘마력 차단’ 체질인 걸 모르니까, 내가 먼저 먹어볼게.",
|
||||
"그건 너무 위험해. 아, 맞다. ==W==그레이는 내가 ‘마력 차단’ 체질인 걸 모르니까, 내가 먼저 먹어볼게.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -10454,7 +10454,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"여행가에게 성해 처리 의뢰를 맡긴 게 규정을 지키기 위해서였다니…… 그리고 우리를 계속 쳐다본 건 말할 타이밍을 찾은 거구나.==W== 그렇다면…… 우리가 쓸데없는 상상을 했네.",
|
||||
"여행가에게 성해 처리 의뢰를 맡긴 게 규정을 지키기 위해서였다니…… 그리고 우리를 계속 쳐다본 건 말할 타이밍을 찾는 거였구나.==W== 그렇다면…… 우리가 쓸데없는 상상을 했네.",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -2486,7 +2486,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"점수가 오를 걸 겁내면서도 동료들을 변호하다니. 전설 속의 마왕님도 의리 있고, 난관에 정면에 맞서는 인물이었어. 그래서 10점 추가.",
|
||||
"점수가 오를 걸 겁내면서도 동료들을 변호하다니. 전설 속의 마왕님도 의리 있고, 난관에 정면으로 맞서는 인물이었어. 그래서 10점 추가.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -10557,7 +10557,7 @@ return {
|
||||
"music_avg_volume100_3s",
|
||||
0,
|
||||
"m13",
|
||||
"1000ms",
|
||||
"2000ms",
|
||||
0.0,
|
||||
false
|
||||
}
|
||||
@@ -10739,6 +10739,10 @@ return {
|
||||
nil
|
||||
}
|
||||
},
|
||||
{
|
||||
cmd = "Wait",
|
||||
param = {0.6}
|
||||
},
|
||||
{
|
||||
cmd = "SetTrans",
|
||||
param = {
|
||||
@@ -10748,8 +10752,8 @@ return {
|
||||
"Linear",
|
||||
false,
|
||||
false,
|
||||
0.1,
|
||||
true,
|
||||
0.5,
|
||||
false,
|
||||
"default"
|
||||
}
|
||||
},
|
||||
@@ -11364,7 +11368,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"그건 내가 특수한 ‘마력 차단’ 체질이라……소환된 마법 속박 도구가 나한테 통하지 않는 거야.",
|
||||
"그건 내가 특수한 ‘마력 차단’ 체질이라…… 소환된 마법 속박 도구가 나한테 통하지 않는 거야.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -11672,7 +11676,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"하나 더 좋은 거 알려줄까? 내 목에 걸린 이거는 ‘교수형 올가미’ 같은 게 아니라, 성물인 ‘영혼의 밧줄’이지.",
|
||||
"하나 더 좋은 거 알려줄까? 내 목에 걸린 이거는 ‘교수형 올가미’ 같은 게 아니라, 성물인 ‘소울 칼라’지.",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1644,7 +1644,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"그레이, 다른 사람을 돕고 싶은 네 마음은 잘 알겠어. 하지만…… 은혜의 신의…… 은혜는 은혜의지만 줄 수 있는 거야.",
|
||||
"그레이, 다른 사람을 돕고 싶은 네 마음은 잘 알겠어. 하지만…… 은혜의 신의 은혜는 은혜의지만 줄 수 있는 거야.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -5461,7 +5461,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"왜…… 당신에게는 영혼의 밧줄이 안 통하는 거지?",
|
||||
"왜…… 당신에게는 소울 칼라가 안 통하는 거지?",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -6420,7 +6420,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"감히…… 신성한 ‘영혼의 밧줄’에 손을 대다니!",
|
||||
"감히…… 신성한 ‘소울 칼라’에 손을 대다니!",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -6850,7 +6850,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"마력이 모두 빠져나간다니…… 설마 내가 ‘영혼의 밧줄’에 직접 닿아 있어서 그런 건가?",
|
||||
"마력이 모두 빠져나간다니…… 설마 내가 ‘소울 칼라’에 직접 닿아 있어서 그런 건가?",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -6882,7 +6882,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"나는 마력 차단 체질이라, ‘영혼의 밧줄’ 효과가 없어. 하지만 밧줄은 나한테 계속해서 마법을 걸려고 할 테니, 그레이의 마력이 계속해서 소모되고 있는 거야.",
|
||||
"나는 마력 차단 체질이라, ‘소울 칼라’는 내게 통하지 않아. 하지만 밧줄은 나한테 계속해서 마법을 걸려고 할 테니, 그레이의 마력이 계속해서 소모되고 있는 거야.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -10350,7 +10350,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"좋아요. 마왕님에 대해 묻고 싶은 거죠?",
|
||||
"좋아. 마왕님에 대해 묻고 싶은 거지?",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -10393,7 +10393,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"그전에, ‘영혼의 밧줄’을 왜 사용했는지, 왜 그렇게 많이 사용했는지 먼저 설명해.",
|
||||
"그전에, ‘소울 칼라’를 왜 사용했는지, 왜 그렇게 많이 사용했는지 먼저 설명해.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -10436,7 +10436,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"별의 탑에 성해가 너무 많았어요. ‘영혼의 밧줄’을 사용해야 가장 빠르게 해치울 수 있었거든요.",
|
||||
"별의 탑에 성해가 너무 많았어. ‘소울 칼라’를 사용해야 가장 빠르게 해치울 수 있었거든.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -10479,7 +10479,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"어차피 성해는 영혼도 없고, 감정과 욕망의 파편이 합쳐진 혼돈일 뿐이잖아요. 이걸 쓴 게 규정 위반은 아니죠?",
|
||||
"어차피 성해는 영혼도 없고, 감정과 욕망의 파편이 합쳐진 혼돈일 뿐이잖아. 이걸 쓴 게 규정 위반은 아니지?",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -10676,7 +10676,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"그 사람은 이단 점수가 부족해요. 이단이 아니라 그냥 운 좋게 은혜 인장을 얻고 ‘마력 차단’ 체질까지 가진 불쌍한 사람이죠. 그런 사람이 무슨 마왕이겠어요?",
|
||||
"그 사람은 이단 점수가 부족해. 이단이 아니라 그냥 운 좋게 은혜 인장을 얻고 ‘마력 차단’ 체질까지 가진 불쌍한 사람이지. 그런 사람이 무슨 마왕이겠어?",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -10762,7 +10762,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"마음대로 하시죠.",
|
||||
"마음대로 해.",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -10866,7 +10866,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"잊지 마. 앞으로 내 명령 없이는 ‘영혼의 밧줄’을 사용해서는 안 돼!",
|
||||
"잊지 마. 앞으로 내 명령 없이는 ‘소울 칼라’를 사용해서는 안 돼!",
|
||||
""
|
||||
}
|
||||
},
|
||||
@@ -11078,7 +11078,7 @@ return {
|
||||
"",
|
||||
false,
|
||||
"",
|
||||
"흥, 참견은…… 이 ‘성물’을 다룰 수 있는 건 나뿐이야. 어떻게 사용할지는 내가 정할 거야.",
|
||||
"흥, 참견은…… 이 ‘성물’을 다룰 수 있는 건 나뿐이야. 어떻게 사용할지는 내가 정해.",
|
||||
""
|
||||
}
|
||||
},
|
||||
|
||||
@@ -58,7 +58,7 @@ end
|
||||
function JointDrillBattlePanel:OnEnable()
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.Hud)
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.Hud, self.nType)
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.MainlineFormation)
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.RegionBossFormation)
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
|
||||
@@ -920,41 +920,6 @@ function DispatchCtrl:can_meet_requirements(role_tags, requirements)
|
||||
end
|
||||
return true
|
||||
end
|
||||
function DispatchCtrl:calculate_role_score(role_tags, normal_req, extra_req)
|
||||
local score = 0
|
||||
local tag_count = {}
|
||||
for _, tag in ipairs(role_tags) do
|
||||
tag_count[tag] = (tag_count[tag] or 0) + 1
|
||||
end
|
||||
for _, req in ipairs(normal_req) do
|
||||
if tag_count[req] and 0 < tag_count[req] then
|
||||
score = score + 10
|
||||
tag_count[req] = tag_count[req] - 1
|
||||
end
|
||||
end
|
||||
for _, req in ipairs(extra_req) do
|
||||
if tag_count[req] and 0 < tag_count[req] then
|
||||
score = score + 3
|
||||
tag_count[req] = tag_count[req] - 1
|
||||
end
|
||||
end
|
||||
return score
|
||||
end
|
||||
function DispatchCtrl:count_remaining_requirements(selected_tags, requirements)
|
||||
local tag_count = {}
|
||||
for _, tag in ipairs(selected_tags) do
|
||||
tag_count[tag] = (tag_count[tag] or 0) + 1
|
||||
end
|
||||
local remaining = {}
|
||||
for _, req in ipairs(requirements) do
|
||||
if not tag_count[req] or tag_count[req] <= 0 then
|
||||
table.insert(remaining, req)
|
||||
else
|
||||
tag_count[req] = tag_count[req] - 1
|
||||
end
|
||||
end
|
||||
return remaining
|
||||
end
|
||||
function DispatchCtrl:concat_tags(selected_roles)
|
||||
local combined_tags = {}
|
||||
for _, role in ipairs(selected_roles) do
|
||||
@@ -964,136 +929,61 @@ function DispatchCtrl:concat_tags(selected_roles)
|
||||
end
|
||||
return combined_tags
|
||||
end
|
||||
function DispatchCtrl:enumerate_combinations(roles, count, callback)
|
||||
local n = #roles
|
||||
if count > n then
|
||||
return nil
|
||||
end
|
||||
local indices = {}
|
||||
for i = 1, count do
|
||||
indices[i] = i
|
||||
end
|
||||
while true do
|
||||
local combo = {}
|
||||
for i = 1, count do
|
||||
combo[i] = roles[indices[i]]
|
||||
end
|
||||
if callback(combo) then
|
||||
return combo
|
||||
end
|
||||
local pos = count
|
||||
while 1 <= pos and indices[pos] == n - count + pos do
|
||||
pos = pos - 1
|
||||
end
|
||||
if pos < 1 then
|
||||
break
|
||||
end
|
||||
indices[pos] = indices[pos] + 1
|
||||
for i = pos + 1, count do
|
||||
indices[i] = indices[i - 1] + 1
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
function DispatchCtrl:find_min_roles_greedy(roles, normal_req, extra_req)
|
||||
if #roles == 0 then
|
||||
return nil
|
||||
end
|
||||
for target_count = 1, 3 do
|
||||
local result = self:greedy_select_roles_with_limit(roles, normal_req, extra_req, true, target_count)
|
||||
for count = 1, 3 do
|
||||
local result = self:enumerate_combinations(roles, count, function(combo)
|
||||
local tags = self:concat_tags(combo)
|
||||
return self:can_meet_requirements(tags, normal_req) and self:can_meet_requirements(tags, extra_req)
|
||||
end)
|
||||
if result then
|
||||
return result
|
||||
end
|
||||
end
|
||||
for target_count = 1, 3 do
|
||||
local result = self:greedy_select_roles_with_limit(roles, normal_req, {}, false, target_count)
|
||||
for count = 1, 3 do
|
||||
local result = self:enumerate_combinations(roles, count, function(combo)
|
||||
local tags = self:concat_tags(combo)
|
||||
return self:can_meet_requirements(tags, normal_req)
|
||||
end)
|
||||
if result then
|
||||
return result
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
function DispatchCtrl:greedy_select_roles_with_limit(roles, normal_req, extra_req, check_both, max_count)
|
||||
if #normal_req == 0 and #extra_req == 0 then
|
||||
return {}
|
||||
end
|
||||
local scored_roles = {}
|
||||
for _, role in ipairs(roles) do
|
||||
local score = self:calculate_role_score(role.tags, normal_req, extra_req)
|
||||
if 0 < score then
|
||||
table.insert(scored_roles, {role = role, score = score})
|
||||
end
|
||||
end
|
||||
if #scored_roles == 0 then
|
||||
return nil
|
||||
end
|
||||
table.sort(scored_roles, function(a, b)
|
||||
return a.score > b.score
|
||||
end)
|
||||
return self:try_combinations_greedy(scored_roles, normal_req, extra_req, check_both, max_count)
|
||||
end
|
||||
function DispatchCtrl:try_combinations_greedy(scored_roles, normal_req, extra_req, check_both, target_count)
|
||||
local max_attempts = math.min(100, #scored_roles * target_count)
|
||||
local attempt_count = 0
|
||||
local selected = {}
|
||||
local selected_tags = {}
|
||||
for _, scored_role in ipairs(scored_roles) do
|
||||
if target_count <= #selected then
|
||||
break
|
||||
end
|
||||
attempt_count = attempt_count + 1
|
||||
if max_attempts < attempt_count then
|
||||
break
|
||||
end
|
||||
local remaining_normal = self:count_remaining_requirements(selected_tags, normal_req)
|
||||
local remaining_extra = self:count_remaining_requirements(selected_tags, extra_req)
|
||||
if #remaining_normal == 0 and #remaining_extra == 0 then
|
||||
break
|
||||
end
|
||||
local can_help = DispatchCtrl.role_can_help(scored_role.role.tags, remaining_normal, remaining_extra)
|
||||
if can_help then
|
||||
table.insert(selected, scored_role.role)
|
||||
for _, tag in ipairs(scored_role.role.tags) do
|
||||
table.insert(selected_tags, tag)
|
||||
end
|
||||
end
|
||||
end
|
||||
if #selected == target_count then
|
||||
if check_both then
|
||||
if self:can_meet_requirements(selected_tags, normal_req) and self:can_meet_requirements(selected_tags, extra_req) then
|
||||
return selected
|
||||
end
|
||||
elseif self:can_meet_requirements(selected_tags, normal_req) then
|
||||
return selected
|
||||
end
|
||||
end
|
||||
if target_count <= 2 and target_count <= #scored_roles then
|
||||
for start_idx = 1, math.min(5, #scored_roles - target_count + 1) do
|
||||
attempt_count = attempt_count + 1
|
||||
if max_attempts < attempt_count then
|
||||
break
|
||||
end
|
||||
local test_selected = {}
|
||||
local test_tags = {}
|
||||
table.insert(test_selected, scored_roles[start_idx].role)
|
||||
for _, tag in ipairs(scored_roles[start_idx].role.tags) do
|
||||
table.insert(test_tags, tag)
|
||||
end
|
||||
for i = 1, #scored_roles do
|
||||
if target_count <= #test_selected then
|
||||
break
|
||||
end
|
||||
if i ~= start_idx then
|
||||
local remaining_normal = self:count_remaining_requirements(test_tags, normal_req)
|
||||
local remaining_extra = self:count_remaining_requirements(test_tags, extra_req)
|
||||
if #remaining_normal == 0 and #remaining_extra == 0 then
|
||||
break
|
||||
end
|
||||
if DispatchCtrl.role_can_help(scored_roles[i].role.tags, remaining_normal, remaining_extra) then
|
||||
table.insert(test_selected, scored_roles[i].role)
|
||||
for _, tag in ipairs(scored_roles[i].role.tags) do
|
||||
table.insert(test_tags, tag)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if #test_selected == target_count then
|
||||
if check_both then
|
||||
if self:can_meet_requirements(test_tags, normal_req) and self:can_meet_requirements(test_tags, extra_req) then
|
||||
return test_selected
|
||||
end
|
||||
elseif self:can_meet_requirements(test_tags, normal_req) then
|
||||
return test_selected
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
function DispatchCtrl.role_can_help(role_tags, remaining_normal, remaining_extra)
|
||||
for _, tag in ipairs(role_tags) do
|
||||
for _, req in ipairs(remaining_normal) do
|
||||
if tag == req then
|
||||
return true
|
||||
end
|
||||
end
|
||||
for _, req in ipairs(remaining_extra) do
|
||||
if tag == req then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
function DispatchCtrl:OnEvent_OpenBuildList(dispatchId)
|
||||
self.bOpenBuild = true
|
||||
self:RefreshSelectList(true, dispatchId)
|
||||
|
||||
@@ -996,8 +996,13 @@ function GachaCtrl:GetGachaItem(mapData, nStorageId, bGetFirstTenReward)
|
||||
exItem = tbGiveItems
|
||||
})
|
||||
local mapItem = ConfigTable.GetData_Item(v.Card.Tid)
|
||||
if mapItem ~= nil and rare > mapItem.Rarity then
|
||||
rare = mapItem.Rarity
|
||||
if mapItem ~= nil then
|
||||
if rare > mapItem.Rarity then
|
||||
rare = mapItem.Rarity
|
||||
end
|
||||
if mapItem.Stype == GameEnum.itemStype.Char then
|
||||
PlayerData.Talent:UpdateCharTalentRedDot(v.Card.Tid)
|
||||
end
|
||||
end
|
||||
if v.Rewards ~= nil and #v.Rewards > 0 then
|
||||
for _, mapItem in ipairs(v.Rewards) do
|
||||
|
||||
@@ -173,7 +173,10 @@ function HudMainCtrl:OnEvent_ShowBossHUD(bossId, nType, showed, nDataId, nBloodT
|
||||
self:MonsterAdvShowChanged(bossId, showed, nType, nDataId, true)
|
||||
end
|
||||
function HudMainCtrl:OnEvent_MonsterHUDChange(id, nType, showed, nDataId)
|
||||
if nType == GameEnum.monsterBloodType.BOSSRUSH or nType == GameEnum.monsterBloodType.JOINTDRILLBOSS then
|
||||
if nType == GameEnum.monsterBloodType.BOSSRUSH then
|
||||
return
|
||||
end
|
||||
if nType == GameEnum.monsterBloodType.JOINTDRILLBOSS and (self.jointDrillType == nil or self.jointDrillType == GameEnum.JointDrillMode.JointDrill_Mode_1) then
|
||||
return
|
||||
end
|
||||
if nType == GameEnum.monsterBloodType.SIMPLE or nType == GameEnum.monsterBloodType.SIMPLE2 then
|
||||
|
||||
@@ -686,6 +686,9 @@ function JointDrillLevelSelectCtrl:OnEnable()
|
||||
self:Refresh()
|
||||
self:StartTicketsRefreshTimer()
|
||||
self:RefreshAvgInfo()
|
||||
if self.nActStatus == AllEnum.JointDrillActStatus.Start then
|
||||
PlayerData.JointDrill_2:SendJointDrillRankMsg()
|
||||
end
|
||||
end
|
||||
function JointDrillLevelSelectCtrl:OnDisable()
|
||||
if self.ticketRefreshTimer ~= nil then
|
||||
|
||||
@@ -50,7 +50,7 @@ function ChapterLineCtrl:Awake()
|
||||
self:Refresh()
|
||||
self:AddTimer(1, 0.5, function()
|
||||
if self.bNeedPlayUnlockAnim or self.bNeedPlayBranchAnim then
|
||||
if self.bNeedPlayBranchAnim then
|
||||
if self.bNeedPlayBranchAnim and self.tbNeedPlayUnlockAnimGird[1] ~= nil then
|
||||
self.curShouldPlayDepth = self.tbNeedPlayUnlockAnimGird[1].depth
|
||||
end
|
||||
self:DoPlayUnlockAnim(self.curShouldPlayDepth)
|
||||
@@ -704,7 +704,7 @@ function ChapterLineCtrl:OnClickGrid(avgId)
|
||||
end
|
||||
function ChapterLineCtrl:OnEvent_Story_RewardClosed()
|
||||
if self.bNeedPlayUnlockAnim or self.bNeedPlayBranchAnim then
|
||||
if self.bNeedPlayBranchAnim then
|
||||
if self.bNeedPlayBranchAnim and self.tbNeedPlayUnlockAnimGird[1] ~= nil then
|
||||
self.curShouldPlayDepth = self.tbNeedPlayUnlockAnimGird[1].depth
|
||||
end
|
||||
self:DoPlayUnlockAnim(self.curShouldPlayDepth)
|
||||
@@ -712,7 +712,7 @@ function ChapterLineCtrl:OnEvent_Story_RewardClosed()
|
||||
end
|
||||
function ChapterLineCtrl:OnEvent_Story_Done(bHasReward)
|
||||
if not bHasReward and (self.bNeedPlayUnlockAnim or self.bNeedPlayBranchAnim) then
|
||||
if self.bNeedPlayBranchAnim then
|
||||
if self.bNeedPlayBranchAnim and self.tbNeedPlayUnlockAnimGird[1] ~= nil then
|
||||
self.curShouldPlayDepth = self.tbNeedPlayUnlockAnimGird[1].depth
|
||||
end
|
||||
self:AddTimer(1, 1.5, function()
|
||||
|
||||
@@ -565,19 +565,16 @@ function FormationDisc_ListCtrl:PlayDiscBGM(nDiscId, tbMain, tbSub)
|
||||
if mapDiscCfg ~= nil then
|
||||
tbCharInDisc = mapDiscCfg.CharId
|
||||
end
|
||||
local nRandomCharId = self.tbCharId[math.random(1, #self.tbCharId)]
|
||||
local bInTeam = false
|
||||
for _, v in ipairs(tbCharInDisc) do
|
||||
if nRandomCharId == v then
|
||||
for _, v in ipairs(self.tbCharId) do
|
||||
if table.indexof(tbCharInDisc, v) > 0 then
|
||||
bInTeam = true
|
||||
break
|
||||
sVoiceKey = "uniMusic"
|
||||
return v
|
||||
end
|
||||
end
|
||||
if not bInTeam then
|
||||
sVoiceKey = "music"
|
||||
else
|
||||
sVoiceKey = "uniMusic"
|
||||
end
|
||||
local nRandomCharId = self.tbCharId[math.random(1, #self.tbCharId)]
|
||||
sVoiceKey = "music"
|
||||
return nRandomCharId
|
||||
end
|
||||
if nDiscId == nil then
|
||||
|
||||
@@ -125,6 +125,11 @@ function PenguinCard:SetDesc(mapCfg)
|
||||
end
|
||||
end
|
||||
local result = string.gsub(mapCfg.Desc, "%b{}", function(token)
|
||||
local content = string.match(token, "^{(.-)}$")
|
||||
local sParameterKey, lang, langIdx = ParseLanguageParam(content)
|
||||
if lang ~= nil then
|
||||
token = string.format("{%s}", sParameterKey)
|
||||
end
|
||||
if token == "{TriggerProbability}" then
|
||||
return mapCfg.TriggerProbability
|
||||
elseif token == "{TriggerLimitParam}" then
|
||||
@@ -133,12 +138,16 @@ function PenguinCard:SetDesc(mapCfg)
|
||||
local trigIdx = string.match(token, "^{TriggerParam_(%d+)}$")
|
||||
if trigIdx then
|
||||
local idx = tonumber(trigIdx)
|
||||
return ParseTriggerParam(decodeJson(mapCfg.TriggerParam), idx)
|
||||
local str = ParseTriggerParam(decodeJson(mapCfg.TriggerParam), idx)
|
||||
str = LanguagePost(lang, langIdx, str)
|
||||
return str
|
||||
end
|
||||
local effectIdx = string.match(token, "^{EffectParam_(%d+)}$")
|
||||
if effectIdx then
|
||||
local idx = tonumber(effectIdx)
|
||||
return ParseEffectParam(decodeJson(mapCfg.EffectParam), idx)
|
||||
local str = ParseEffectParam(decodeJson(mapCfg.EffectParam), idx)
|
||||
str = LanguagePost(lang, langIdx, str)
|
||||
return str
|
||||
end
|
||||
return token
|
||||
end)
|
||||
|
||||
@@ -82,18 +82,16 @@ function PenguinCardActData:CreateQuest(mapQuestData)
|
||||
elseif mapQuestData.Status == 2 then
|
||||
tbQuestData.nStatus = AllEnum.ActQuestStatus.Received
|
||||
end
|
||||
if tbQuestData.nStatus == AllEnum.ActQuestStatus.Received then
|
||||
tbQuestData.nCur = tbQuestData.nMax
|
||||
end
|
||||
return tbQuestData
|
||||
end
|
||||
function PenguinCardActData:GetQuestMaxProgress(nId)
|
||||
local nMax = 0
|
||||
local mapCfg = ConfigTable.GetData("ActivityPenguinCardQuest", nId)
|
||||
if mapCfg then
|
||||
if mapCfg.FinishType == GameEnum.activityQuestCompleteCond.ActivityPenguinCardLevelPassedScore then
|
||||
nMax = 1
|
||||
elseif mapCfg.FinishType == GameEnum.activityQuestCompleteCond.ActivityPenguinCardLevelPassedWithStar then
|
||||
local tbParam = decodeJson(mapCfg.FinishParams)
|
||||
nMax = tbParam[2]
|
||||
end
|
||||
if mapCfg and (mapCfg.FinishType == GameEnum.activityQuestCompleteCond.ActivityPenguinCardLevelPassedScore or mapCfg.FinishType == GameEnum.activityQuestCompleteCond.ActivityPenguinCardLevelPassedWithStar) then
|
||||
nMax = 1
|
||||
end
|
||||
return nMax
|
||||
end
|
||||
|
||||
@@ -424,7 +424,7 @@ end
|
||||
function PlayerTalentData:UpdateCharTalentRedDotByItem(mapChange)
|
||||
for _, v in ipairs(mapChange) do
|
||||
local charId = self.FragmentsToChar[v.Tid]
|
||||
if charId and v.Qty > 0 then
|
||||
if charId then
|
||||
self:UpdateCharTalentRedDot(charId)
|
||||
end
|
||||
end
|
||||
|
||||
+17
-14
@@ -599,6 +599,19 @@ function AddKrParticle(str, nParticleIdx)
|
||||
end
|
||||
return str
|
||||
end
|
||||
function ParseLanguageParam(sParam)
|
||||
local param, lang, num = sParam:match("^(.-)_([a-zA-Z]+)(%d+)$")
|
||||
if not param then
|
||||
return sParam, nil, nil
|
||||
end
|
||||
return param, lang, tonumber(num)
|
||||
end
|
||||
function LanguagePost(sLang, nIdx, sStr)
|
||||
if sLang == "kr" and nIdx ~= nil then
|
||||
return AddKrParticle(sStr, nIdx)
|
||||
end
|
||||
return sStr
|
||||
end
|
||||
local DecodeChangeInfo = function(mapChangeInfo)
|
||||
local mapDecodedChangeInfo = {}
|
||||
if type(mapChangeInfo) ~= "table" then
|
||||
@@ -1236,19 +1249,6 @@ local ParseDesc = function(mapDescConfig, nCompareLevelType, nCompareLevel, bSim
|
||||
end
|
||||
return sDesc
|
||||
end
|
||||
local ParseLanguageParam = function(sParam)
|
||||
local param, lang, num = sParam:match("^(.-)_([a-zA-Z]+)(%d+)$")
|
||||
if not param then
|
||||
return sParam, nil, nil
|
||||
end
|
||||
return param, lang, tonumber(num)
|
||||
end
|
||||
local LanguagePost = function(sLang, nIdx, sStr)
|
||||
if sLang == "kr" and nIdx ~= nil then
|
||||
return AddKrParticle(sStr, nIdx)
|
||||
end
|
||||
return sStr
|
||||
end
|
||||
local mapWord = {}
|
||||
for word in string.gmatch(linkStr, "&.-&") do
|
||||
local sParameterKeyOrigin = string.gsub(word, "&", "")
|
||||
@@ -2091,5 +2091,8 @@ _G.UTILS = {
|
||||
GetBBSUrl = GetBBSUrl,
|
||||
GetToolBoxUrl = GetToolBoxUrl,
|
||||
GetExchangeCodeUrl = GetExchangeCodeUrl,
|
||||
CheckChannelList_Notice = CheckChannelList_Notice
|
||||
CheckChannelList_Notice = CheckChannelList_Notice,
|
||||
AddKrParticle = AddKrParticle,
|
||||
LanguagePost = LanguagePost,
|
||||
ParseLanguageParam = ParseLanguageParam
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user