diff --git a/data/bin/MonsterValueTemplete.json b/data/bin/MonsterValueTemplete.json index 10d9d5c1..0f62abf7 100644 --- a/data/bin/MonsterValueTemplete.json +++ b/data/bin/MonsterValueTemplete.json @@ -685099,7 +685099,7 @@ "Id": 7887041, "TemplateId": 7887, "Name": "", - "Lv": 1643090, + "Lv": 3313630, "Hp": 16544, "Atk": 500, "Def": 0, diff --git a/data/bin/monstervaluetemplete.bytes b/data/bin/monstervaluetemplete.bytes index eac7ef95..d1dfdd83 100644 Binary files a/data/bin/monstervaluetemplete.bytes and b/data/bin/monstervaluetemplete.bytes differ diff --git a/data/language/en_us/uitext.json b/data/language/en_us/uitext.json index 4e0a87df..4eb4b552 100644 --- a/data/language/en_us/uitext.json +++ b/data/language/en_us/uitext.json @@ -1699,9 +1699,9 @@ "UIText.JointDrill_Battle_Time_Text.1": "Remaining Time", "UIText.JointDrill_Beta_Tip.1": "Beta", "UIText.JointDrill_BossSkill_Detail.1": "Details", - "UIText.JointDrill_BossSkill_Title.1": "Boss Mechanic", + "UIText.JointDrill_BossSkill_Title.1": "Boss Mechanics", "UIText.JointDrill_Boss_Die.1": "Cleared", - "UIText.JointDrill_Boss_Info.1": "Boss Mechanic", + "UIText.JointDrill_Boss_Info.1": "Boss Mechanics", "UIText.JointDrill_Btn_Continue_Challenge.1": "Continue", "UIText.JointDrill_Btn_Rank.1": "Leaderboard", "UIText.JointDrill_Btn_Reward.1": "Rewards", diff --git a/data/language/ja_jp/monstermanual.json b/data/language/ja_jp/monstermanual.json index 5b1414ce..eedce0a4 100644 --- a/data/language/ja_jp/monstermanual.json +++ b/data/language/ja_jp/monstermanual.json @@ -643,9 +643,9 @@ "MonsterManual.7000105.2": "陰鬱な儀式により、絶望の淵へといざなう。\u000b彼女の演目には、最古の悪夢が描かれている。", "MonsterManual.7002246.1": "ナノハ???", "MonsterManual.7002246.2": "心を捨て、死を恐れぬ忍は刃そのもの。その切っ先が\n捉えた瞬間、獲物の命はすでに彼女の掌の上にある。\u000b\n※戦闘能力\u000b\n 「葵幻舞」:ナノハが巨大な手裏剣を投げつけ、ダメージを与える。\u000b\n「嵐散落」:ナノハがバク宙しながら大量のクナイを投げ放ち、ダメージを与える。\u000b\n「隠月」:ナノハが折れ線状のルートに沿って超高速で突進し、進路上にダメージを与える。\u000b\n「影舞・障叶」:ナノハが分身を展開し、その周囲で巨大な手裏剣の竜巻を巻き起こして広範囲に攻撃する。\u000b\n「影舞・花凋」:ナノハが分身を放ち、自身は煙の中へと姿を消す。やがて分身と共に、広範囲にわたるダメージゾーンを生み出す。", - "MonsterManual.7200105.1": "セルシア・絶望", + "MonsterManual.7200105.1": "セルシア・狂気", "MonsterManual.7200105.2": "終わりのない戦場を跋扈し、灼熱の戦火の中で狂喜する。\u000b彼女は渇望しただけであり、狂気に飢えているわけではない。\u000bこの戦争を終わらせぬため、その轟きは永遠にこだまする。", - "MonsterManual.7200205.1": "セルシア・狂気", + "MonsterManual.7200205.1": "セルシア・絶望", "MonsterManual.7200205.2": "灼熱の戦火に焼かれながら、終わりのない戦場を跋扈する。\u000b彼女は渇望したがゆえに、絶望へと足を踏み入れた。\u000bこの戦争を終わらせぬため、その轟きは永遠にこだまする。", "MonsterManual.9912101.1": "サンドバッグ", "MonsterManual.9912101.2": "ちゃんと飯は食ったのか?もっと強く!もっと激しく!" diff --git a/data/language/ko_kr/jumpto.json b/data/language/ko_kr/jumpto.json index 5058bd06..c86d6b00 100644 --- a/data/language/ko_kr/jumpto.json +++ b/data/language/ko_kr/jumpto.json @@ -127,8 +127,8 @@ "JumpTo.61.1": "재앙의 전선", "JumpTo.62.1": "선택 패키지 -%s", "JumpTo.62001.1": "진리 도전", - "JumpTo.62011.1": "진리 도전-미련의 화살", - "JumpTo.62021.1": "진리 도전-파괴의 엄니", + "JumpTo.62011.1": "진리 도전-기생의 정원", + "JumpTo.62021.1": "진리 도전-돌진하는 혼령", "JumpTo.62031.1": "진리 도전-태고의 거신병", "JumpTo.62041.1": "진리 도전-유풍의 미인", "JumpTo.62051.1": "진리 도전-취황의 칼날", diff --git a/data/language/ko_kr/uitext.json b/data/language/ko_kr/uitext.json index 9ba6e31b..611447a7 100644 --- a/data/language/ko_kr/uitext.json +++ b/data/language/ko_kr/uitext.json @@ -847,7 +847,7 @@ "UIText.Disc_StoryLimitTip.1": "미오픈", "UIText.Disc_SubSkill_ActiveConditions.1": "활성화 조건:", "UIText.Disc_SubSkill_ActiveLevel.1": "≥{num_0}개", - "UIText.Disc_SubSkill_Level.1": "{num_0}개", + "UIText.Disc_SubSkill_Level.1": "{num_0}레벨", "UIText.Disc_SubSkill_Tip.1": "별의 탑 진입 시 다음 소리를 획득", "UIText.Disc_SubSkill_Title.1": "협주 스킬", "UIText.Disc_SubSkill_TitleTip.1": "소리 수집으로 활성화 및 레벨업할 수 있습니다", diff --git a/lua/game/adventure/jointdrill/jointdrillleveldata_2.lua b/lua/game/adventure/jointdrill/jointdrillleveldata_2.lua index cfe7d385..f7681d23 100644 --- a/lua/game/adventure/jointdrill/jointdrillleveldata_2.lua +++ b/lua/game/adventure/jointdrill/jointdrillleveldata_2.lua @@ -1,9 +1,7 @@ local JointDrillLevelData_2 = class("JointDrillLevelData_2") -local FP = CS.TrueSync.FP -local PB = require("pb") local AdventureModuleHelper = CS.AdventureModuleHelper -local TimerManager = require("GameCore.Timer.TimerManager") local LocalData = require("GameCore.Data.LocalData") +local ModuleManager = require("GameCore.Module.ModuleManager") local mapEventConfig = { LoadLevelRefresh = "OnEvent_LoadLevelRefresh", AdventureModuleEnter = "OnEvent_AdventureModuleEnter", @@ -197,27 +195,30 @@ end function JointDrillLevelData_2:CheckJointDrillGameOver() local nChallengeCount = self.parent:GetJointDrillBattleCount() local nAllChallengeCount = self.parent:GetMaxChallengeCount(self.nLevelId) - if nChallengeCount >= nAllChallengeCount then - local callback = function(netMsg) - self:JointDrillFail(AllEnum.JointDrillResultType.ChallengeEnd, netMsg, self.nCurLevel) - end - self.parent:JointDrillGameOver(callback) - else - function self.recordCallback(sRecord) + function self.recordCallback(sRecord) + if nChallengeCount >= nAllChallengeCount then + local syncCallback = function() + local callback = function(netMsg) + self:JointDrillFail(AllEnum.JointDrillResultType.ChallengeEnd, netMsg, self.nCurLevel) + end + self.parent:JointDrillGameOver(callback) + end + self.parent:JointDrillSync(self.nCurLevel, self.nGameTime, self.nDamageValue, "", syncCallback) + else local callback = function(netMsg) self:JointDrillFail(AllEnum.JointDrillResultType.BattleEnd, netMsg, self.nCurLevel) end self.parent:JointDrillGiveUp(self.nCurLevel, self.nGameTime, self.nDamageValue, sRecord, callback) end - NovaAPI.DispatchEventWithData("JointDrill_CacheTempData_Start", nil, { - false, - true, - true, - false, - 0, - 0 - }) end + NovaAPI.DispatchEventWithData("JointDrill_CacheTempData_Start", nil, { + false, + true, + true, + false, + 0, + 0 + }) end function JointDrillLevelData_2:JointDrillFail(nResultType, netMsg, nLevel) local bossInfo = {} @@ -376,6 +377,11 @@ function JointDrillLevelData_2:OnEvent_BattleLvsToggle() EventManager.Hit("ResetBossHUD") end function JointDrillLevelData_2:OnEvent_UnloadComplete() + if self.bInErrorResult then + NovaAPI.EnterModule("MainMenuModuleScene", true, 17) + self.bInErrorResult = false + return + end if self.bInResult == true then return end @@ -452,7 +458,11 @@ function JointDrillLevelData_2:OnEvent_JointDrillChallengeFinishError() if self.parent:CheckJointDrillInBattle() then self.parent:JointDrillGameOver(nil, true) else - self:JointDrillFail(AllEnum.JointDrillResultType.ChallengeEnd, nil, self.nCurLevel) + local bInAdventure = ModuleManager.GetIsAdventure() + if bInAdventure then + self.bInErrorResult = true + AdventureModuleHelper.LevelStateChanged(true, 0, true) + end local wait = function() coroutine.yield(CS.UnityEngine.WaitForEndOfFrame()) self.parent:SetResetLevelSelect(true) diff --git a/lua/game/ui/avg/_kr/config/pm11902.lua b/lua/game/ui/avg/_kr/config/pm11902.lua index 44a5b948..7e0bf6bc 100644 --- a/lua/game/ui/avg/_kr/config/pm11902.lua +++ b/lua/game/ui/avg/_kr/config/pm11902.lua @@ -1090,7 +1090,7 @@ return { "", false, "", - "괜찮아요. 꽃은 내년에 또 필 테니까요", + "괜찮아. 내년에 또 필 테니까", "" } }, diff --git a/lua/game/ui/avg/_kr/preset/avgcontacts.lua b/lua/game/ui/avg/_kr/preset/avgcontacts.lua index 8dcbf060..5db22980 100644 --- a/lua/game/ui/avg/_kr/preset/avgcontacts.lua +++ b/lua/game/ui/avg/_kr/preset/avgcontacts.lua @@ -209,7 +209,7 @@ return { icon = "Icon/Head/head_14901_S", name = "그레이", landmark = "아모르 실버 에리어 은혜 대성전", - signature = "주공께 문자 드렸는데, 서비스 지역이 아니라고 합니다" + signature = "주님께 문자 드렸는데, 서비스 지역이 아니라고 합니다" }, { id = 150, diff --git a/lua/game/ui/battle/jointdrillbattlepanel.lua b/lua/game/ui/battle/jointdrillbattlepanel.lua index 9c7e326f..65a0584c 100644 --- a/lua/game/ui/battle/jointdrillbattlepanel.lua +++ b/lua/game/ui/battle/jointdrillbattlepanel.lua @@ -58,7 +58,7 @@ end function JointDrillBattlePanel:OnEnable() local wait = function() coroutine.yield(CS.UnityEngine.WaitForEndOfFrame()) - EventManager.Hit(EventId.OpenPanel, PanelId.Hud, self.nType) + EventManager.Hit(EventId.OpenPanel, PanelId.Hud, false, false, self.nType) EventManager.Hit(EventId.ClosePanel, PanelId.MainlineFormation) EventManager.Hit(EventId.ClosePanel, PanelId.RegionBossFormation) coroutine.yield(CS.UnityEngine.WaitForEndOfFrame()) diff --git a/lua/game/ui/hud/elitemonsterhudctrl.lua b/lua/game/ui/hud/elitemonsterhudctrl.lua index a1abb3e5..667efe78 100644 --- a/lua/game/ui/hud/elitemonsterhudctrl.lua +++ b/lua/game/ui/hud/elitemonsterhudctrl.lua @@ -128,7 +128,8 @@ EliteMonsterHudCtrl._mapNodeConfig = { EliteMonsterHudCtrl._mapEventConfig = {} local multipleBossIcon = { [GameEnum.monsterBloodType.BOSS] = "icon_story_boss1", - [GameEnum.monsterBloodType.MINIBOSS] = "icon_story_boss2" + [GameEnum.monsterBloodType.MINIBOSS] = "icon_story_boss2", + [GameEnum.monsterBloodType.JOINTDRILLBOSS] = "icon_story_boss1" } function EliteMonsterHudCtrl:PlayTweenHp(hp, hpMax) local nWidth = 1 <= hp / hpMax and BarWidth or hp / hpMax * BarWidth @@ -296,7 +297,7 @@ function EliteMonsterHudCtrl:OnDisable() end function EliteMonsterHudCtrl:OnDestroy() end -function EliteMonsterHudCtrl:SetMonsterId(monsterId, nDataId, nType, bMultipleBoss) +function EliteMonsterHudCtrl:SetMonsterId(monsterId, nDataId, nType) if self.monsterId == monsterId then return end @@ -306,8 +307,9 @@ function EliteMonsterHudCtrl:SetMonsterId(monsterId, nDataId, nType, bMultipleBo return end self.monsterId = monsterId - self._mapNode.imgBossIcon.gameObject:SetActive(bMultipleBoss) - if bMultipleBoss then + local bShowBossIcon = nType == GameEnum.monsterBloodType.BOSS or nType == GameEnum.monsterBloodType.MINIBOSS or nType == GameEnum.monsterBloodType.JOINTDRILLBOSS + self._mapNode.imgBossIcon.gameObject:SetActive(bShowBossIcon) + if bShowBossIcon then local sIcon = multipleBossIcon[nType] self:SetAtlasSprite(self._mapNode.imgBossIcon, "15_battle", sIcon) NovaAPI.SetImageNativeSize(self._mapNode.imgBossIcon) diff --git a/lua/game/ui/hud/hudmainctrl.lua b/lua/game/ui/hud/hudmainctrl.lua index d6abfe98..56afa04d 100644 --- a/lua/game/ui/hud/hudmainctrl.lua +++ b/lua/game/ui/hud/hudmainctrl.lua @@ -65,6 +65,7 @@ function HudMainCtrl:OnEnable() local tbParam = self:GetPanelParam() self.isVampireInstance = tbParam[1] or false local bNotAdventureEnter = tbParam[2] + self.jointDrillType = tbParam[3] if not bNotAdventureEnter then self._mapNode.BattleTarget.gameObject:SetActive(true) end @@ -141,7 +142,7 @@ function HudMainCtrl:MonsterShowChanged(id, showed, nType, nDataId) self.monsterHuds[id] = nil end end -function HudMainCtrl:MonsterAdvShowChanged(id, showed, nType, nDataId, bMultipleBoss) +function HudMainCtrl:MonsterAdvShowChanged(id, showed, nType, nDataId) local monsterHud = self.monsterAdvHuds[id] local isPlayerSummoner = nType == GameEnum.monsterBloodType.PLAYERSUMMON if showed then @@ -157,7 +158,7 @@ function HudMainCtrl:MonsterAdvShowChanged(id, showed, nType, nDataId, bMultiple monsterHud.gameObject.transform.localScale = Vector3.one end if monsterHud ~= nil then - monsterHud:SetMonsterId(id, nDataId, nType, bMultipleBoss) + monsterHud:SetMonsterId(id, nDataId, nType) local height = AdventureModuleHelper.GetEntityMonsterBarHeight(id) local offset = Vector3(0, height, 0) AdventureModuleHelper.SetHudFollowTarget(id, monsterHud.gameObject, offset, true) @@ -170,7 +171,7 @@ end function HudMainCtrl:OnEvent_ShowBossHUD(bossId, nType, showed, nDataId, nBloodType) self.nBloodType = nBloodType showed = showed and self.tbBossBloodState[bossId] == true - self:MonsterAdvShowChanged(bossId, showed, nType, nDataId, true) + self:MonsterAdvShowChanged(bossId, showed, nType, nDataId) end function HudMainCtrl:OnEvent_MonsterHUDChange(id, nType, showed, nDataId) if nType == GameEnum.monsterBloodType.BOSSRUSH then diff --git a/lua/game/ui/play_penguincard/penguincardflipctrl.lua b/lua/game/ui/play_penguincard/penguincardflipctrl.lua index 30c08fbb..006569f1 100644 --- a/lua/game/ui/play_penguincard/penguincardflipctrl.lua +++ b/lua/game/ui/play_penguincard/penguincardflipctrl.lua @@ -195,7 +195,7 @@ function PenguinCardFlipCtrl:RefreshRoundScore() NovaAPI.SetTMPText(self._mapNode.txtRoundScore, self:ThousandsNumber(clearFloat(self._panel.mapLevel.nRoundScore))) NovaAPI.SetTMPText(self._mapNode.txtRoundScoreBase, self:ThousandsNumber(clearFloat(self._panel.mapLevel.nRoundValue))) local nRatio = self._panel.mapLevel.nRoundMultiRatio > 0 and self._panel.mapLevel.nRoundRatio * self._panel.mapLevel.nRoundMultiRatio or self._panel.mapLevel.nRoundRatio - NovaAPI.SetTMPText(self._mapNode.txtRoundScoreRatio, string.format("%.1f", nRatio)) + NovaAPI.SetTMPText(self._mapNode.txtRoundScoreRatio, math.floor(nRatio * 10 + 0.5 + 1.0E-9) / 10) end function PenguinCardFlipCtrl:RefreshButton() self:RefreshAuto() diff --git a/lua/game/ui/play_penguincard/penguinlevel.lua b/lua/game/ui/play_penguincard/penguinlevel.lua index 2bdda930..19c32fa2 100644 --- a/lua/game/ui/play_penguincard/penguinlevel.lua +++ b/lua/game/ui/play_penguincard/penguinlevel.lua @@ -661,7 +661,11 @@ function PenguinLevel:ChangeRoundScore(nAddValue, nAddRatio, nAddMultiRatio, bFr self.nRoundValue = self.nRoundValue + nAddValue self.nRoundMultiRatio = self.nRoundMultiRatio + nAddMultiRatio self.nRoundRatio = self.nRoundRatio + nAddRatio - self.nRoundScore = self.nRoundMultiRatio > 0 and self.nRoundValue * self.nRoundRatio * self.nRoundMultiRatio or self.nRoundValue * self.nRoundRatio + local nBeforeAllRatio = 0 < nBeforeMultiRatio and nBeforeMultiRatio * nBeforeRatio or nBeforeRatio + local nAfterAllRatio = self.nRoundMultiRatio > 0 and self.nRoundRatio * self.nRoundMultiRatio or self.nRoundRatio + nBeforeAllRatio = math.floor(nBeforeAllRatio * 10 + 0.5 + 1.0E-9) / 10 + nAfterAllRatio = math.floor(nAfterAllRatio * 10 + 0.5 + 1.0E-9) / 10 + self.nRoundScore = self.nRoundValue * nAfterAllRatio local nAddScore = self.nRoundScore - nBeforeScore self.nTurnScore = self.nTurnScore + nAddScore if self.nTurnScore > self.nBestTurnScore then @@ -670,8 +674,6 @@ function PenguinLevel:ChangeRoundScore(nAddValue, nAddRatio, nAddMultiRatio, bFr if self.nRoundScore > self.nBestRoundScore then self.nBestRoundScore = self.nRoundScore end - local nBeforeAllRatio = 0 < nBeforeMultiRatio and nBeforeMultiRatio * nBeforeRatio or nBeforeRatio - local nAfterAllRatio = self.nRoundMultiRatio > 0 and self.nRoundRatio * self.nRoundMultiRatio or self.nRoundRatio EventManager.Hit("PenguinCard_ChangeRoundScore", nBeforeBase, nBeforeAllRatio, nBeforeScore, bFromHandRank) if NovaAPI.IsEditorPlatform() then printLog("轮积分变化:" .. nAddScore .. " (" .. nBeforeScore .. " -> " .. self.nRoundScore .. ")") diff --git a/versions.txt b/versions.txt index 41a037d9..3ec40b68 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ -EN: 1.7.0.90 -CN: 1.7.0.92 -JP: 1.7.0.93 -KR: 1.7.0.96 +EN: 1.7.0.92 +CN: 1.7.0.94 +JP: 1.7.0.95 +KR: 1.7.0.98