From 44f0ab2bc530507436114461281b27d920ef3d9a Mon Sep 17 00:00:00 2001 From: SL1900 <43700351+SL1900@users.noreply.github.com> Date: Wed, 21 Oct 2026 21:38:00 +0900 Subject: [PATCH] Hotfix - 2.0.0.144 EN: 2.0.0.144 CN: 2.0.0.143 JP: 2.0.0.146 KR: 2.0.0.151 --- data/bin/Monster.json | 4 +- data/bin/UIText.json | 8 + data/bin/monster.bytes | Bin 352020 -> 352020 bytes data/bin/uitext.bytes | Bin 382518 -> 382621 bytes data/language/en_us/activitygoods.json | 18 +- data/language/en_us/datingcharacterevent.json | 2 +- data/language/en_us/datinglandmarkevent.json | 2 +- data/language/en_us/item.json | 6 +- data/language/en_us/residentgoods.json | 10 +- data/language/en_us/scorebossability.json | 2 +- data/language/en_us/skill.json | 4 +- data/language/en_us/storyline.json | 2 +- data/language/en_us/uitext.json | 8 +- data/language/ja_jp/breakoutlevel.json | 10 +- data/language/ja_jp/dictionarydiagram.json | 2 +- data/language/ja_jp/penguincardbuff.json | 2 +- data/language/ja_jp/skill.json | 16 +- data/language/ja_jp/uitext.json | 2 + data/language/ko_kr/item.json | 6 +- data/language/ko_kr/potential.json | 8 +- data/language/ko_kr/skill.json | 4 +- data/language/ko_kr/story.json | 2 +- data/language/ko_kr/uitext.json | 12 +- data/language/zh_cn/uitext.json | 10 +- .../infinitytower/infinitytowerlevel.lua | 2 +- .../adventure/tracehunt/tracehuntlevel.lua | 2 +- lua/game/common/utils/jumputil.lua | 5 +- .../reengagementbdpreviewitemctrl.lua | 4 +- .../activitylevelsinstancepausectrl.lua | 2 +- lua/game/ui/avg/_en/config/cg_162_02.lua | 2 +- lua/game/ui/avg/_en/config/stm10001_09.lua | 2 +- lua/game/ui/avg/_kr/config/stm01_04.lua | 4 +- lua/game/ui/battle/chapterpausectrl.lua | 6 +- lua/game/ui/battle/mainbattlepausectrl.lua | 6 +- lua/game/ui/commontipsex/popupskillctrl.lua | 10 +- .../dailyinstancepausectrl.lua | 2 +- .../dormcharselect/dormselectcharctrl.lua | 18 +- .../dormcontact/dormcontactbtnlistctrl.lua | 23 +- .../ui/dorm/dormfriend/dormfriendgridctrl.lua | 2 +- .../dorminteractive/dorminteractivectrl.lua | 1 + .../dormroomselectpanel/dormroomgridctrl.lua | 10 +- .../dorm/musicselect/dormmusicselectctrl.lua | 5 +- .../equipmentinstancepausectrl.lua | 2 +- lua/game/ui/gachaex/gachactrl.lua | 12 +- .../infinitytower/infinitytowerpausectrl.lua | 5 +- .../mainlineex_dustdawnstoryctrl.lua | 2 +- .../regionbosstimeex/regionbosspausectrl.lua | 2 +- .../skillinstancepausectrl.lua | 2 +- .../soldierrecommendcharitemctrl.lua | 113 +++++--- .../recommend/soldierrecommendctrl.lua | 260 +++++++++--------- .../recommend/soldierrecommenddetailctrl.lua | 14 +- .../startowerautodecisionsettingctrl.lua | 2 +- lua/game/ui/topbarex/topbarctrl.lua | 7 +- lua/game/ui/tracehunt/tracehuntpausectrl.lua | 5 +- .../ui/travelerduelroominfo/tdpausectrl.lua | 2 +- .../depot/depotcharinfoctrl.lua | 3 +- .../vampiresurvivorpausectrl.lua | 2 +- lua/gamecore/data/dataclass/avgdata.lua | 2 +- .../data/dataclass/playerbuilddata.lua | 4 + .../data/dataclass/playerchardata.lua | 6 + lua/gamecore/network/httpnethandler.lua | 3 +- lua/gamecore/network/httpnethandlerplus.lua | 3 + versions.txt | 8 +- 63 files changed, 392 insertions(+), 313 deletions(-) diff --git a/data/bin/Monster.json b/data/bin/Monster.json index aeeb9ce2c..5a89dc5fb 100644 --- a/data/bin/Monster.json +++ b/data/bin/Monster.json @@ -147786,7 +147786,7 @@ "SupCharge": 2, "IsShowRng": false, "Weight": 0, - "ToughnessBrokenTime": 3, + "ToughnessBrokenTime": 4, "IsToughnessRecorver": true, "Tag1": "", "Tag2": "", @@ -147924,7 +147924,7 @@ "SupCharge": 2, "IsShowRng": false, "Weight": 0, - "ToughnessBrokenTime": 3, + "ToughnessBrokenTime": 4, "IsToughnessRecorver": true, "Tag1": "", "Tag2": "", diff --git a/data/bin/UIText.json b/data/bin/UIText.json index 8786d2e77..aba84e17a 100644 --- a/data/bin/UIText.json +++ b/data/bin/UIText.json @@ -18794,5 +18794,13 @@ "ItemStype_55": { "Id": "ItemStype_55", "Text": "UIText.ItemStype_55.1" + }, + "Dorm_Go": { + "Id": "Dorm_Go", + "Text": "UIText.Dorm_Go.1" + }, + "DormFriend_Visit": { + "Id": "DormFriend_Visit", + "Text": "UIText.DormFriend_Visit.1" } } \ No newline at end of file diff --git a/data/bin/monster.bytes b/data/bin/monster.bytes index 20c4fb785e02fc194289ecadbd0e79d26a1db323..cbff7823d448049b146bdc6bcb57e529182d458e 100644 GIT binary patch delta 40 tcmbQTPjt#Y(S{br7N!>F7M3lnCb84^$FTBkcZy~8X9P2+&yQm*1pq7C4fX&4 delta 34 qcmbQTPjt#Y(S{br7N!>F7M3lnCb5jn+f8FxV;C8kr%#GwZ2|zxJ_>XI diff --git a/data/bin/uitext.bytes b/data/bin/uitext.bytes index baece9f4c7543b734b21ae077388c56d98ced0ac..65b1118d1a85f67e84941ec6835df7d7b334549d 100644 GIT binary patch delta 146 zcmdnCMttsCae&Param1&.\nDealing 10 hits to the boss within 2s removes all Berserk stacks. The main Trekker then gains 10 stacks of Amplify (up to 10 stacks). Each hit dealt consumes 1 Amplify stack to increase that hit's DMG by &Param2&.", "ScoreBossAbility.100002.1": "Pyro Blight", "ScoreBossAbility.100002.2": "The boss gains a Fire Ring, increasing their DMG dealt by &Param1& and continuously dealing DMG to your squad within the ring.\nTriggering 3 Elemental Marks on the boss within 5s grants the squad Enhancement, increasing Auto Attack DMG by &Param2& for 10s, and disables the boss's Fire Ring for 10s.", diff --git a/data/language/en_us/skill.json b/data/language/en_us/skill.json index 5ade6f240..962b9c4bc 100644 --- a/data/language/en_us/skill.json +++ b/data/language/en_us/skill.json @@ -1372,8 +1372,8 @@ "Skill.8211501.13": "Shoots a beam forward.\nAfter casting a skill, Firefly becomes immune to all DMG for a period of time.", "Skill.8211501.2": "Shoots a beam forward.\nAfter casting a skill, Firefly becomes immune to all DMG for a period of time.", "Skill.8213901.1": "Sweeping Slashes", - "Skill.8213901.13": "Each time an item is picked up, generates 1 Sweep Mark, stacking up to 3 times.\nWhen casting the skill, Allie wields the long blade to perform Cycling Slashes, continuously firing Frost Blades to deal AoE DMG\nWhen casting the skill, if she already has 3 Sweep Marks, additionally generates a long blade phantom after Cycling Slashes ends to deal DMG.", - "Skill.8213901.2": "Each time an item is picked up, generates 1 Sweep Mark, stacking up to 3 times.\nWhen casting the skill, Allie wields the long blade to perform Cycling Slashes, continuously firing Frost Blades to deal AoE DMG\nWhen casting the skill, if she already has 3 Sweep Marks, additionally generates a long blade phantom after Cycling Slashes ends to deal DMG.", + "Skill.8213901.13": "Each time an item is picked up, fires Frost Blades upwards and generates 1 Sweep Mark, stacking up to 3 times.\nWhen casting the skill, Allie wields the long blade to perform Cycling Slashes, continuously firing Frost Blades to deal AoE DMG\nWhen casting the skill, if she already has 3 Sweep Marks, additionally generates a long blade phantom after Cycling Slashes ends to deal DMG.", + "Skill.8213901.2": "Each time an item is picked up, fires Frost Blades upwards and generates 1 Sweep Mark, stacking up to 3 times.\nWhen casting the skill, Allie wields the long blade to perform Cycling Slashes, continuously firing Frost Blades to deal AoE DMG\nWhen casting the skill, if she already has 3 Sweep Marks, additionally generates a long blade phantom after Cycling Slashes ends to deal DMG.", "Skill.8214501.1": "Void Blossom", "Skill.8214501.13": "Detonates the marbles, then fires multiple kunai in all directions.\nOtoha fires a kunai forward when picking up an item.", "Skill.8214501.2": "Detonates the marbles, then fires multiple kunai in all directions.\nOtoha fires a kunai forward when picking up an item.", diff --git a/data/language/en_us/storyline.json b/data/language/en_us/storyline.json index e010e15d3..6b883e33a 100644 --- a/data/language/en_us/storyline.json +++ b/data/language/en_us/storyline.json @@ -2,5 +2,5 @@ "StoryLine.1.1": "I Think,\nSo the Tyrant Is", "StoryLine.1.2": "Monolith Calendar Year 996", "StoryLine.2.1": "Tyrant,\nHear My Prayer", - "StoryLine.2.2": "Monolith Calendar Year 4" + "StoryLine.2.2": "Before Monolith Calendar Year 4" } \ No newline at end of file diff --git a/data/language/en_us/uitext.json b/data/language/en_us/uitext.json index 5c16df96c..d5912f916 100644 --- a/data/language/en_us/uitext.json +++ b/data/language/en_us/uitext.json @@ -1023,6 +1023,7 @@ "UIText.DormBtn_ViewMode.1": "Tower Mode", "UIText.DormBtn_Visit.1": "Visit", "UIText.DormFriend_EmptyHint.1": "No friends", + "UIText.DormFriend_Visit.1": "Visit", "UIText.DormMainMenu_Knowledge.1": "Trekker Encyclopedia", "UIText.DormQuest_Title.1": "Path of Wealth", "UIText.DormReward_FastReceive.1": "Claim Gifts", @@ -1052,7 +1053,7 @@ "UIText.Dorm_Editor_SaveSuccess.1": "Saved!", "UIText.Dorm_FriendRoot_Elevator.1": "Elevator", "UIText.Dorm_FriendRoot_Visit.1": "Visit", - "UIText.Dorm_Friend_LikeLimit.1": "No likes left today.", + "UIText.Dorm_Friend_LikeLimit.1": "You can only like 3 friends per day.", "UIText.Dorm_Friend_PanelTitle.1": "Visit Friends", "UIText.Dorm_FurnitreSaveCDHint.1": "Too fast. Try again in 5s.", "UIText.Dorm_FurnitureList_Tog1.1": "Furniture", @@ -1069,6 +1070,7 @@ "UIText.Dorm_GiftCountMaxHint.1": "You've already gifted this Trekker today.", "UIText.Dorm_GiftDesc.1": "You can gift 6 Trekkers a day, one gift per Trekker. These gifts don't count toward your Heartlink gifts.", "UIText.Dorm_GiftEmptyTitle.1": "No gifts to give.", + "UIText.Dorm_Go.1": "Go", "UIText.Dorm_HandBook_Title.1": "Treasure Registry", "UIText.Dorm_HandBook_Tog1.1": "Grand Feats", "UIText.Dorm_HandBook_Tog2.1": "Treasure Sets", @@ -1078,7 +1080,7 @@ "UIText.Dorm_Hint_Err_FurniturePos.1": "Furniture is overlapping. Layout cannot be saved.", "UIText.Dorm_Hint_Err_NoNeedToSave.1": "No changes made.", "UIText.Dorm_Interaction_DayLimitHint.1": "No more pats today.", - "UIText.Dorm_Interaction_NoCharHint.1": "No one in the Tower to interact with right now.", + "UIText.Dorm_Interaction_NoCharHint.1": "There are currently no Trekkers available for batch patting.", "UIText.Dorm_Interactive_GroupTitle.1": "Complete all chapter missions to advance.", "UIText.Dorm_ItemHint_RoomType1.1": "Available\nIndoors", "UIText.Dorm_ItemHint_RoomType2.1": "Available\nOutdoors", @@ -1932,7 +1934,7 @@ "UIText.Guide_51_2.1": "You can increase a Trekker's Affinity through completing Companion Targets, gift-giving, or sending invitations.", "UIText.Guide_51_3.1": "With increased Affinity, the Trekker's combat power will increase slightly, and more archive entries and voiceovers will be unlocked.", "UIText.Guide_51_4.1": "Increased Affinity level will also unlock the Trekker's personal stories.\u000bFinishing the key stories unlocks Memory Snapshots, which can be set as your main screen.", - "UIText.Guide_521_1.1": "Tyrant's Tower is now available. Here, you can freely decorate a cozy space of your own.\nSelect the Tyrant’s Tower button on the home screen to enter.", + "UIText.Guide_521_1.1": "Tyrant's Tower is now available. Here, you can freely decorate a cozy space of your own.\nSelect the Tyrant's Tower button on the home screen to enter.", "UIText.Guide_521_5.1": "Follow the guide and explore your very own Tyrant's Tower!", "UIText.Guide_522_1.1": "It's time to start decorating the campsite!\nTap Display to see what furniture you can place.", "UIText.Guide_522_4.1": "Oh, isn't that the Sherlock Statue? So this is where it was hidden! Let's place it.", diff --git a/data/language/ja_jp/breakoutlevel.json b/data/language/ja_jp/breakoutlevel.json index faa694c36..bc368b293 100644 --- a/data/language/ja_jp/breakoutlevel.json +++ b/data/language/ja_jp/breakoutlevel.json @@ -24,7 +24,7 @@ "BreakOutLevel.301020122.1": "星環探索", "BreakOutLevel.301020122.2": "硬いブロックが行く手を阻む、何度も攻撃して破壊しよう!\r\n落ちてくるアイテムにも注意しよう。\r\n新しく追加された爆発弾は敵やブロックに直撃すると周囲に爆発を起こすよ!", "BreakOutLevel.301020131.1": "光年の砕影", - "BreakOutLevel.301020131.2": "複雑なフィールドでも落ち着いて戦おう。\r\n落ちてくるアイテムにも注意し、高威力の炎のボールは貫通効果もあるよ!\r\n新しく追加されたスターを獲得すると、ボールの速度を速め、全てのダメージに対して免疫を持つようになるぞ!", + "BreakOutLevel.301020131.2": "複雑なフィールドでも落ち着いて戦おう。\r\n落ちてくるアイテムにも注意し、高威力の炎のボールは貫通効果もあるよ!\r\n新しく追加された無敵スターを獲得すると、ボールの速度を速め、全てのダメージに対して免疫を持つようになるぞ!", "BreakOutLevel.301020132.1": "引力の小波", "BreakOutLevel.301020132.2": "新たな天文現象「重力井戸」を観測!\r\n重力井戸は自身の状態に応じて、ボールを引き寄せたり弾き飛ばしたりして軌道を変化させる。\r\nドロップアイテムの種類にも注目しましょう。新しく追加されたマルチボールを獲得すると、ボールが3つに分裂します!", "BreakOutLevel.301020141.1": "夜空の暗流", @@ -48,17 +48,17 @@ "BreakOutLevel.301030142.1": "銀河の伝説", "BreakOutLevel.301030142.2": "チャレンジステージへようこそ!\r\n己の知恵を振り絞り、最強の敵に立ち向かえ!", "BreakOutLevel.301040111.1": "星屑の囁き", - "BreakOutLevel.301040111.2": "「ブロックくずし」へようこそ!まずは基本操作を覚えよう!\n1.バーを動かして、ボールを発射・打ち返そう!\n2.巡遊者のスキルでブロックを壊そう!\n3.壊せるものが残り5個以下になると、第2ウェーブが始まるぞ!", + "BreakOutLevel.301040111.2": "「ブロックくずし」へようこそ!まずは基本操作を覚えよう!\n1.バーを動かして、ボールを発射したり、打ち返したりしよう!\n2.巡遊者のスキルでブロックを壊そう!\n3.壊せるものが残り5個以下になると、第2ウェーブが始まるぞ!", "BreakOutLevel.301040112.1": "極光の幻舞", "BreakOutLevel.301040112.2": "ステップアップチュートリアル!\n1.動き回る敵が登場!\n2.ボールの直撃や巡遊者のスキルで敵にダメージを与えよう!\n3.ドロップアイテムの効果を確かめよう!\n4.特殊なエネルギーボールも使ってみよう!", "BreakOutLevel.301040121.1": "新星の讃歌", - "BreakOutLevel.301040121.2": "敵はブロックの奥にいるため、直接倒せない。敵の弾を避けながらブロックを壊そう!敵は一定距離を移動するたびに、下へ爆弾を1個落とすぞ!\n新登場のスプリットボールは、強化ボールと組み合わせると画面全体を巻き込む強力な攻撃を繰り出せる!", + "BreakOutLevel.301040121.2": "敵はブロックの奥にいるため、直接倒せない。敵の弾を避けながらブロックを壊そう!\n敵は一定距離を移動するたびに、下へ爆弾を1個落とすぞ!\n新登場のスプリットボールは、強化ボールと組み合わせると画面全体を巻き込む強力な攻撃を繰り出せる!", "BreakOutLevel.301040122.1": "流星の調べ", - "BreakOutLevel.301040122.2": "高耐久のブロックが登場!何度も攻撃して壊そう!\n落ちてくるアイテムを見極めよう。新登場の雷のボールは、ぶつかった場所から電撃の輪を広げるぞ!縦・横のレーザーボールと組み合わせれば、さらに強化できる。\n新たなドロップアイテム「スター」も登場!", + "BreakOutLevel.301040122.2": "高耐久のブロックが登場!何度も攻撃して壊そう!\n落ちてくるアイテムを見極めよう。新登場の雷のボールは、ぶつかった場所から電撃の輪を広げるぞ!縦・横のレーザーボールと合成すれば、さらに強化できる。\n新たなドロップアイテム「無敵スター」も登場!", "BreakOutLevel.301040131.1": "パルス序曲", "BreakOutLevel.301040131.2": "新たなギミック「バウンドピラー」が登場!\n決まった位置にあるバウンドピラーにボールが当たると、一気に加速!速度は徐々に元に戻るが、加速中は打ち返すのが難しくなるぞ!", "BreakOutLevel.301040132.1": "時空の視線", - "BreakOutLevel.301040132.2": "新たなギミック「スプリットピラー」が登場!\n決まった位置にあるスプリットピラーにボールが当たると、小さなボールが1個分裂するぞ!", + "BreakOutLevel.301040132.2": "新たなギミック「スプリットピラー」が登場!\n決まった位置にあるスプリットピラーにボールが当たると、小さなボールが1個生まれるぞ!", "BreakOutLevel.301040141.1": "虚空の残響", "BreakOutLevel.301040141.2": "ブラックホールが出現!ボールを引き寄せて軌道を変えるぞ。打ち返すときは気をつけよう!", "BreakOutLevel.301040142.1": "銀河漫遊", diff --git a/data/language/ja_jp/dictionarydiagram.json b/data/language/ja_jp/dictionarydiagram.json index 65be31af4..e0b7d42d7 100644 --- a/data/language/ja_jp/dictionarydiagram.json +++ b/data/language/ja_jp/dictionarydiagram.json @@ -302,7 +302,7 @@ "DictionaryDiagram.40040401.1": "ブロックくずし-ギミック", "DictionaryDiagram.40040401.2": "一部のステージにはフィールドギミックが存在します。\r\nギミックに当たったボールを加速させて弾き飛ばすものや、\r\nギミックの周囲を通過したボールの軌道を変化させるものがあります。", "DictionaryDiagram.40040402.1": "ブロックくずし-ギミック2", - "DictionaryDiagram.40040402.2": "重力井戸ギミックは自身の状態に応じて、通過するボールの移動軌跡を変化させます。\r\n青色のギミックはボールは引き寄せ、赤色のギミックは弾き飛ばします。", + "DictionaryDiagram.40040402.2": "重力井戸ギミックは自身の状態に応じて、通過するボールの移動軌跡を変化させます。\r\n青色のギミックはボールを引き寄せ、赤色のギミックはボールを弾き飛ばします。", "DictionaryDiagram.40040501.1": "ブロックくずし-ワープゲート", "DictionaryDiagram.40040501.2": "ボールがワープゲートに入ると、即座に反対側のゲートへ転送されます。", "DictionaryDiagram.40040601.1": "ブロックくずし-重力ボタン", diff --git a/data/language/ja_jp/penguincardbuff.json b/data/language/ja_jp/penguincardbuff.json index 08ec46df0..1a0c5c65f 100644 --- a/data/language/ja_jp/penguincardbuff.json +++ b/data/language/ja_jp/penguincardbuff.json @@ -17,7 +17,7 @@ "PenguinCardBuff.2114.2": "所持しているシャロットカードのうち、ランダムに選ばれた{EffectParam_1}枚のレベルが{EffectParam_2}低下する。", "PenguinCardBuff.2115.2": "所持しているシャロットカードのうち、ランダムに選ばれた{EffectParam_1}枚のレベルが{EffectParam_2}低下する。", "PenguinCardBuff.2116.2": "所持しているシャロットカードのうち、ランダムに選ばれた{EffectParam_1}枚のレベルが{EffectParam_2}低下する。", - "PenguinCardBuff.2121.2": "所持しているシャロットカードのうち、ランダムに選ばれた{EffectParam_1}枚のレベルが{EffectParam_2}低下する。", + "PenguinCardBuff.2121.2": "アップグレードに必要なが{EffectParam_1}%増加する。", "PenguinCardBuff.2131.2": "ラウンド数-{EffectParam_1}。", "PenguinCardBuff.2132.2": "ラウンド数-{EffectParam_1}。", "PenguinCardBuff.2133.2": "ラウンド数-{EffectParam_1}。", diff --git a/data/language/ja_jp/skill.json b/data/language/ja_jp/skill.json index 2f9f01afe..bf6e8b418 100644 --- a/data/language/ja_jp/skill.json +++ b/data/language/ja_jp/skill.json @@ -1372,17 +1372,17 @@ "Skill.8211501.13": "前方に向けて光線を放つ。 \r\nホタルはスキル発動後、一定時間すべてのダメージを無効化する。", "Skill.8211501.2": "前方に向けて光線を放つ。 \r\nホタルはスキル発動後、一定時間すべてのダメージを無効化する。", "Skill.8213901.1": "プロのお片付け", - "Skill.8213901.13": "アイテムを拾うたびに「愛のしるし」を1獲得する(上限3)。\nスキル発動時、エリーが薙刀で「スイープスラッシュ」を繰り出し、アイスエッジを連続で放って範囲内の敵にダメージを与える。\nスキル発動時に「愛のしるし」を3持っている場合、「スイープスラッシュ」の終了後に薙刀の幻影が追加で出現し、ダメージを与える。", - "Skill.8213901.2": "アイテムを拾うたびに「愛のしるし」を1獲得する(上限3)。\nスキル発動時、エリーが薙刀で「スイープスラッシュ」を繰り出し、アイスエッジを連続で放って範囲内の敵にダメージを与える。\nスキル発動時に「愛のしるし」を3持っている場合、「スイープスラッシュ」の終了後に薙刀の幻影が追加で出現し、ダメージを与える。", + "Skill.8213901.13": "アイテムを拾うたびに、アイスエッジを発射して「愛のしるし」を1獲得する(上限3)。\nスキル発動時、エリーが薙刀で「スイープスラッシュ」を繰り出し、アイスエッジを連続で放って範囲内の敵にダメージを与える。\nスキル発動時に「愛のしるし」を3持っている場合、「スイープスラッシュ」の終了後に薙刀の幻影が追加で出現し、ダメージを与える。", + "Skill.8213901.2": "アイテムを拾うたびに、アイスエッジを発射して「愛のしるし」を1獲得する(上限3)。\nスキル発動時、エリーが薙刀で「スイープスラッシュ」を繰り出し、アイスエッジを連続で放って範囲内の敵にダメージを与える。\nスキル発動時に「愛のしるし」を3持っている場合、「スイープスラッシュ」の終了後に薙刀の幻影が追加で出現し、ダメージを与える。", "Skill.8214501.1": "空華", - "Skill.8214501.13": "ボールを爆発させ、周囲に複数の苦無を放つ。\r\nオトハがアイテムを拾った時、前方に向けて苦無を1枚放つ。", - "Skill.8214501.2": "ボールを爆発させ、周囲に複数の苦無を放つ。\r\nオトハがアイテムを拾った時、前方に向けて苦無を1枚放つ。", + "Skill.8214501.13": "ボールを爆発させ、周囲に複数の苦無を放つ。\r\nオトハがアイテムを拾った時、前方に向けて苦無を1本放つ。", + "Skill.8214501.2": "ボールを爆発させ、周囲に複数の苦無を放つ。\r\nオトハがアイテムを拾った時、前方に向けて苦無を1本放つ。", "Skill.8215701.1": "怒涛の追撃", - "Skill.8215701.13": "前方にモリを発射し、一定時間、ボールをモリの爆発位置へ誘導する。\nボールを受け止めるたびに、前方へ矢を1本発射する(3秒ごと1回まで)。", - "Skill.8215701.2": "前方にモリを発射し、一定時間、ボールをモリの爆発位置へ誘導する。\nボールを受け止めるたびに、前方へ矢を1本発射する(3秒ごと1回まで)。", + "Skill.8215701.13": "前方にモリを発射し、一定時間、ボールをモリの爆発位置へ誘導する。\nボールを受け止めるたびに、前方へ矢を1本発射する(3秒に1回まで)。", + "Skill.8215701.2": "前方にモリを発射し、一定時間、ボールをモリの爆発位置へ誘導する。\nボールを受け止めるたびに、前方へ矢を1本発射する(3秒に1回まで)。", "Skill.8216001.1": "瑠璃色バブルフロッグ", - "Skill.8216001.13": "ランダムなボールの位置に、ボールを跳ね返すバブルを生成する。\nボールはバブルに保護され、1回分の無敵効果が付与される。", - "Skill.8216001.2": "ランダムなボールの位置に、ボールを跳ね返すバブルを生成する。\nボールはバブルに保護され、1回分の無敵効果が付与される。", + "Skill.8216001.13": "ランダムに選ばれたボール1個の位置に、、ボールを跳ね返すバブルを生成する。\nボールはバブルに保護され、1回分の無敵効果が付与される。", + "Skill.8216001.2": "ランダムに選ばれたボール1個の位置に、、ボールを跳ね返すバブルを生成する。\nボールはバブルに保護され、1回分の無敵効果が付与される。", "Skill.8216201.1": "砕耀斬", "Skill.8216201.13": "ボールがブロックを壊すか敵を倒すたびに、セイナの周囲に墜星を1つ生成する。\nスキル発動時、降り注ぐ光の刃で範囲ダメージを与え、すべての墜星を消費する。消費した数に応じてボールが強化され、衝突時に追加の範囲ダメージを与える。", "Skill.8216201.2": "ボールがブロックを壊すか敵を倒すたびに、セイナの周囲に墜星を1つ生成する。\nスキル発動時、降り注ぐ光の刃で範囲ダメージを与え、すべての墜星を消費する。消費した数に応じてボールが強化され、衝突時に追加の範囲ダメージを与える。", diff --git a/data/language/ja_jp/uitext.json b/data/language/ja_jp/uitext.json index 6584b0abf..85339d4e2 100644 --- a/data/language/ja_jp/uitext.json +++ b/data/language/ja_jp/uitext.json @@ -1023,6 +1023,7 @@ "UIText.DormBtn_ViewMode.1": "塔ノ主モード", "UIText.DormBtn_Visit.1": "訪問", "UIText.DormFriend_EmptyHint.1": "フレンドがいません", + "UIText.DormFriend_Visit.1": "訪問", "UIText.DormMainMenu_Knowledge.1": "ガイド", "UIText.DormQuest_Title.1": "家具集めの道", "UIText.DormReward_FastReceive.1": "贈り物受取", @@ -1069,6 +1070,7 @@ "UIText.Dorm_GiftCountMaxHint.1": "この巡遊者には今日すでにギフトを贈っています", "UIText.Dorm_GiftDesc.1": "1日に最大6人の巡遊者へギフトを贈れます。同じ巡遊者には1日1回まで。ここでの回数は、ココチャ内のものとは別にカウントします。", "UIText.Dorm_GiftEmptyTitle.1": "ギフトがありません", + "UIText.Dorm_Go.1": "出発", "UIText.Dorm_HandBook_Title.1": "家具図鑑", "UIText.Dorm_HandBook_Tog1.1": "偉業", "UIText.Dorm_HandBook_Tog2.1": "家具セット", diff --git a/data/language/ko_kr/item.json b/data/language/ko_kr/item.json index acd57287b..f2c1c56ff 100644 --- a/data/language/ko_kr/item.json +++ b/data/language/ko_kr/item.json @@ -1413,7 +1413,7 @@ "Item.214023.1": "그래피티 무지개", "Item.214023.3": "가끔은 하루쯤 비워내자.\n패거리 싸움도, 지루한 일상도 모두 내려놓고.\n맑게 개인 하늘 위로 우리 만의 색을 담은 무지개를 그려내자.", "Item.214024.1": "하나, 둘, 셋, 점프!", - "Item.214024.3": "한 가닥의 밧줄이\n햇살 내리쬐는 곳에서 뻗어 나가\n오랜 시간 잊혀진 유적지로 이어진다.\n밧줄을 움켜쥔 소녀가\n하늘에서 뛰어내린다.\n“……결국 보물이잖아?\n내가 가져가면 그만이지!”", + "Item.214024.3": "한 가닥의 밧줄이\n햇살 내리쬐는 곳에서 뻗어 나가\n오랜 시간 잊힌 유적지로 이어진다.\n밧줄을 움켜쥔 소녀가\n하늘에서 뛰어내린다.\n“……결국 보물이잖아?\n내가 가져가면 그만이지!”", "Item.214026.1": "반짝이는 옛 연못", "Item.214026.3": "젖은 머리카락이 등 뒤에 어지럽게 흩어지고,\n옷매무새는 흐트러졌지만 한 줄기 바람조차 스며들 틈 없다.\n마음이 번잡하니 떨어지는 꽃잎조차 무겁게 느껴지는구나.\n비가 끊임없이 쏟아지는 나날, 너의 윤곽은 조금씩 희미해져 간다.", "Item.214027.1": "용과 봉황", @@ -1693,7 +1693,7 @@ "Item.224023.3": "가끔은 하루쯤 비워내자. \u000b패거리 싸움도, 지루한 일상도 모두 내려놓고. \u000b맑게 개인 하늘 위로 우리 만의 색을 담은 무지개를 그려내자.", "Item.224024.1": "하나, 둘, 셋, 점프! 멜로디", "Item.224024.2": "특정 레코드 한계 돌파에 사용되는 재료", - "Item.224024.3": "한 가닥의 밧줄이\u000b햇살 내리쬐는 곳에서 뻗어 나가\u000b오랜 시간 잊혀진 유적지로 이어진다. \u000b밧줄을 움켜쥔 소녀가\u000b하늘에서 뛰어내린다. \u000b“……결국 보물이잖아? \u000b내가 가져가면 그만이지!”", + "Item.224024.3": "한 가닥의 밧줄이\u000b햇살 내리쬐는 곳에서 뻗어 나가\u000b오랜 시간 잊힌 유적지로 이어진다. \u000b밧줄을 움켜쥔 소녀가\u000b하늘에서 뛰어내린다. \u000b“……결국 보물이잖아? \u000b내가 가져가면 그만이지!”", "Item.224026.1": "반짝이는 옛 연못 멜로디", "Item.224026.2": "특정 레코드 한계 돌파에 사용되는 재료", "Item.224026.3": "젖은 머리카락이 등 뒤에 어지럽게 흩어지고, \u000b옷매무새는 흐트러졌지만 한 줄기 바람조차 스며들 틈 없다. \u000b마음이 번잡하니 떨어지는 꽃잎조차 무겁게 느껴지는구나. \u000b비가 끊임없이 쏟아지는 나날, 너의 윤곽은 조금씩 희미해져 간다.", @@ -4035,7 +4035,7 @@ "Item.81010.2": "사용 후 활력 60 회복", "Item.81010.3": "유명한 에너지 드링크 「파워 부스터」! \u000b한 병이면 피로가 싹, 활력 맥스! \u000b※ 본 제품은 기능성 음료이며, 의약품을 대체할 수 없습니다.", "Item.81011.1": "토큰 보급", - "Item.81011.2": "「비타」 30%에 해당하는 토큰을 보충한다. \n토큰은 「별의 탑 스피드런」 의뢰에서 비타 의뢰에 소모할 수 있다.", + "Item.81011.2": "「비타」 30%에 해당하는 토큰을 보충한다. \n토큰은 「별의 탑 빠른 클리어」 의뢰에서 비타 의뢰에 소모할 수 있다.", "Item.81011.3": "비타는 배고픔을 느끼지 않지만, 그래도 토큰 보급은 필요하다고 한다. 이런 걸 두고 ‘말도 안 된다’고 하는 거겠지. 하하하 :)", "Item.82001.1": "신입 여행가 성장 패키지", "Item.82001.2": "모든 승급 시련 초급 여행가 승급 재료 중 1개 선택 가능", diff --git a/data/language/ko_kr/potential.json b/data/language/ko_kr/potential.json index f319a9cbb..e0b564b6a 100644 --- a/data/language/ko_kr/potential.json +++ b/data/language/ko_kr/potential.json @@ -2357,8 +2357,8 @@ "Potential.516223.2": "지원 스킬 「신뢰격·파」의 장검 공격 시 「섬광」을 지속 발사한다. 1개마다 최대 HP &Param1&의 빛 속성 스킬 피해를 입힌다.", "Potential.516224.1": "지원 스킬 「신뢰격·파」의 장검 공격 횟수가 증가한다.", "Potential.516224.2": "지원 스킬 「신뢰격·파」의 장검 공격 횟수가 10회 증가한다.", - "Potential.516225.1": "지원 스킬 「신뢰격·파」가 생성하는 「낙성」의 피해 범위가 증가한다. 「낙성」 생성 시 세이나의 &Param1_kr1& 증가한다.", - "Potential.516225.2": "지원 스킬 「신뢰격·파」가 생성하는 「낙성」의 피해 범위가 증가한다. \u000b「낙성」 1회 생성 시마다 세이나의 &Param1_kr1& &Param2& 증가한다. &Param3&초간 지속되며, 최대 &Param4&스택 중첩된다.", + "Potential.516225.1": "지원 스킬 「신뢰격·파」가 생성하는 「낙성」의 피해 범위가 증가한다. 「낙성」 생성 시 세이나(기원)의 &Param1_kr1& 증가한다.", + "Potential.516225.2": "지원 스킬 「신뢰격·파」가 생성하는 「낙성」의 피해 범위가 증가한다. \u000b「낙성」 1회 생성 시마다 세이나(기원)의 &Param1_kr1& &Param2& 증가한다. &Param3&초간 지속되며, 최대 &Param4&스택 중첩된다.", "Potential.516226.1": "지원 스킬 「신뢰격·파」의 대검 공격 후 세이나(기원)의 필살기가 대검 형태로 변경된다. 세이나(기원)의 장검 공격이 피해를 입히면 자신의 &Param1_kr1& 증가한다.", "Potential.516226.2": "지원 스킬 「신뢰격·파」의 대검 공격 후 세이나(기원)의 필살기가 대검 형태로 변경된다. \u000b세이나(기원)의 장검 공격이 피해를 입히면 자신의 &Param1_kr1& &Param2& 증가한다. &Param3&초간 지속되며, 최대 &Param4&스택 중첩된다.", "Potential.516227.1": "세이나(기원)의 대검 공격과 「낙성」이 입히는 &Param1_kr1& 증가한다.", @@ -2379,6 +2379,6 @@ "Potential.516241.2": "세이나(기원)가 장검 형태의 필살기 「극성섬광 파열참」을 시전하면 「섬광」을 7개 발사해, 1개마다 최대 HP &Param1&의 빛 속성 스킬 피해를 입힌다. \u000b세이나(기원)의 &Param2_kr1& &Param3& 증가한다.", "Potential.516242.1": "세이나(기원)가 대검 형태의 필살기 「극성섬광 파열참」을 시전한 후 영역을 생성해 목표를 공격한다. 세이나(기원)의 &Param2_kr1& 증가한다.", "Potential.516242.2": "세이나(기원)가 대검 형태의 필살기 「극성섬광 파열참」을 시전한 후 영역을 생성해 최대 HP &Param1&x6의 빛 속성 일반 공격 피해를 입힌다. \u000b세이나(기원)의 &Param2_kr1& &Param3& 증가한다.", - "Potential.516243.1": "세이나가 「극성」 상태일 때 자신의 &Param1_kr1& 추가로 증가한다. 동시에 일정 시간마다 SP를 회복한다.", - "Potential.516243.2": "세이나가 「극성」 상태일 때 자신의 &Param1_kr1& &Param2& 추가로 증가한다. 동시에 &Param3&초마다 SP를 &Param4& 회복한다." + "Potential.516243.1": "세이나(기원)가 「극성」 상태일 때 자신의 &Param1_kr1& 추가로 증가한다. 동시에 일정 시간마다 SP를 회복한다.", + "Potential.516243.2": "세이나(기원)가 「극성」 상태일 때 자신의 &Param1_kr1& &Param2& 추가로 증가한다. 동시에 &Param3&초마다 SP를 &Param4& 회복한다." } \ No newline at end of file diff --git a/data/language/ko_kr/skill.json b/data/language/ko_kr/skill.json index 19996d8d1..4995008e0 100644 --- a/data/language/ko_kr/skill.json +++ b/data/language/ko_kr/skill.json @@ -1372,8 +1372,8 @@ "Skill.8211501.13": "전방에 레이저 빔을 발사한다. \n호타루가 스킬을 시전한 후 모든 피해에 면역된다. 일정 시간 지속된다.", "Skill.8211501.2": "전방에 레이저 빔을 발사한다. \n호타루가 스킬을 시전한 후 모든 피해에 면역된다. 일정 시간 지속된다.", "Skill.8213901.1": "전문가의 마무리 작업", - "Skill.8213901.13": "아이템을 획득할 때마다 「청소 표식」 1개를 생성한다. 최대 3스택 중첩된다. \n스킬 시전 시 엘리가 장검을 휘둘러 순환 참격을 시전해 계속하며, 서리의 칼날을 발사해 범위 피해를 입힌다. \n스킬 시전 시 「청소 표식」 3개를 보유하고 있다면, 순환 참격 종료 후 장검의 환영을 추가로 생성해 피해를 입힌다.", - "Skill.8213901.2": "아이템을 획득할 때마다 「청소 표식」 1개를 생성한다. 최대 3스택 중첩된다. \n스킬 시전 시 엘리가 장검을 휘둘러 순환 참격을 시전해 계속하며, 서리의 칼날을 발사해 범위 피해를 입힌다. \n스킬 시전 시 「청소 표식」 3개를 보유하고 있다면, 순환 참격 종료 후 장검의 환영을 추가로 생성해 피해를 입힌다.", + "Skill.8213901.13": "아이템을 획득할 때마다 위로 서리의 칼날을 발사하며 「청소 표식」 1개를 생성한다. 최대 3스택 중첩된다. \n스킬 시전 시 엘리가 장검을 휘둘러 순환 참격을 시전해 계속하며, 서리의 칼날을 발사해 범위 피해를 입힌다. \n스킬 시전 시 「청소 표식」 3개를 보유하고 있다면, 순환 참격 종료 후 장검의 환영을 추가로 생성해 피해를 입힌다.", + "Skill.8213901.2": "아이템을 획득할 때마다 위로 서리의 칼날을 발사하며 「청소 표식」 1개를 생성한다. 최대 3스택 중첩된다. \n스킬 시전 시 엘리가 장검을 휘둘러 순환 참격을 시전해 계속하며, 서리의 칼날을 발사해 범위 피해를 입힌다. \n스킬 시전 시 「청소 표식」 3개를 보유하고 있다면, 순환 참격 종료 후 장검의 환영을 추가로 생성해 피해를 입힌다.", "Skill.8214501.1": "허공의 꽃", "Skill.8214501.13": "구슬을 제어하여 폭발시키고, 이후 사방으로 여러 개의 쿠나이를 발사한다. \n오토하가 아이템을 획득하면 전방으로 쿠나이 1개를 발사한다.", "Skill.8214501.2": "구슬을 제어하여 폭발시키고, 이후 사방으로 여러 개의 쿠나이를 발사한다. \n오토하가 아이템을 획득하면 전방으로 쿠나이 1개를 발사한다.", diff --git a/data/language/ko_kr/story.json b/data/language/ko_kr/story.json index 3144e72a2..9893bacee 100644 --- a/data/language/ko_kr/story.json +++ b/data/language/ko_kr/story.json @@ -135,7 +135,7 @@ "Story.1108.2": "옷이 날개라는 말은…… 이곳에선 오직 옷차림밖에 볼 수 없기 때문이야.", "Story.1108.4": "07", "Story.1109.1": "금기의 소원", - "Story.1109.2": "그것과 함께 깊이 묻혀진 건 그녀의 지난날과 아픔이었다.", + "Story.1109.2": "그것과 함께 깊이 파묻힌 건 그녀의 지난날과 아픔이었다.", "Story.1109.4": "08", "Story.111.1": "기억을 채우는 방식", "Story.111.2": "기억상실을 막는 방법은 더 많은 재미있는 기억을 만드는 것이다.", diff --git a/data/language/ko_kr/uitext.json b/data/language/ko_kr/uitext.json index 7ac82c6c8..7503be42d 100644 --- a/data/language/ko_kr/uitext.json +++ b/data/language/ko_kr/uitext.json @@ -1021,8 +1021,9 @@ "UIText.DormBtn_ShowFurniture.1": "가구 표시", "UIText.DormBtn_UIShow.1": "다이얼 열기", "UIText.DormBtn_ViewMode.1": "감상 모드", - "UIText.DormBtn_Visit.1": "방문", + "UIText.DormBtn_Visit.1": "친구 방문", "UIText.DormFriend_EmptyHint.1": "친구가 없습니다", + "UIText.DormFriend_Visit.1": "방문", "UIText.DormMainMenu_Knowledge.1": "여행가 백과", "UIText.DormQuest_Title.1": "보물 수집의 길", "UIText.DormReward_FastReceive.1": "선물 받기", @@ -1052,7 +1053,7 @@ "UIText.Dorm_Editor_SaveSuccess.1": "저장 완료", "UIText.Dorm_FriendRoot_Elevator.1": "친구 승강기", "UIText.Dorm_FriendRoot_Visit.1": "친구 방문", - "UIText.Dorm_Friend_LikeLimit.1": "좋아요 횟수를 모두 사용하였습니다", + "UIText.Dorm_Friend_LikeLimit.1": "일일 최대 좋아요 횟수는 3회입니다.", "UIText.Dorm_Friend_PanelTitle.1": "친구 방문", "UIText.Dorm_FurnitreSaveCDHint.1": "조작이 너무 빠릅니다. 5초 후 다시 시도해 주세요.", "UIText.Dorm_FurnitureList_Tog1.1": "가구", @@ -1069,6 +1070,7 @@ "UIText.Dorm_GiftCountMaxHint.1": "오늘 이미 해당 여행가에게 선물을 보냈습니다.", "UIText.Dorm_GiftDesc.1": "매일 여행가 6명에게 선물을 줄 수 있으며, 각 여행가는 매일 1회 선물을 받을 수 있습니다. 선물은 하트챗 선물과 별도로 계산됩니다.", "UIText.Dorm_GiftEmptyTitle.1": "줄 수 있는 선물이 없습니다.", + "UIText.Dorm_Go.1": "이 동", "UIText.Dorm_HandBook_Title.1": "보물 목록", "UIText.Dorm_HandBook_Tog1.1": "업적", "UIText.Dorm_HandBook_Tog2.1": "보물 세트", @@ -1078,7 +1080,7 @@ "UIText.Dorm_Hint_Err_FurniturePos.1": "현재 배치된 가구가 겹쳐 플랜을 저장할 수 없습니다.", "UIText.Dorm_Hint_Err_NoNeedToSave.1": "수정된 사항이 없습니다", "UIText.Dorm_Interaction_DayLimitHint.1": "오늘 쓰다듬기 횟수를 전부 사용했습니다.", - "UIText.Dorm_Interaction_NoCharHint.1": "현재 마왕의 탑에 상호작용할 수 있는 캐릭터가 없습니다.", + "UIText.Dorm_Interaction_NoCharHint.1": "현재 일괄 쓰다듬을 수 있는 여행가가 없습니다.", "UIText.Dorm_Interactive_GroupTitle.1": "이번 챕터 모든 임무 완료", "UIText.Dorm_ItemHint_RoomType1.1": "「실내」\n사용 가능", "UIText.Dorm_ItemHint_RoomType2.1": "「실외」\n사용 가능", @@ -1821,9 +1823,9 @@ "UIText.Guide_303_2.1": "턴이 끝나기 전에 최대한 많은 페이트 코인을 모아 스테이지를 클리어하는 것이 목표라는 거야.", "UIText.Guide_303_3.1": "때로는 페이트 코인을 소모해 다양한 버프 효과를 해제하는 것이 더 유리할 수 있다는 거예요. \u000b활약을 기대하겠다는 거예요!", "UIText.Guide_305_1.1": "새로운 도전을 맞이할 준비가 되었나요? \u000b그럼 바로 시작하죠.", - "UIText.Guide_305_2.1": "도전 모드에서는 각 난이도를 차례로 클리어해야 하며, 난이도마다 서로 다른 디버프가 적용됩니다.", + "UIText.Guide_305_2.1": "도전 모드에서는 각 난이도를 차례로 클리어해야 하며, 난이도마다 서로 다른 디버프가 적용된다는 거야.", "UIText.Guide_305_3.1": "이 모드에서는 칩이 유지되지 않으니, 이후 수익을 늘릴 수 있도록 칩을 사용해 보세요.", - "UIText.Guide_305_5.1": "난이도마다 조수 1명을 모집할 수 있습니다. 조수마다 다른 특성을 잘 활용해 익스트림의 거울을 정복해 보세요~", + "UIText.Guide_305_5.1": "난이도마다 조수 1명을 모집할 수 있어. 조수마다 다른 특성을 잘 활용해 익스트림의 거울을 정복해 보라는 거야~", "UIText.Guide_32_1.1": "이것은 이번 탐색 중 획득한 모든 소리입니다.", "UIText.Guide_32_2.1": "특정한 소리의 조합으로 협주 스킬을 활성화할 수 있습니다.", "UIText.Guide_32_3.1": "매 탐색마다 다시 소리를 수집해야 하며,\r\n소리와 협주 스킬은 ‘기록’에서 중요한 부분입니다.", diff --git a/data/language/zh_cn/uitext.json b/data/language/zh_cn/uitext.json index 2aaa5453e..b8fa5386d 100644 --- a/data/language/zh_cn/uitext.json +++ b/data/language/zh_cn/uitext.json @@ -1021,8 +1021,9 @@ "UIText.DormBtn_ShowFurniture.1": "显示家具", "UIText.DormBtn_UIShow.1": "唤出仪盘", "UIText.DormBtn_ViewMode.1": "观赏模式", - "UIText.DormBtn_Visit.1": "巡访", + "UIText.DormBtn_Visit.1": "出巡好友", "UIText.DormFriend_EmptyHint.1": "暂无好友", + "UIText.DormFriend_Visit.1": "巡访", "UIText.DormMainMenu_Knowledge.1": "旅人百科", "UIText.DormQuest_Title.1": "聚宝之路", "UIText.DormReward_FastReceive.1": "领取馈赠", @@ -1051,8 +1052,8 @@ "UIText.Dorm_Editor_Save.1": "保存", "UIText.Dorm_Editor_SaveSuccess.1": "保存成功", "UIText.Dorm_FriendRoot_Elevator.1": "好友升降梯", - "UIText.Dorm_FriendRoot_Visit.1": "好友拜访", - "UIText.Dorm_Friend_LikeLimit.1": "点赞次数达到上限", + "UIText.Dorm_FriendRoot_Visit.1": "出巡好友", + "UIText.Dorm_Friend_LikeLimit.1": "每日只可以给3位好友点赞", "UIText.Dorm_Friend_PanelTitle.1": "出巡好友", "UIText.Dorm_FurnitreSaveCDHint.1": "操作过快,请5s后重试", "UIText.Dorm_FurnitureList_Tog1.1": "家具", @@ -1069,6 +1070,7 @@ "UIText.Dorm_GiftCountMaxHint.1": "今天已经给该旅人送过礼物了", "UIText.Dorm_GiftDesc.1": "每日可以6位旅人赠礼,每位旅人每日可以被赠送一次礼物。赠礼与心链赠礼不共享次数。", "UIText.Dorm_GiftEmptyTitle.1": "没有礼物可以赠予", + "UIText.Dorm_Go.1": "前 往", "UIText.Dorm_HandBook_Title.1": "宝物名册", "UIText.Dorm_HandBook_Tog1.1": "伟业", "UIText.Dorm_HandBook_Tog2.1": "宝物套装", @@ -1078,7 +1080,7 @@ "UIText.Dorm_Hint_Err_FurniturePos.1": "当前布置存在家具重叠,方案无法保存", "UIText.Dorm_Hint_Err_NoNeedToSave.1": "当前无修改", "UIText.Dorm_Interaction_DayLimitHint.1": "今日轻抚次数已达上限", - "UIText.Dorm_Interaction_NoCharHint.1": "当前魔王之塔内没有可交互的角色", + "UIText.Dorm_Interaction_NoCharHint.1": "当前没有可批量轻抚的旅人", "UIText.Dorm_Interactive_GroupTitle.1": "完成本章所有任务", "UIText.Dorm_ItemHint_RoomType1.1": "【室内】\n可用", "UIText.Dorm_ItemHint_RoomType2.1": "【室外】\n可用", diff --git a/lua/game/adventure/infinitytower/infinitytowerlevel.lua b/lua/game/adventure/infinitytower/infinitytowerlevel.lua index 6a1c40d1e..068f4faff 100644 --- a/lua/game/adventure/infinitytower/infinitytowerlevel.lua +++ b/lua/game/adventure/infinitytower/infinitytowerlevel.lua @@ -134,7 +134,7 @@ function InfinityTowerLevel:OnEvent_UnloadComplete() self.parent:EnterInfinityTowerAgainNext() end function InfinityTowerLevel:OnEvnet_Pause() - EventManager.Hit("show_Infinity_Pause", self.lvRunTime, self.tbCharId) + EventManager.Hit("show_Infinity_Pause", self.lvRunTime, self.tbCharId, self.tbCharTrialId) end function InfinityTowerLevel:OnEvent_AbandonBattle() self:OnEvent_InfinityTowerEnd(3) diff --git a/lua/game/adventure/tracehunt/tracehuntlevel.lua b/lua/game/adventure/tracehunt/tracehuntlevel.lua index 4f78f4fea..2a547d06b 100644 --- a/lua/game/adventure/tracehunt/tracehuntlevel.lua +++ b/lua/game/adventure/tracehunt/tracehuntlevel.lua @@ -112,7 +112,7 @@ function TraceHuntLevel:SetDiscInfo() end function TraceHuntLevel:OnEvent_Pause() if self.isCanPause then - EventManager.Hit("OpenTraceHuntPause", self.LevelId, self.tbCharId, self.parent.bSelfBoss) + EventManager.Hit("OpenTraceHuntPause", self.LevelId, self.tbCharId, self.parent.bSelfBoss, self.tbCharTrialId) end end function TraceHuntLevel:OnEvent_AbandonBattle() diff --git a/lua/game/common/utils/jumputil.lua b/lua/game/common/utils/jumputil.lua index 544ec7c40..92fb1bd20 100644 --- a/lua/game/common/utils/jumputil.lua +++ b/lua/game/common/utils/jumputil.lua @@ -45,8 +45,9 @@ function JumpUtil.JumpTo(jumpId, ...) local transitionOpenCallback = function() JumpUtil.DoJump(jumpId, table.unpack(args)) end + local nUseTransitionId = nTransitionId == 0 and 1 or nTransitionId if bNeedTransition then - EventManager.Hit(EventId.SetTransition, nTransitionId, transitionOpenCallback, nTransitionType) + EventManager.Hit(EventId.SetTransition, nUseTransitionId, transitionOpenCallback, nTransitionType) else transitionOpenCallback() end @@ -138,7 +139,7 @@ function JumpUtil.JumpCheckAndTransition(jumpId, callback, ...) end callback(true, false, 0) elseif nType == GameEnum.jumpType.InfinityTower then - callback(true, true, 0) + callback(true, true, 8) elseif nType == GameEnum.jumpType.Phone then local openCallback = function() callback(true, false, 0) diff --git a/lua/game/ui/activity/reengagement/reengagementbdpreviewitemctrl.lua b/lua/game/ui/activity/reengagement/reengagementbdpreviewitemctrl.lua index 0582348c9..bf38efdd4 100644 --- a/lua/game/ui/activity/reengagement/reengagementbdpreviewitemctrl.lua +++ b/lua/game/ui/activity/reengagement/reengagementbdpreviewitemctrl.lua @@ -25,7 +25,7 @@ ReengagementBDPreviewItemCtrl._mapNodeConfig = { } ReengagementBDPreviewItemCtrl._mapEventConfig = {} function ReengagementBDPreviewItemCtrl:Refresh(nTrialBuildId) - self.mapBuildData = PlayerData.Build:GetTrialBuild(nTrialBuildId) + self.mapBuildData = PlayerData.Build:GetLimitedTrialBuild(nTrialBuildId) if self.mapBuildData == nil then self.gameObject:SetActive(false) return @@ -70,7 +70,7 @@ function ReengagementBDPreviewItemCtrl:OnClickItem() if self.mapBuildData == nil then return end - self.mapBuildData = PlayerData.Build:GetTrialBuild(self.mapBuildData.nBuildId) + self.mapBuildData = PlayerData.Build:GetLimitedTrialBuild(self.mapBuildData.nBuildId) if self.mapBuildData == nil then return end diff --git a/lua/game/ui/activitytheme/levelcommon/activitylevelsinstancepausectrl.lua b/lua/game/ui/activitytheme/levelcommon/activitylevelsinstancepausectrl.lua index 6c5a64a72..6141c1d20 100644 --- a/lua/game/ui/activitytheme/levelcommon/activitylevelsinstancepausectrl.lua +++ b/lua/game/ui/activitytheme/levelcommon/activitylevelsinstancepausectrl.lua @@ -233,7 +233,7 @@ end function ActivityLevelsInstancePauseCtrl:OnBtnClick_Char(btn, nIndex) end function ActivityLevelsInstancePauseCtrl:OnBtnClick_Skill(btn) - EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar) + EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId) self._mapNode.ActionBar.gameObject:SetActive(false) end function ActivityLevelsInstancePauseCtrl:OnBtnClick_Settings(btn) diff --git a/lua/game/ui/avg/_en/config/cg_162_02.lua b/lua/game/ui/avg/_en/config/cg_162_02.lua index 51983760f..a7a15ba72 100644 --- a/lua/game/ui/avg/_en/config/cg_162_02.lua +++ b/lua/game/ui/avg/_en/config/cg_162_02.lua @@ -3999,7 +3999,7 @@ return { "", false, "", - "Elena's so fired up. I'd better do my best to help her out.", + "Alina's so fired up. I'd better do my best to help her out.", "" } }, diff --git a/lua/game/ui/avg/_en/config/stm10001_09.lua b/lua/game/ui/avg/_en/config/stm10001_09.lua index 9d4a53d1b..57e488dc4 100644 --- a/lua/game/ui/avg/_en/config/stm10001_09.lua +++ b/lua/game/ui/avg/_en/config/stm10001_09.lua @@ -7464,7 +7464,7 @@ return { "vo_STm10_05_068", false, "", - "That was also the name \"Alina Colossi\" was born into this world.", + "That was also when the name \"Alina Colossi\" was born into this world.", "" } }, diff --git a/lua/game/ui/avg/_kr/config/stm01_04.lua b/lua/game/ui/avg/_kr/config/stm01_04.lua index 42a05ff13..be978ad5d 100644 --- a/lua/game/ui/avg/_kr/config/stm01_04.lua +++ b/lua/game/ui/avg/_kr/config/stm01_04.lua @@ -948,7 +948,7 @@ return { "", false, "", - "그래서…… 앞으로의 일 얘기인데, 마왕님 생각을 들려주지 않을래?", + "그래서…… 앞으로의 일 얘기인데, ==PLAYER_NAME==의 생각을 들려주지 않을래?", "" } }, @@ -1037,7 +1037,7 @@ return { "", false, "", - "피킨을 궁지에 몰아붙인 그 멋진 추리는, 마왕님만이 할 수 있는 거야!", + "피킨을 궁지에 몰아붙인 그 멋진 추리는, ==PLAYER_NAME==만이 할 수 있는 거야!", "" } }, diff --git a/lua/game/ui/battle/chapterpausectrl.lua b/lua/game/ui/battle/chapterpausectrl.lua index 0b15dfacf..addbff843 100644 --- a/lua/game/ui/battle/chapterpausectrl.lua +++ b/lua/game/ui/battle/chapterpausectrl.lua @@ -198,14 +198,14 @@ end function ChapterPauseCtrl:OnBtnClick_Char(btn, nIndex) end function ChapterPauseCtrl:OnBtnClick_Skill(btn) - local tbCharId, tbTrial = {}, {} + local tbCharId, mapCharTrialId = {}, {} for _, v in ipairs(self.tbChar) do table.insert(tbCharId, v.nTid) if v.nTrialId then - table.insert(tbTrial, v.nTrialId) + mapCharTrialId[v.nTid] = v.nTrialId end end - EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, tbCharId, false, tbTrial) + EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, tbCharId, false, mapCharTrialId) self._mapNode.ActionBar.gameObject:SetActive(false) end function ChapterPauseCtrl:OnBtnClick_Settings(btn) diff --git a/lua/game/ui/battle/mainbattlepausectrl.lua b/lua/game/ui/battle/mainbattlepausectrl.lua index 9a326cc3d..bab3a29e2 100644 --- a/lua/game/ui/battle/mainbattlepausectrl.lua +++ b/lua/game/ui/battle/mainbattlepausectrl.lua @@ -202,14 +202,14 @@ end function MainBattlePauseCtrl:OnBtnClick_Char(btn, nIndex) end function MainBattlePauseCtrl:OnBtnClick_Skill(btn) - local tbCharId, tbTrial = {}, {} + local tbCharId, mapCharTrialId = {}, {} for _, v in ipairs(self.tbChar) do table.insert(tbCharId, v.nTid) if v.nTrialId then - table.insert(tbTrial, v.nTrialId) + mapCharTrialId[v.nTid] = v.nTrialId end end - EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, tbCharId, false, tbTrial) + EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, tbCharId, false, mapCharTrialId) self._mapNode.ActionBar.gameObject:SetActive(false) end function MainBattlePauseCtrl:OnBtnClick_Settings(btn) diff --git a/lua/game/ui/commontipsex/popupskillctrl.lua b/lua/game/ui/commontipsex/popupskillctrl.lua index 634644c64..f77b0237e 100644 --- a/lua/game/ui/commontipsex/popupskillctrl.lua +++ b/lua/game/ui/commontipsex/popupskillctrl.lua @@ -177,20 +177,20 @@ function PopupSkillCtrl:OnEnable() local tbParam = self:GetPanelParam() self.tbChar = tbParam[1] local bNoMask = tbParam[2] - local tbTrialId = tbParam[3] + local mapCharTrialId = tbParam[3] self.mapCharInfo = tbParam[4] local nSelectCharId = tbParam[5] self.bOutBattle = tbParam[6] self._mapNode.aniBlur.gameObject:SetActive(not bNoMask) self._mapNode.aniBlur2.gameObject:SetActive(bNoMask) self.mapCharSkill = {} - local bTrial = tbTrialId and 0 < #tbTrialId - for k, nCharId in ipairs(self.tbChar) do + for _, nCharId in ipairs(self.tbChar) do local mapChar = self.mapCharInfo and self.mapCharInfo[nCharId] + local nTrialId = mapCharTrialId and mapCharTrialId[nCharId] if mapChar and mapChar.tbSkillAddedLvs then self.mapCharSkill[nCharId] = clone(mapChar.tbSkillAddedLvs) - elseif bTrial then - self.mapCharSkill[nCharId] = PlayerData.Char:GetTrialCharSkillAddedLevel(tbTrialId[k]) + elseif type(nTrialId) == "number" and 0 < nTrialId then + self.mapCharSkill[nCharId] = PlayerData.Char:GetAnyTrialCharSkillAddedLevel(nTrialId) elseif self.mapCharInfo == nil or next(self.mapCharInfo) == nil then self.mapCharSkill[nCharId] = PlayerData.Char:GetCharSkillAddedLevel(nCharId) else diff --git a/lua/game/ui/dailyinstanceroominfo/dailyinstancepausectrl.lua b/lua/game/ui/dailyinstanceroominfo/dailyinstancepausectrl.lua index ca796882f..9ca45d96a 100644 --- a/lua/game/ui/dailyinstanceroominfo/dailyinstancepausectrl.lua +++ b/lua/game/ui/dailyinstanceroominfo/dailyinstancepausectrl.lua @@ -231,7 +231,7 @@ end function DailyInstancePauseCtrl:OnBtnClick_Char(btn, nIndex) end function DailyInstancePauseCtrl:OnBtnClick_Skill(btn) - EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar) + EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId) self._mapNode.ActionBar.gameObject:SetActive(false) end function DailyInstancePauseCtrl:OnBtnClick_Settings(btn) diff --git a/lua/game/ui/dorm/dormcharselect/dormselectcharctrl.lua b/lua/game/ui/dorm/dormcharselect/dormselectcharctrl.lua index 510979942..8d2076748 100644 --- a/lua/game/ui/dorm/dormcharselect/dormselectcharctrl.lua +++ b/lua/game/ui/dorm/dormcharselect/dormselectcharctrl.lua @@ -242,20 +242,16 @@ function DormSelectCharCtrl:FilterChar() self.tbSortedChar = {} for _, data in pairs(self.tbAllChar) do local mapCharCfgData = ConfigTable.GetData_Character(data.nId) - local mapDormCharCfgData = ConfigTable.GetData("DormRole", data.nId, false) + local mapDormCharCfgData = ConfigTable.GetData("DormRole", data.nId, true) local bAvailable = mapCharCfgData.Available and mapDormCharCfgData ~= nil if bAvailable then - local isFilter = PlayerData.Filter:CheckFilterByChar(data.nId) - local bCur = table.indexof(self.curChar, data.nId) > 0 - if isFilter or bCur then - local mapSkill = PlayerData.Char:GetCharSkillUpgradeData(data.nId) - local nSkillLevelSum = 0 - for k, v in pairs(mapSkill) do - nSkillLevelSum = nSkillLevelSum + v.nLv - end - data.SkillLevel = nSkillLevelSum - table.insert(self.tbSortedChar, data) + local mapSkill = PlayerData.Char:GetCharSkillUpgradeData(data.nId) + local nSkillLevelSum = 0 + for k, v in pairs(mapSkill) do + nSkillLevelSum = nSkillLevelSum + v.nLv end + data.SkillLevel = nSkillLevelSum + table.insert(self.tbSortedChar, data) end end print("过滤后 charCount:" .. #self.tbSortedChar) diff --git a/lua/game/ui/dorm/dormcontact/dormcontactbtnlistctrl.lua b/lua/game/ui/dorm/dormcontact/dormcontactbtnlistctrl.lua index e5e21796f..1f745fd8a 100644 --- a/lua/game/ui/dorm/dormcontact/dormcontactbtnlistctrl.lua +++ b/lua/game/ui/dorm/dormcontact/dormcontactbtnlistctrl.lua @@ -155,8 +155,27 @@ function DormContactBtnListCtrl:RemoveRewardHud(nEntityId, nFurId) removedIdx = nIdx end end - local removedInfo = table.remove(self.mapListBtn[nEntityId], removedIdx) - self:RecycleBtnItem(removedInfo.goItem) + if 0 < removedIdx then + local removedInfo = table.remove(self.mapListBtn[nEntityId], removedIdx) + self:RecycleBtnItem(removedInfo.goItem) + end +end +function DormContactBtnListCtrl:RemoveAllRewardHud() + if self.mapListBtn == nil then + return + end + for _, tbBtnInfo in pairs(self.mapListBtn) do + local removedIdx = 0 + for nIdx, mapInfo in ipairs(tbBtnInfo) do + if mapInfo.nType == 4 then + removedIdx = nIdx + end + end + if 0 < removedIdx then + local removedInfo = table.remove(tbBtnInfo, removedIdx) + self:RecycleBtnItem(removedInfo.goItem) + end + end end function DormContactBtnListCtrl:RemoveInteractiveBtn(nEntityId) if self.mapListBtn[nEntityId] ~= nil then diff --git a/lua/game/ui/dorm/dormfriend/dormfriendgridctrl.lua b/lua/game/ui/dorm/dormfriend/dormfriendgridctrl.lua index 5a1a3f839..c8387b94d 100644 --- a/lua/game/ui/dorm/dormfriend/dormfriendgridctrl.lua +++ b/lua/game/ui/dorm/dormfriend/dormfriendgridctrl.lua @@ -24,7 +24,7 @@ DormFriendGridCtrl._mapNodeConfig = { imgHead = {sComponentName = "Image"}, TMPBtnVisit = { sComponentName = "TMP_Text", - sLanguageId = "DormBtn_Visit" + sLanguageId = "DormFriend_Visit" } } DormFriendGridCtrl._mapEventConfig = {} diff --git a/lua/game/ui/dorm/dorminteractive/dorminteractivectrl.lua b/lua/game/ui/dorm/dorminteractive/dorminteractivectrl.lua index 9234ba98e..9ce12153b 100644 --- a/lua/game/ui/dorm/dorminteractive/dorminteractivectrl.lua +++ b/lua/game/ui/dorm/dorminteractive/dorminteractivectrl.lua @@ -597,6 +597,7 @@ function DormInteractiveCtrl:OnBtnClick_ReceiveDormReward() local afterIds = self._panel:GetDormRewardId() self._mapNode.rtGiftHint:SetActive(0 < #afterIds) self:CheckRewardFurnitureHuds() + self._mapNode.rtContact:RemoveAllRewardHud() UTILS.OpenReceiveByChangeInfo(changeInfo) DormGuideAdapter.NoteQuest(nil, true) end diff --git a/lua/game/ui/dorm/dormroomselectpanel/dormroomgridctrl.lua b/lua/game/ui/dorm/dormroomselectpanel/dormroomgridctrl.lua index 89098716d..d86dc55b9 100644 --- a/lua/game/ui/dorm/dormroomselectpanel/dormroomgridctrl.lua +++ b/lua/game/ui/dorm/dormroomselectpanel/dormroomgridctrl.lua @@ -6,15 +6,9 @@ DormRoomGridCtrl._mapNodeConfig = { imgNameBg = {}, imgLock = {}, TMPRoomName = {sComponentName = "TMP_Text"}, - txtBtnGo = { - sComponentName = "TMP_Text", - sLanguageId = "MainView_Go" - }, + txtBtnGo = {sComponentName = "TMP_Text", sLanguageId = "Dorm_Go"}, TMPRoomNotAvailable = {sComponentName = "TMP_Text"}, - txtBtnGoGray = { - sComponentName = "TMP_Text", - sLanguageId = "MainView_Go" - }, + txtBtnGoGray = {sComponentName = "TMP_Text", sLanguageId = "Dorm_Go"}, btnGo = { sComponentName = "UIButton", callback = "OnBtnClick_Go" diff --git a/lua/game/ui/dorm/musicselect/dormmusicselectctrl.lua b/lua/game/ui/dorm/musicselect/dormmusicselectctrl.lua index 1a73e36b4..cdb0dffe5 100644 --- a/lua/game/ui/dorm/musicselect/dormmusicselectctrl.lua +++ b/lua/game/ui/dorm/musicselect/dormmusicselectctrl.lua @@ -96,10 +96,7 @@ function DormMusicSelectCtrl:FilterDisc() for _, data in pairs(self.tbAllDisc) do local mapCfg = ConfigTable.GetData("Disc", data.nId) if mapCfg.Visible then - local isFilter = PlayerData.Filter:CheckFilterByDisc(data.nId) - if isFilter then - table.insert(self.tbSortedDisc, data) - end + table.insert(self.tbSortedDisc, data) end end end diff --git a/lua/game/ui/equipmentinstanceroominfo/equipmentinstancepausectrl.lua b/lua/game/ui/equipmentinstanceroominfo/equipmentinstancepausectrl.lua index a038c0b46..e3b064ca0 100644 --- a/lua/game/ui/equipmentinstanceroominfo/equipmentinstancepausectrl.lua +++ b/lua/game/ui/equipmentinstanceroominfo/equipmentinstancepausectrl.lua @@ -236,7 +236,7 @@ end function EquipmentInstancePauseCtrl:OnBtnClick_Char(btn, nIndex) end function EquipmentInstancePauseCtrl:OnBtnClick_Skill(btn) - EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar) + EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId) self._mapNode.ActionBar.gameObject:SetActive(false) end function EquipmentInstancePauseCtrl:OnBtnClick_Settings(btn) diff --git a/lua/game/ui/gachaex/gachactrl.lua b/lua/game/ui/gachaex/gachactrl.lua index e76da7539..a769c94cd 100644 --- a/lua/game/ui/gachaex/gachactrl.lua +++ b/lua/game/ui/gachaex/gachactrl.lua @@ -668,7 +668,11 @@ function GachaCtrl:GachaOneExchangeCoin(mapGacha) else sTips = orderedFormat(ConfigTable.GetUIText("Recruit_Exchange"), nNeedCount, mapCostCfgData.Id, mapGachaStorage.DefaultQty - nDefaultCount, mapDefaultCfgData.Id) end - ConfirmPanel(sTips, confirmCallback, "GachaShowTicketExchange") + local tips = "GachaShowTicketExchange" + if mapGacha.Id == 1001 then + tips = nil + end + ConfirmPanel(sTips, confirmCallback, tips) else EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("NotEnoughItem")) end @@ -786,7 +790,11 @@ function GachaCtrl:GachaTenExchangeCoin(mapGacha) else sTips = orderedFormat(ConfigTable.GetUIText("Recruit_Exchange"), nNeedCount, mapCostCfgData.Id, mapGachaStorage.DefaultQty * 10 - nSpecificCount - nDefaultCount, mapDefaultCfgData.Id) end - ConfirmPanel(sTips, confirmCallback, "GachaShowTicketExchange") + local tips = "GachaShowTicketExchange" + if mapGacha.Id == 1001 then + tips = nil + end + ConfirmPanel(sTips, confirmCallback, tips) else EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("NotEnoughItem")) end diff --git a/lua/game/ui/infinitytower/infinitytowerpausectrl.lua b/lua/game/ui/infinitytower/infinitytowerpausectrl.lua index 166f82ac6..17cd25e24 100644 --- a/lua/game/ui/infinitytower/infinitytowerpausectrl.lua +++ b/lua/game/ui/infinitytower/infinitytowerpausectrl.lua @@ -124,8 +124,9 @@ function InfinityTowerPauseCtrl:OnDestroy() end function InfinityTowerPauseCtrl:OnRelease() end -function InfinityTowerPauseCtrl:OnEvent_ShowInfinityPause(runTime, tbChar) +function InfinityTowerPauseCtrl:OnEvent_ShowInfinityPause(runTime, tbChar, mapCharTrialId) self.tbChar = tbChar + self._mapCharTrialId = mapCharTrialId EventManager.Hit(EventId.BattleDashboardVisible, false) PanelManager.InputDisable() local lvId = PlayerData.InfinityTower:GetCurrentLv() @@ -341,7 +342,7 @@ function InfinityTowerPauseCtrl:OnPanelClose(_, bGiveUp) end end function InfinityTowerPauseCtrl:OnBtnClick_Skill(btn) - EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, true) + EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, true, self._mapCharTrialId) self._mapNode.ActionBar.gameObject:SetActive(false) end function InfinityTowerPauseCtrl:OnBtnClick_Settings(btn) diff --git a/lua/game/ui/mainlineex_dustdawnstory/mainlineex_dustdawnstoryctrl.lua b/lua/game/ui/mainlineex_dustdawnstory/mainlineex_dustdawnstoryctrl.lua index f35d9a07f..462af1330 100644 --- a/lua/game/ui/mainlineex_dustdawnstory/mainlineex_dustdawnstoryctrl.lua +++ b/lua/game/ui/mainlineex_dustdawnstory/mainlineex_dustdawnstoryctrl.lua @@ -227,7 +227,7 @@ function MainlineEx_DustDawnStoryCtrl:RefreshStoryList() if recentStoryId ~= 0 then for i = 1, #self.tbChapterStoryNumIds do if self.tbChapterStoryNumIds[i] == recentStoryId then - self:AddTimer(1, 0.1, function() + self:AddTimer(1, 0.01, function() local time = self.bInit and 0 or self.nScrollTime self._mapNode.svStory:SetScrollGridPos(i, time, 0) self.bInit = true diff --git a/lua/game/ui/regionbosstimeex/regionbosspausectrl.lua b/lua/game/ui/regionbosstimeex/regionbosspausectrl.lua index 170ac56a3..cdfa79008 100644 --- a/lua/game/ui/regionbosstimeex/regionbosspausectrl.lua +++ b/lua/game/ui/regionbosstimeex/regionbosspausectrl.lua @@ -277,7 +277,7 @@ end function RegionBossPauseCtrl:OnBtnClick_Char(btn, nIndex) end function RegionBossPauseCtrl:OnBtnClick_Skill(btn) - EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar) + EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId) self._mapNode.ActionBar.gameObject:SetActive(false) end function RegionBossPauseCtrl:OnBtnClick_Settings(btn) diff --git a/lua/game/ui/skillinstanceroominfo/skillinstancepausectrl.lua b/lua/game/ui/skillinstanceroominfo/skillinstancepausectrl.lua index 20c620f2e..1bdfc18a7 100644 --- a/lua/game/ui/skillinstanceroominfo/skillinstancepausectrl.lua +++ b/lua/game/ui/skillinstanceroominfo/skillinstancepausectrl.lua @@ -236,7 +236,7 @@ end function SkillInstancePauseCtrl:OnBtnClick_Char(btn, nIndex) end function SkillInstancePauseCtrl:OnBtnClick_Skill(btn) - EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar) + EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId) self._mapNode.ActionBar.gameObject:SetActive(false) end function SkillInstancePauseCtrl:OnBtnClick_Settings(btn) diff --git a/lua/game/ui/soldier/recommend/soldierrecommendcharitemctrl.lua b/lua/game/ui/soldier/recommend/soldierrecommendcharitemctrl.lua index af4041231..1fdaf9c38 100644 --- a/lua/game/ui/soldier/recommend/soldierrecommendcharitemctrl.lua +++ b/lua/game/ui/soldier/recommend/soldierrecommendcharitemctrl.lua @@ -1,64 +1,101 @@ -local SoldierCharCardItemCtrl = require("Game.UI.Soldier.Template.Character.SoldierCharCardItemCtrl") -local SoldierRecommendCharItemCtrl = class("SoldierRecommendCharItemCtrl", SoldierCharCardItemCtrl) +local SoldierRecommendCharItemCtrl = class("SoldierRecommendCharItemCtrl", BaseCtrl) +local MAX_STAR = 5 +local SetActiveIfChanged = function(goNode, bActive) + if goNode.activeSelf ~= bActive then + goNode:SetActive(bActive) + end +end +SoldierRecommendCharItemCtrl._mapNodeConfig = { + btnItem = { + sComponentName = "UIButton", + callback = "OnBtnItemClick" + }, + Star = {nCount = MAX_STAR}, + goChar = {}, + imgEmpty = {}, + imageIcon = {sComponentName = "Image"}, + imageRarity = {sComponentName = "Image"}, + img_Position = {sComponentName = "Image"} +} SoldierRecommendCharItemCtrl._mapEventConfig = {} +SoldierRecommendCharItemCtrl._mapRedDotConfig = {} function SoldierRecommendCharItemCtrl:Awake() - SoldierCharCardItemCtrl.Awake(self) self._mapSpritePath = {} - self._mapNode.animRoot.enabled = false + local trAttribute = self._mapNode.goChar.transform:Find("imgAttribute") + if trAttribute ~= nil then + self._imgAttribute = trAttribute:GetComponent("Image") + end + local trAnimRoot = self._mapNode.btnItem.transform:Find("AnimRoot") + if trAnimRoot ~= nil then + local objAnimator = trAnimRoot:GetComponent("Animator") + if objAnimator ~= nil then + objAnimator.enabled = false + end + end end function SoldierRecommendCharItemCtrl:OnEnable() - SoldierCharCardItemCtrl.OnEnable(self) self:SetAttribute(self._nRecommendPosition) end -function SoldierRecommendCharItemCtrl:OnDisable() - self.bActive = false -end function SoldierRecommendCharItemCtrl:OnDestroy() - SoldierCharCardItemCtrl.OnDestroy(self) self._mapSpritePath = nil + self._imgAttribute = nil + self._objClickCallback = nil + self._fnClickCallback = nil end function SoldierRecommendCharItemCtrl:SetRecommendData(mapCharData, nPosition) - self._nRecommendPosition = nPosition if mapCharData == nil or mapCharData.nId == nil or mapCharData.nId == 0 then - self._nRecommendPosition = nil - SoldierCharCardItemCtrl.SetItemData(self, nil) self.nCharId = nil - self.bInSandland = false - self._nRecommendStar = 0 - self:SetStar(0) + self._nRecommendPosition = nil + SetActiveIfChanged(self._mapNode.goChar, false) + SetActiveIfChanged(self._mapNode.imgEmpty, true) self:SetAttribute(nil) - self._mapNode.imgRecommend.gameObject:SetActive(false) - self:SetLock(false) - self:SetClickCallback(nil, nil) return end - self._nRecommendStar = mapCharData.nStar or 0 + SetActiveIfChanged(self._mapNode.imgEmpty, false) + SetActiveIfChanged(self._mapNode.goChar, true) if self.nCharId ~= mapCharData.nId then - SoldierCharCardItemCtrl.SetItemData(self, mapCharData.nId) - else - self:SetStar(self._nRecommendStar) + self.nCharId = mapCharData.nId + self:SetCharConfig(mapCharData.nId) end + self:SetStar(mapCharData.nStar or 0) + self._nRecommendPosition = nPosition self:SetAttribute(nPosition) end +function SoldierRecommendCharItemCtrl:SetCharConfig(nCharId) + local mapCharConfig = ConfigTable.GetData("SoldierCharacter", nCharId) + if mapCharConfig == nil then + return + end + if mapCharConfig.Rarity ~= nil then + self:SetPngSprite(self._mapNode.imageRarity, "Icon/SoldierOtherIcon/" .. AllEnum.SoldierChessRarityIcon[mapCharConfig.Rarity] .. AllEnum.SoldierChessIconSurfix.M) + end + local mapSkinConfig = ConfigTable.GetData("SoldierSkin", mapCharConfig.Skin) + if mapSkinConfig ~= nil then + self:SetPngSprite(self._mapNode.imageIcon, mapSkinConfig.Icon .. AllEnum.SoldierChessIconSurfix.M) + end + if mapCharConfig.Type ~= nil then + local mapChessType = CacheTable.GetData("_SoldierChessType", mapCharConfig.Type) + local sIcon = mapChessType ~= nil and mapChessType.Icon or "" + self:SetPngSprite(self._mapNode.img_Position, "Icon/SoldierOtherIcon/" .. sIcon) + end +end function SoldierRecommendCharItemCtrl:SetStar(nStar) - nStar = self._nRecommendStar or nStar or 0 if self.nStar == nStar then return end self.nStar = nStar - for nIndex = 1, self.MAX_STAR do - local bActive = nIndex <= nStar + for nIndex = 1, MAX_STAR do local goStar = self._mapNode.Star[nIndex] - local goFxStar = self._mapNode.FxStar[nIndex] - if goStar ~= nil and goStar.activeSelf ~= bActive then - goStar:SetActive(bActive) - end - if goFxStar ~= nil and goFxStar.activeSelf ~= bActive then - goFxStar:SetActive(bActive) + if goStar ~= nil then + SetActiveIfChanged(goStar, nIndex <= nStar) end end end function SoldierRecommendCharItemCtrl:SetAttribute(nPosition) + local imgAttribute = self._imgAttribute + if imgAttribute == nil then + return + end local bUnlock = false local sIcon if nPosition ~= nil and 1 <= nPosition and nPosition <= 3 then @@ -69,14 +106,20 @@ function SoldierRecommendCharItemCtrl:SetAttribute(nPosition) sIcon = "Icon/SoldierOtherIcon/" .. mapConfig.Icon end end - local imgAttribute = self._mapNode.imgAttribute - if imgAttribute.gameObject.activeSelf ~= bUnlock then - imgAttribute.gameObject:SetActive(bUnlock) - end + SetActiveIfChanged(imgAttribute.gameObject, bUnlock) if bUnlock then self:SetPngSprite(imgAttribute, sIcon) end end +function SoldierRecommendCharItemCtrl:SetClickCallback(obj, fn) + self._objClickCallback = obj + self._fnClickCallback = fn +end +function SoldierRecommendCharItemCtrl:OnBtnItemClick() + if self._fnClickCallback ~= nil and self.nCharId ~= nil then + self._fnClickCallback(self._objClickCallback, self.nCharId) + end +end function SoldierRecommendCharItemCtrl:SetPngSprite(imgObj, sPath, sSurfix) if sSurfix ~= nil then return BaseCtrl.SetPngSprite(self, imgObj, sPath, sSurfix) diff --git a/lua/game/ui/soldier/recommend/soldierrecommendctrl.lua b/lua/game/ui/soldier/recommend/soldierrecommendctrl.lua index 0353bf272..219fcc43e 100644 --- a/lua/game/ui/soldier/recommend/soldierrecommendctrl.lua +++ b/lua/game/ui/soldier/recommend/soldierrecommendctrl.lua @@ -1,5 +1,6 @@ local SoldierRecommendCtrl = class("SoldierRecommendCtrl", BaseCtrl) local SDKManager = CS.SDKManager.Instance +local HIDE_CELL_POS_Y = 100000 SoldierRecommendCtrl._mapNodeConfig = { Topbar = { sNodeName = "TopBarPanel", @@ -106,25 +107,40 @@ function SoldierRecommendCtrl:Awake() end function SoldierRecommendCtrl:OnEnable() self._bListActive = true - self._bWaitingEnterAnim = true - self:SetListInputBlocked(true) self._mapNode.btnHome.gameObject:SetActive(not self.bInSoldier) self:RefreshListHeader() local canvas = self.gameObject:GetComponent("Canvas") NovaAPI.SetCanvasSortingOrder(canvas, self._nSortingOrder + 1) local bNewCache = self._tbListCache == nil if bNewCache then - self.tbRecommendCellCtrl = {} self.tbRecommendData = {} self._tbListCache = {} + self._tbCellPool = {} + self._tbSlotIndex = {} + self._nPoolSize = nil self._nVisibleListState = nil end local svList = self._mapNode.sv_recommend + self._svRecommend = svList self._goRecommendTemplate = svList.transform:Find("grid").gameObject self._goRecommendTemplate:SetActive(false) self._rtRecommendContent = svList.content self._objRecommendLayout = self._rtRecommendContent:GetComponent("GridLayoutGroup") self._objRecommendLayout.enabled = false + local objLayout = self._objRecommendLayout + self._v2CellSize = objLayout.cellSize + self._nCellLeft = objLayout.padding.left + self._nCellTop = objLayout.padding.top + self._nCellBottom = objLayout.padding.bottom + self._nCellSpacing = objLayout.spacing.y + self._nCellStep = self._v2CellSize.y + self._nCellSpacing + if not self._bScrollListening then + self._fnOnListScroll = self._fnOnListScroll or function() + self:OnListScroll() + end + svList.onValueChanged:AddListener(self._fnOnListScroll) + self._bScrollListening = true + end local objFitter = self._rtRecommendContent:GetComponent("ContentSizeFitter") if objFitter ~= nil then objFitter.enabled = false @@ -132,9 +148,6 @@ function SoldierRecommendCtrl:OnEnable() self._rtRecommendContent.pivot = Vector2(0, 1) self._rtRecommendContent.anchorMin = Vector2(0, 1) self._rtRecommendContent.anchorMax = Vector2(1, 1) - self._rtRecommendContent.gameObject:SetActive(false) - NovaAPI.SetTMPText(self._mapNode.txtNoRcmd, ConfigTable.GetUIText("Soldier_Recommend_Loading")) - self._mapNode.rtEmpty.gameObject:SetActive(true) EventManager.Hit("SoldierRecommendPanel_Open") self._mapNode.goImport:SetActive(false) local tbListCache = self._tbListCache @@ -145,28 +158,10 @@ function SoldierRecommendCtrl:OnEnable() end end) end - if tbListCache[1] ~= nil and tbListCache[1].bLoaded and tbListCache[2] ~= nil and tbListCache[2].bLoaded then - self:ShowRecommendList() - end - local wait = function() - coroutine.yield(CS.UnityEngine.WaitForEndOfFrame()) - if not self._bListActive then - return - end - while self._bListActive and self.animator ~= nil and self.animator.isActiveAndEnabled do - local objState = self.animator:GetCurrentAnimatorStateInfo(0) - if not objState:IsName("SoldierRecommendPanel_in") or objState.normalizedTime >= 1 then - break - end - coroutine.yield(nil) - end - if not self._bListActive then - return - end - self._bWaitingEnterAnim = false - self:RefreshRecommendList() - end - self._coOpenList = cs_coroutine.start(wait) + self:RefreshRecommendList() + self:AddTimer(1, 0, function() + self:OnListScroll() + end, true, true, true) end function SoldierRecommendCtrl:OnPreExit() if self._bListActive and self._nVisibleListState ~= nil then @@ -175,25 +170,11 @@ function SoldierRecommendCtrl:OnPreExit() mapCache.v2Size = self._rtRecommendContent.sizeDelta end self._bListActive = false - self._bWaitingEnterAnim = false - if self._coOpenList ~= nil then - cs_coroutine.stop(self._coOpenList) - self._coOpenList = nil - end - self:StopListLoading() - self:SetListInputBlocked(false) -end -function SoldierRecommendCtrl:SetListInputBlocked(bBlocked) - if self._bListInputBlocked == true == bBlocked then - return - end - self._bListInputBlocked = bBlocked - EventManager.Hit(EventId.BlockInput, bBlocked) -end -function SoldierRecommendCtrl:StopListLoading() - if self._coLoadList ~= nil then - cs_coroutine.stop(self._coLoadList) - self._coLoadList = nil + if self._bScrollListening then + self._bScrollListening = false + if self._svRecommend ~= nil and not self._svRecommend:IsNull() then + self._svRecommend.onValueChanged:RemoveListener(self._fnOnListScroll) + end end end function SoldierRecommendCtrl:OnDisable() @@ -207,8 +188,11 @@ end function SoldierRecommendCtrl:ClearListCache() self._tbListCache = nil self._nVisibleListState = nil - self.tbRecommendCellCtrl = nil + self._tbCellPool = nil + self._tbSlotIndex = nil + self._nPoolSize = nil self.tbRecommendData = nil + self._svRecommend = nil self._goRecommendTemplate = nil self._rtRecommendContent = nil self._objRecommendLayout = nil @@ -232,102 +216,129 @@ function SoldierRecommendCtrl:RefreshRecommendList() return end self:RefreshListHeader() - if self._bWaitingEnterAnim then - return - end local tbSources = { PlayerData.SoldierData:GetSystemRecommendList(), PlayerData.SoldierData:GetCollectRecommendList() } - local tbPending = {} + local mapPrevious = self._tbListCache[self._nVisibleListState] + if mapPrevious ~= nil then + mapPrevious.v2Position = self._rtRecommendContent.anchoredPosition + end + local bChanged = false for nState = 1, 2 do local mapCache = self._tbListCache[nState] if mapCache == nil then mapCache = { - tbCellCtrl = {}, tbData = {} } self._tbListCache[nState] = mapCache end if not mapCache.bLoaded or mapCache.tbSource ~= tbSources[nState] then - table.insert(tbPending, nState) + self:LoadRecommendList(mapCache, tbSources[nState]) + bChanged = true end end - if #tbPending == 0 and self._nVisibleListState == self.nListState then - self:SetListInputBlocked(false) + if not bChanged and self._nVisibleListState == self.nListState then return end - self:StopListLoading() - self._mapNode.sv_recommend:StopMovement() - local mapPrevious = self._tbListCache[self._nVisibleListState] - if mapPrevious ~= nil then - mapPrevious.v2Position = self._rtRecommendContent.anchoredPosition - mapPrevious.v2Size = self._rtRecommendContent.sizeDelta - end - self._rtRecommendContent.gameObject:SetActive(false) - if #tbPending == 0 then - self:ShowRecommendList() - self:SetListInputBlocked(false) - return - end - self:SetListInputBlocked(true) - NovaAPI.SetTMPText(self._mapNode.txtNoRcmd, ConfigTable.GetUIText("Soldier_Recommend_Loading")) - self._mapNode.rtEmpty.gameObject:SetActive(true) - self._coLoadList = cs_coroutine.start(function() - coroutine.yield(CS.UnityEngine.WaitForEndOfFrame()) - coroutine.yield(nil) - if not self._bListActive then - self:SetListInputBlocked(false) - return - end - local bSuccess, sError = pcall(function() - for _, nState in ipairs(tbPending) do - self:LoadRecommendList(self._tbListCache[nState], tbSources[nState]) - end - self:ShowRecommendList() - end) - self._coLoadList = nil - self:SetListInputBlocked(false) - if not bSuccess then - printError(sError) - end - end) + self._svRecommend:StopMovement() + self:ShowRecommendList() end function SoldierRecommendCtrl:ShowRecommendList() local mapCache = self._tbListCache[self.nListState] - for nState, mapTabCache in pairs(self._tbListCache) do - for nIndex, objCell in ipairs(mapTabCache.tbCellCtrl) do - local bActive = nState == self.nListState and nIndex <= #mapTabCache.tbData - if objCell.gameObject.activeSelf ~= bActive then - objCell.gameObject:SetActive(bActive) - end - end - end self._nVisibleListState = self.nListState - self.tbRecommendCellCtrl = mapCache.tbCellCtrl self.tbRecommendData = mapCache.tbData self._rtRecommendContent.sizeDelta = mapCache.v2Size self._rtRecommendContent.anchoredPosition = mapCache.v2Position local bHasData = #mapCache.tbData > 0 - self._rtRecommendContent.gameObject:SetActive(bHasData) - if not mapCache.bAnimationReady then - for nIndex = 1, #mapCache.tbData do - local objAnimator = mapCache.tbCellCtrl[nIndex].gameObject:GetComponent("Animator") - if objAnimator ~= nil then - objAnimator.enabled = true - objAnimator:Play("go", 0, 1) - objAnimator:Update(0) - objAnimator.enabled = false + if self._rtRecommendContent.gameObject.activeSelf ~= bHasData then + self._rtRecommendContent.gameObject:SetActive(bHasData) + end + self:RefreshVisibleCells(true) + self._mapNode.rtEmpty.gameObject:SetActive(not bHasData) +end +function SoldierRecommendCtrl:OnListScroll() + if not self._bListActive or self._nVisibleListState == nil then + return + end + self:RefreshVisibleCells(false) +end +function SoldierRecommendCtrl:GetCellPosition(nIndex) + return Vector2(self._nCellLeft, -self._nCellTop - (nIndex - 1) * self._nCellStep) +end +function SoldierRecommendCtrl:CreateRecommendCell() + local goItem = instantiate(self._goRecommendTemplate, self._rtRecommendContent) + local rtItem = goItem:GetComponent("RectTransform") + rtItem.pivot = Vector2(0, 1) + rtItem.anchorMin = Vector2(0, 1) + rtItem.anchorMax = Vector2(0, 1) + rtItem.localScale = Vector3.one + rtItem.sizeDelta = self._v2CellSize + goItem:SetActive(true) + local objCell = self._panel:BindRecommendCtrl(goItem, "Game.UI.Soldier.Recommend.SoldierRecommendCellCtrl") + objCell._rtCell = rtItem + objCell._nBindIndex = nil + objCell._bAnimationReady = false + return objCell +end +function SoldierRecommendCtrl:PrepareCellAnimator(objCell) + if objCell._bAnimationReady or not objCell.gameObject.activeInHierarchy then + return + end + local objAnimator = objCell.gameObject:GetComponent("Animator") + if objAnimator ~= nil then + objAnimator.enabled = true + objAnimator:Play("go", 0, 1) + objAnimator:Update(0) + objAnimator.enabled = false + end + objCell._bAnimationReady = true +end +function SoldierRecommendCtrl:RefreshVisibleCells(bForce) + local tbData = self.tbRecommendData + local nCount = #tbData + local rtViewport = self._svRecommend.viewport or self._svRecommend:GetComponent("RectTransform") + local nPoolSize = math.max(1, math.ceil(rtViewport.rect.height / self._nCellStep)) + 2 + if self._nPoolSize == nil or nPoolSize > self._nPoolSize then + self._nPoolSize = nPoolSize + bForce = true + else + nPoolSize = self._nPoolSize + end + local nFirst = math.floor((self._rtRecommendContent.anchoredPosition.y - self._nCellTop) / self._nCellStep) + 1 + nFirst = math.max(1, math.min(nFirst, nCount - nPoolSize + 1)) + local nLast = math.min(nCount, nFirst + nPoolSize - 1) + local tbSlotIndex = self._tbSlotIndex + for nSlot = 1, nPoolSize do + tbSlotIndex[nSlot] = nil + end + for nIndex = nFirst, nLast do + tbSlotIndex[(nIndex - 1) % nPoolSize + 1] = nIndex + end + for nSlot = 1, nPoolSize do + local nIndex = tbSlotIndex[nSlot] + local objCell = self._tbCellPool[nSlot] + if objCell == nil and nIndex ~= nil then + objCell = self:CreateRecommendCell() + self._tbCellPool[nSlot] = objCell + end + if objCell ~= nil and (bForce or objCell._nBindIndex ~= nIndex) then + objCell._nBindIndex = nIndex + if nIndex ~= nil then + objCell:SetDetailCallback(self, nIndex) + objCell:SetItemData(tbData[nIndex], self.bInSoldier) + objCell._rtCell.anchoredPosition = self:GetCellPosition(nIndex) + else + objCell._rtCell.anchoredPosition = Vector2(self._nCellLeft, HIDE_CELL_POS_Y) end end - mapCache.bAnimationReady = true + if objCell ~= nil then + self:PrepareCellAnimator(objCell) + end end - NovaAPI.SetTMPText(self._mapNode.txtNoRcmd, ConfigTable.GetUIText("Soldier_Recommend_NoRcmd")) - self._mapNode.rtEmpty.gameObject:SetActive(not bHasData) end function SoldierRecommendCtrl:LoadRecommendList(mapCache, tbSource) mapCache.bLoaded = false - mapCache.bAnimationReady = false mapCache.tbData = {} for _, mapData in ipairs(tbSource or {}) do table.insert(mapCache.tbData, mapData) @@ -347,29 +358,8 @@ function SoldierRecommendCtrl:LoadRecommendList(mapCache, tbSource) return mapFirst.nRecommendId < mapSecond.nRecommendId end) end - local objLayout = self._objRecommendLayout - local v2CellSize = objLayout.cellSize - local nSpacing = objLayout.spacing.y - local nTop = objLayout.padding.top - for nIndex, mapData in ipairs(mapCache.tbData) do - local objCell = mapCache.tbCellCtrl[nIndex] - if objCell == nil then - local goItem = instantiate(self._goRecommendTemplate, self._rtRecommendContent) - local rtItem = goItem:GetComponent("RectTransform") - rtItem.pivot = Vector2(0, 1) - rtItem.anchorMin = Vector2(0, 1) - rtItem.anchorMax = Vector2(0, 1) - rtItem.localScale = Vector3.one - rtItem.sizeDelta = v2CellSize - rtItem.anchoredPosition = Vector2(objLayout.padding.left, -nTop - (nIndex - 1) * (v2CellSize.y + nSpacing)) - objCell = self._panel:BindRecommendCtrl(goItem, "Game.UI.Soldier.Recommend.SoldierRecommendCellCtrl") - mapCache.tbCellCtrl[nIndex] = objCell - objCell:SetDetailCallback(self, nIndex) - end - objCell:SetItemData(mapData, self.bInSoldier) - end local nCount = #mapCache.tbData - mapCache.v2Size = Vector2(0, nTop + nCount * v2CellSize.y + math.max(0, nCount - 1) * nSpacing + objLayout.padding.bottom) + mapCache.v2Size = Vector2(0, self._nCellTop + nCount * self._v2CellSize.y + math.max(0, nCount - 1) * self._nCellSpacing + self._nCellBottom) mapCache.v2Position = Vector2.zero mapCache.tbSource = tbSource mapCache.bLoaded = true diff --git a/lua/game/ui/soldier/recommend/soldierrecommenddetailctrl.lua b/lua/game/ui/soldier/recommend/soldierrecommenddetailctrl.lua index dbcbd122c..861ecc6cc 100644 --- a/lua/game/ui/soldier/recommend/soldierrecommenddetailctrl.lua +++ b/lua/game/ui/soldier/recommend/soldierrecommenddetailctrl.lua @@ -14,7 +14,7 @@ SoldierRecommendDetailCtrl._mapNodeConfig = { }, MainChar = { nCount = 3, - sCtrlName = "Game.UI.Soldier.Template.Character.SoldierCharSupportCardItemCtrl" + sCtrlName = "Game.UI.Soldier.Recommend.SoldierRecommendCharItemCtrl" }, sv_backChar = { sComponentName = "LoopScrollView" @@ -191,25 +191,17 @@ function SoldierRecommendDetailCtrl:OnBackCharRefreshGrid(goGrid, nGridIndex) local nInstanceId = goGrid:GetInstanceID() local objCharCard = self.mapBackCharCtrl[nInstanceId] if objCharCard == nil then - objCharCard = self:BindCtrlByNode(goGrid, "Game.UI.Soldier.Template.Character.SoldierCharSupportCardItemCtrl") + objCharCard = self:BindCtrlByNode(goGrid, "Game.UI.Soldier.Recommend.SoldierRecommendCharItemCtrl") self.mapBackCharCtrl[nInstanceId] = objCharCard end self:RefreshCharCard(objCharCard, self.tbBackCharData[nIndex]) end function SoldierRecommendDetailCtrl:RefreshCharCard(objCharCard, mapCharData) - objCharCard:_RemoveAllTimer() - objCharCard.nStar = nil + objCharCard:SetRecommendData(mapCharData, nil) if mapCharData == nil or mapCharData.nId == nil or mapCharData.nId == 0 then - objCharCard:SetItemData(nil) - objCharCard:SetStar(0) - objCharCard:SetChessPosition(nil) - objCharCard._mapNode.Fx_warrior.gameObject:SetActive(false) objCharCard:SetClickCallback(nil, nil) return end - objCharCard:SetItemData(mapCharData.nId) - objCharCard:SetStar(mapCharData.nStar) - objCharCard.nStar = mapCharData.nStar or 0 objCharCard:SetClickCallback(self, function() local mapChessData = { nId = mapCharData.nId, diff --git a/lua/game/ui/startowerfastbattle/startowerautodecisionsettingctrl.lua b/lua/game/ui/startowerfastbattle/startowerautodecisionsettingctrl.lua index f48516888..6fef4bd75 100644 --- a/lua/game/ui/startowerfastbattle/startowerautodecisionsettingctrl.lua +++ b/lua/game/ui/startowerfastbattle/startowerautodecisionsettingctrl.lua @@ -341,6 +341,7 @@ end function StarTowerAutoDecisionSettingCtrl:Awake() self._mapNode.imgBlurredBg:SetActive(false) self._mapNode.goContentAnim:SetActive(false) + self:RefreshPresetBase() end function StarTowerAutoDecisionSettingCtrl:OnEnable() self._bSettingActive = true @@ -368,7 +369,6 @@ function StarTowerAutoDecisionSettingCtrl:OnEnable() self:ShowPhoneTime() self:RefreshTokenValue() self:RefreshPresetList() - self:RefreshPresetBase() self:RefreshPresetDetail() self:CacheOriginalServerProject() end diff --git a/lua/game/ui/topbarex/topbarctrl.lua b/lua/game/ui/topbarex/topbarctrl.lua index 24f29eab9..31fdcf5c9 100644 --- a/lua/game/ui/topbarex/topbarctrl.lua +++ b/lua/game/ui/topbarex/topbarctrl.lua @@ -332,7 +332,12 @@ function TopBarCtrl:OnBtnClick_Home() if self.bEvent == true then EventManager.Hit(EventId.UIHomeConfirm, self._panel._nPanelId) else - PanelManager.Home() + local ModuleManager = require("GameCore.Module.ModuleManager") + if ModuleManager.GetCurModuleName() == "DormModuleScene" then + PlayerData.Base:GoHomeFromCurModule() + else + PanelManager.Home() + end end end function TopBarCtrl:OnBtnClick_Help() diff --git a/lua/game/ui/tracehunt/tracehuntpausectrl.lua b/lua/game/ui/tracehunt/tracehuntpausectrl.lua index 6abd03540..4840373d3 100644 --- a/lua/game/ui/tracehunt/tracehuntpausectrl.lua +++ b/lua/game/ui/tracehunt/tracehuntpausectrl.lua @@ -127,8 +127,9 @@ function TraceHuntPauseCtrl:Awake() end function TraceHuntPauseCtrl:OnDisable() end -function TraceHuntPauseCtrl:Pause(nLevelId, tbCharId, bSelfBoss) +function TraceHuntPauseCtrl:Pause(nLevelId, tbCharId, bSelfBoss, mapCharTrialId) self.tbChar = tbCharId + self._mapCharTrialId = mapCharTrialId self.nLevelId = nLevelId self.bSelfBoss = bSelfBoss EventManager.Hit(EventId.BattleDashboardVisible, false) @@ -235,7 +236,7 @@ function TraceHuntPauseCtrl:OnBtnClick_Settings(btn) self._mapNode.ActionBar.gameObject:SetActive(false) end function TraceHuntPauseCtrl:OnBtnClick_Skill(btn) - EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar) + EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId) self._mapNode.ActionBar.gameObject:SetActive(false) end function TraceHuntPauseCtrl:OnEvent_Reopen(sName) diff --git a/lua/game/ui/travelerduelroominfo/tdpausectrl.lua b/lua/game/ui/travelerduelroominfo/tdpausectrl.lua index 88e709173..2080213ec 100644 --- a/lua/game/ui/travelerduelroominfo/tdpausectrl.lua +++ b/lua/game/ui/travelerduelroominfo/tdpausectrl.lua @@ -239,7 +239,7 @@ end function TDPauseCtrl:OnBtnClick_Char(btn, nIndex) end function TDPauseCtrl:OnBtnClick_Skill(btn) - EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar) + EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId) self._mapNode.ActionBar.gameObject:SetActive(false) end function TDPauseCtrl:OnBtnClick_Settings(btn) diff --git a/lua/game/ui/vampiresurvivor/depot/depotcharinfoctrl.lua b/lua/game/ui/vampiresurvivor/depot/depotcharinfoctrl.lua index ab9a24873..7f0b9f7ae 100644 --- a/lua/game/ui/vampiresurvivor/depot/depotcharinfoctrl.lua +++ b/lua/game/ui/vampiresurvivor/depot/depotcharinfoctrl.lua @@ -217,7 +217,8 @@ function DepotCharInfoCtrl:OnBtnClick_Char(btn, nIndex) self:SwitchChar() end function DepotCharInfoCtrl:OnBtnClick_Skill(btn) - EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbTeam, false, {}, {}, self.nCharId) + local mapCharData = self._panel._bTrialBuild and self.mapCharData or {} + EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbTeam, false, {}, mapCharData, self.nCharId) end function DepotCharInfoCtrl:OnBtnClick_Detail() local HealthInfo = self.tbActorHealthInfo[self.nCharId] diff --git a/lua/game/ui/vampiresurvivor/vampiresurvivorpausectrl.lua b/lua/game/ui/vampiresurvivor/vampiresurvivorpausectrl.lua index 8b892374a..c3d450a62 100644 --- a/lua/game/ui/vampiresurvivor/vampiresurvivorpausectrl.lua +++ b/lua/game/ui/vampiresurvivor/vampiresurvivorpausectrl.lua @@ -245,7 +245,7 @@ function VampireSurvivorPauseCtrl:OnBtnClick_Char(btn, nIndex) end function VampireSurvivorPauseCtrl:OnBtnClick_Skill(btn) local mapCharData = self._panel._bTrialBuild and self._panel.mapCharData or nil - EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, nil, mapCharData) + EventManager.Hit(EventId.OpenPanel, PanelId.PopupSkillPanel, self.tbChar, false, self._mapCharTrialId or {}, mapCharData) self._mapNode.ActionBar.gameObject:SetActive(false) end function VampireSurvivorPauseCtrl:OnBtnClick_Settings(btn) diff --git a/lua/gamecore/data/dataclass/avgdata.lua b/lua/gamecore/data/dataclass/avgdata.lua index e4b0cce56..ecfb4b07e 100644 --- a/lua/gamecore/data/dataclass/avgdata.lua +++ b/lua/gamecore/data/dataclass/avgdata.lua @@ -1094,7 +1094,7 @@ function AvgData:SendMsg_STORY_DONE(callBack, tbBattleEvents) if self.tbLastEndStoryIds ~= nil then for _, nLastEndStoryId in ipairs(self.tbLastEndStoryIds) do local mapLastEndStoryCfg = ConfigTable.GetData_Story(nLastEndStoryId) - if mapLastEndStoryCfg ~= nil and 0 < table.indexof(self.tbTempStoryIds, mapLastEndStoryCfg.StoryId) then + if mapLastEndStoryCfg ~= nil then self:SetLastEndState(nLastEndStoryId) end end diff --git a/lua/gamecore/data/dataclass/playerbuilddata.lua b/lua/gamecore/data/dataclass/playerbuilddata.lua index e35a34850..2fce3e4c8 100644 --- a/lua/gamecore/data/dataclass/playerbuilddata.lua +++ b/lua/gamecore/data/dataclass/playerbuilddata.lua @@ -855,6 +855,10 @@ function PlayerBuildData:SyncLimitedTrialBuildCache() end self:RefreshLimitedTrialBuildCache(tbTrialBuildId) end +function PlayerBuildData:GetLimitedTrialBuild(nBuildId) + self:SyncLimitedTrialBuildCache() + return self._MapLimitedTrialBuildData[nBuildId] +end function PlayerBuildData:GetActiveLimitedTrialBuilds(nType, bIncludeUnsupported) local tbRet = {} local mapRet = {} diff --git a/lua/gamecore/data/dataclass/playerchardata.lua b/lua/gamecore/data/dataclass/playerchardata.lua index 30d34e24c..463ff627a 100644 --- a/lua/gamecore/data/dataclass/playerchardata.lua +++ b/lua/gamecore/data/dataclass/playerchardata.lua @@ -738,6 +738,12 @@ function PlayerCharData:GetLimitedTrialCharSkillAddedLevel(nTrialId) end return tbSkillLevel end +function PlayerCharData:GetAnyTrialCharSkillAddedLevel(nTrialId) + if self._mapLimitedTrialChar[nTrialId] ~= nil then + return self:GetLimitedTrialCharSkillAddedLevel(nTrialId) + end + return self:GetTrialCharSkillAddedLevel(nTrialId) +end function PlayerCharData:GetCharPlotDataById(charId) return CacheTable.GetData("_Plot", charId) end diff --git a/lua/gamecore/network/httpnethandler.lua b/lua/gamecore/network/httpnethandler.lua index 0fc0e6a1d..f854ee4a0 100644 --- a/lua/gamecore/network/httpnethandler.lua +++ b/lua/gamecore/network/httpnethandler.lua @@ -1371,7 +1371,8 @@ local BindProcessFunction = function() [NetMsgId.Id.clear_all_activity_mathParkour_levels_notify] = HttpNetHandlerPlus.clear_all_activity_mathParkour_levels_notify, [NetMsgId.Id.activity_mail_bind_reward_receive_succeed_ack] = HttpNetHandlerPlus.activity_mail_bind_reward_receive_succeed_ack, [NetMsgId.Id.activity_mail_bind_reward_receive_failed_ack] = NOTHING_NEED_TO_BE_DONE, - [NetMsgId.Id.handbook_complete_notify] = HttpNetHandlerPlus.handbook_complete_notify + [NetMsgId.Id.handbook_complete_notify] = HttpNetHandlerPlus.handbook_complete_notify, + [NetMsgId.Id.guide_mission_state_notify] = HttpNetHandlerPlus.guide_mission_state_notify } end function HttpNetHandler.Init() diff --git a/lua/gamecore/network/httpnethandlerplus.lua b/lua/gamecore/network/httpnethandlerplus.lua index bbdcab6ce..e34685991 100644 --- a/lua/gamecore/network/httpnethandlerplus.lua +++ b/lua/gamecore/network/httpnethandlerplus.lua @@ -483,4 +483,7 @@ function HttpNetHandlerPlus.handbook_complete_notify(mapMsgData) PlayerData.Handbook:UpdateHandbook(v) end end +function HttpNetHandlerPlus.guide_mission_state_notify(mapMsgData) + RedDotManager.SetValid(RedDotDefine.GuideMission_Server, nil, mapMsgData.New) +end return HttpNetHandlerPlus diff --git a/versions.txt b/versions.txt index 38bab08f1..333e9188a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ -EN: 2.0.0.143 -CN: 2.0.0.142 -JP: 2.0.0.145 -KR: 2.0.0.150 +EN: 2.0.0.144 +CN: 2.0.0.143 +JP: 2.0.0.146 +KR: 2.0.0.151