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 20c4fb785..cbff7823d 100644
Binary files a/data/bin/monster.bytes and b/data/bin/monster.bytes differ
diff --git a/data/bin/uitext.bytes b/data/bin/uitext.bytes
index baece9f4c..65b1118d1 100644
Binary files a/data/bin/uitext.bytes and b/data/bin/uitext.bytes differ
diff --git a/data/language/en_us/activitygoods.json b/data/language/en_us/activitygoods.json
index eece8a7ce..39b73239c 100644
--- a/data/language/en_us/activitygoods.json
+++ b/data/language/en_us/activitygoods.json
@@ -42,7 +42,7 @@
"ActivityGoods.100201.1": "Fist of Courage",
"ActivityGoods.100201.2": "A Runic Disc titled [Fist of Courage]. It can unleash great power.",
"ActivityGoods.100202.1": "Fist of Courage Melody",
- "ActivityGoods.100202.2": "Material required for the Crescendo of this Disc: Fist of Courage.",
+ "ActivityGoods.100202.2": "Material required for the Crescendo of the Disc: Fist of Courage.",
"ActivityGoods.100203.1": "Guild Sweet Guild",
"ActivityGoods.100203.2": "Unlocks the Honor Title: Guild Sweet Guild.",
"ActivityGoods.100204.1": "Colossus Core",
@@ -134,7 +134,7 @@
"ActivityGoods.100401.1": "A Gift for the Journey",
"ActivityGoods.100401.2": "A Runic Disc titled [A Gift for the Journey]. It can unleash great power.",
"ActivityGoods.100402.1": "A Gift for the Journey Melody",
- "ActivityGoods.100402.2": "Material required for the Crescendo of the [A Gift for the Journey] Disc.",
+ "ActivityGoods.100402.2": "Material required for the Crescendo of the Disc: A Gift for the Journey.",
"ActivityGoods.100403.1": "Radiant Messenger, Holy Night Spirit",
"ActivityGoods.100403.2": "Unlocks the Honor Title: Radiant Messenger, Holy Night Spirit.",
"ActivityGoods.100404.1": "Colossus Essence",
@@ -180,7 +180,7 @@
"ActivityGoods.100501.1": "The Bud of Change",
"ActivityGoods.100501.2": "A Runic Disc titled [The Bud of Change]. It can unleash great power.",
"ActivityGoods.100502.1": "The Bud of Change Melody",
- "ActivityGoods.100502.2": "Material required for the Crescendo of this Disc: The Bud of Change.",
+ "ActivityGoods.100502.2": "Material required for the Crescendo of the Disc: The Bud of Change.",
"ActivityGoods.100503.1": "Miracle of a Flicker",
"ActivityGoods.100503.2": "Unlocks the Honor Title: Miracle of a Flicker.",
"ActivityGoods.100504.1": "Crimson Tempter",
@@ -226,7 +226,7 @@
"ActivityGoods.100601.1": "Wine Warm, Lamps Alight",
"ActivityGoods.100601.2": "A Runic Disc titled [Wine Warm, Lamps Alight]. It can unleash great power.",
"ActivityGoods.100602.1": "Wine Warm, Lamps Alight Melody",
- "ActivityGoods.100602.2": "Material required for the Crescendo of this Disc: Wine Warm, Lamps Alight.",
+ "ActivityGoods.100602.2": "Material required for the Crescendo of the Disc: Wine Warm, Lamps Alight.",
"ActivityGoods.100603.1": "Crackling Hint of Spring",
"ActivityGoods.100603.2": "Unlocks the Honor Title: Crackling Hint of Spring.",
"ActivityGoods.100604.1": "Forest Elf Essence",
@@ -272,7 +272,7 @@
"ActivityGoods.100701.1": "Dawn After Winter",
"ActivityGoods.100701.2": "A Runic Disc titled [The Break of Frost]. It can unleash great power.",
"ActivityGoods.100702.1": "The Break of Frost Melody",
- "ActivityGoods.100702.2": "Material required for the Crescendo of this Disc: The Break of Frost.",
+ "ActivityGoods.100702.2": "Material required for the Crescendo of the Disc: The Break of Frost.",
"ActivityGoods.100703.1": "Winter Requiem and the Trigger of Dawn",
"ActivityGoods.100703.2": "Unlocks the Honor Title: Winter Requiem and the Trigger of Dawn.",
"ActivityGoods.100704.1": "Wrath Beauty",
@@ -410,7 +410,7 @@
"ActivityGoods.101001.1": "Seed Alike",
"ActivityGoods.101001.2": "A Runic Disc titled [Seed Alike]. It can unleash great power.",
"ActivityGoods.101002.1": "Seed Alike Melody",
- "ActivityGoods.101002.2": "Material required to Crescendo the Disc \"Seed Alike\".",
+ "ActivityGoods.101002.2": "Material required to Crescendo the Disc: Seed Alike.",
"ActivityGoods.101003.1": "Framing the Feelings Unseen",
"ActivityGoods.101003.2": "Unlocks the Honor Title: Framing the Feelings Unseen",
"ActivityGoods.101004.1": "Radiant Crown Essence",
@@ -456,7 +456,7 @@
"ActivityGoods.101101.1": "Touch of Miracle",
"ActivityGoods.101101.2": "A Disc Record titled \"Touch of Miracle\". It can unleash great power.",
"ActivityGoods.101102.1": "Touch of Miracle Melody",
- "ActivityGoods.101102.2": "Material required for the Crescendo of this Disc: \"Touch of Miracle\"",
+ "ActivityGoods.101102.2": "Material required for the Crescendo of the Disc: Touch of Miracle.",
"ActivityGoods.101103.1": "Heartbeat! Neo-Inspired Rhapsody",
"ActivityGoods.101103.2": "Unlocks the Honor Title \"Heartbeat! Neo-Inspired Rhapsody\"",
"ActivityGoods.101104.1": "Forest Elf Fang",
@@ -732,7 +732,7 @@
"ActivityGoods.101701.1": "All That Was Beautiful",
"ActivityGoods.101701.2": "A Runic Disc titled [All That Was Beautiful]. It can unleash great power.",
"ActivityGoods.101702.1": "All That Was Beautiful Melody",
- "ActivityGoods.101702.2": "Material required for the Crescendo of this Disc: All That Was Beautiful.",
+ "ActivityGoods.101702.2": "Material required for the Crescendo of the Disc: All That Was Beautiful.",
"ActivityGoods.101703.1": "A Monolith Too Far",
"ActivityGoods.101703.2": "Unlocks the Honor Title: A Monolith Too Far.",
"ActivityGoods.101704.1": "Tidal Essence",
@@ -782,7 +782,7 @@
"ActivityGoods.101803.1": "Wholeness at Reunion's Dawn",
"ActivityGoods.101803.2": "Unlocks the Honor Title: Wholeness at Reunion's Dawn.",
"ActivityGoods.101804.1": "Knight's Display Cabinet",
- "ActivityGoods.101804.2": "Used for certain Trekker skill upgrade (Lv.7 to Lv.10).",
+ "ActivityGoods.101804.2": "Firstlight Noya's favorite furniture. Used to decorate the Tyrant's Tower.",
"ActivityGoods.101805.1": "Radiant Feather Crown",
"ActivityGoods.101805.2": "Used for certain Trekker skill upgrade (Lv.7 to Lv.10).",
"ActivityGoods.101806.1": "Cerulean Ticket",
diff --git a/data/language/en_us/datingcharacterevent.json b/data/language/en_us/datingcharacterevent.json
index 263e41e01..86fb59163 100644
--- a/data/language/en_us/datingcharacterevent.json
+++ b/data/language/en_us/datingcharacterevent.json
@@ -517,7 +517,7 @@
"DatingCharacterEvent.144302.7": "At the dessert shop with Chitose, she said she didn't deserve such fine treatment, but you got her to see it differently.\n\n\"I do not care for such indulgence,\" she said—yet all afternoon, she had been smiling.",
"DatingCharacterEvent.144303.1": "The market is packed today, likely thanks to a massive new Stella Drama. Shops lining the street are overflowing with merchandise from the show.\nChitose hasn't seen it, so you fill her in on the plot as you walk together.",
"DatingCharacterEvent.144303.2": "The most famous scene is undoubtedly an epic lightsaber duel. Right as you reach this climax in your story, you pass a small stall displaying a replica of that iconic lightsaber in its window.\nThe model is incredibly realistic. It looks flawless and matches the drama perfectly—you just can't actually cut anything with it.",
- "DatingCharacterEvent.144303.3": "You admire the replica, oblivious to Chitose glaring at it with burning jealousy.\n\"Since my ==SEX11== favors this blade so much, let us see how it fares against my own.\"\nYou turn around and realize Chitose already has her hand on her hilt, her eyes locked in a death stare on the toy in your hands.\nYou immediately put the lightsaber down. Instantly, Chitose's expression returns to normal.",
+ "DatingCharacterEvent.144303.3": "You admire the replica, oblivious to Chitose glaring at it with burning jealousy.\n\"Since you favor this blade so much, let us see how it fares against my own.\"\nYou turn around and realize Chitose already has her hand on her hilt, her eyes locked in a death stare on the toy in your hands.\nYou immediately put the lightsaber down. Instantly, Chitose's expression returns to normal.",
"DatingCharacterEvent.144303.5": "A Hint of Jealousy",
"DatingCharacterEvent.144303.6": "Visit the Market to unlock",
"DatingCharacterEvent.144303.7": "The market was bustling today, packed with shops selling merchandise for a popular Stella Drama. You walked through the crowd with Chitose, explaining the plot to her. Suddenly, a highly detailed lightsaber replica caught your eye. It looked exactly like the one from the drama, but your fascination ended up stirring up a bit of jealousy in Chitose.",
diff --git a/data/language/en_us/datinglandmarkevent.json b/data/language/en_us/datinglandmarkevent.json
index 685820694..c08d16e54 100644
--- a/data/language/en_us/datinglandmarkevent.json
+++ b/data/language/en_us/datinglandmarkevent.json
@@ -126,7 +126,7 @@
"DatingLandmarkEvent.2001.1": "Alina is waiting for you on the steps. The morning wind catches her, blowing the hair at the nape of her neck and whipping her shawl around like a flag.",
"DatingLandmarkEvent.2001.2": "It rained earlier. Leftover puddles drip from the roof, catching the sunlight and sparkling as they fall.",
"DatingLandmarkEvent.2001.3": "\"I've been waiting forever!\" Alina says, pulling you inside.",
- "DatingLandmarkEvent.2002.1": "It's freezing inside. Your nose even feels a little numb. A thin layer of sunlight paints the walls. Noticing your \"distress\", Alina crouches by the fireplace and gets a fire going.",
+ "DatingLandmarkEvent.2002.1": "It's freezing inside. Your nose even feels a little numb. A thin layer of sunlight paints the walls. Noticing your \"distress,\" Alina crouches by the fireplace and gets a fire going.",
"DatingLandmarkEvent.2002.2": "It finally warms up. You lean close to the hearth, letting the hot air caress your face.\n\"Don't get your face dirty!\" Alina pulls you back. \"You're going to get covered in soot.\"",
"DatingLandmarkEvent.2002.3": "She exhales slowly into her palms, then rubs your cheeks. \"Your face is freezing!\" she gasps softly.\nHer hands are warm, like a vortex of light, pulling you into a perfectly curated summer evening.",
"DatingLandmarkEvent.2003.1": "You sit at the table drinking tea with Alina while the fire crackles nearby. Suddenly, you both feel each other's gaze and lock eyes for a split second.",
diff --git a/data/language/en_us/item.json b/data/language/en_us/item.json
index ad98ef4a7..726f1b64c 100644
--- a/data/language/en_us/item.json
+++ b/data/language/en_us/item.json
@@ -1180,7 +1180,7 @@
"Item.199030.3": "Limited-Time Avatar: Tit-for-Tat",
"Item.2.1": "Stellanite Dust",
"Item.2.2": "A rare crystal that can be exchanged for vouchers in the Shop.",
- "Item.2.3": "This shard vibrates with the power of Stellnanite Veins, exhibiting purity yet bearing the hallmarks of human craftsmanship.\u000bThough not as pristine as natural crystals, it holds immense value.",
+ "Item.2.3": "This shard vibrates with the power of Stellanite Veins, exhibiting purity yet bearing the hallmarks of human craftsmanship.\u000bThough not as pristine as natural crystals, it holds immense value.",
"Item.20.1": "Vigor",
"Item.20.2": "Stamina used for engaging in various game modes.",
"Item.20.3": "Taking on commissions and completing quests becomes doubly hard without enthusiasm.\u000bDon't forget to pep up your Trekkers before embarking on your journey!",
@@ -1901,7 +1901,7 @@
"Item.29.3": "Once you have obtained the \"Key to the Monolith Stairs,\" you can use the pass to go straight to the top and snag the ultimate \"Record\"... Yeah, like luck ever works that way.\u000bYou still have to face every single twist and turn. This just saves you a bit of the boring slog.",
"Item.3.1": "Stellanite Lumina",
"Item.3.2": "An extremely rare crystal of immense value.",
- "Item.3.3": "A condensed mass imbued with the power of Stellnanite Vein, both hard and clear.\u000bFor centuries, it has been revered as the material for crafting Soul Stones, carrying immense value.",
+ "Item.3.3": "A condensed mass imbued with the power of Stellanite Vein, both hard and clear.\u000bFor centuries, it has been revered as the material for crafting Soul Stones, carrying immense value.",
"Item.30.1": "Monolith Stairs Pass",
"Item.30.2": "A pass used to initiate a Monolith Express.",
"Item.30.3": "Once you have obtained the \"Key to the Monolith Stairs,\" you can use the pass to go straight to the top and snag the ultimate \"Record\"... Yeah, like luck ever works that way.\u000bYou still have to face every single twist and turn. This just saves you a bit of the boring slog.",
@@ -2098,7 +2098,7 @@
"Item.39.3": "Allows participation in ongoing siege operations initiated by other Guilds.",
"Item.4.1": "Stellanite Lumina",
"Item.4.2": "An extremely rare crystal of immense value.",
- "Item.4.3": "A condensed mass imbued with the power of Stellnanite Vein, both hard and clear.\u000bFor centuries, it has been revered as the material for crafting Soul Stones, carrying immense value.",
+ "Item.4.3": "A condensed mass imbued with the power of Stellanite Vein, both hard and clear.\u000bFor centuries, it has been revered as the material for crafting Soul Stones, carrying immense value.",
"Item.40.1": "Talent Gold",
"Item.40.2": "Used in Through Hostile Depths.",
"Item.40.3": "An exquisitely carved gold coin said to be a token that allows one to seek assistance from the Tyrant.",
diff --git a/data/language/en_us/residentgoods.json b/data/language/en_us/residentgoods.json
index b45275427..5e89b4263 100644
--- a/data/language/en_us/residentgoods.json
+++ b/data/language/en_us/residentgoods.json
@@ -32,11 +32,11 @@
"ResidentGoods.10204.1": "Summer Sanctuary",
"ResidentGoods.10204.2": "A Runic Disc titled [Summer Sanctuary]. It can unleash great power.",
"ResidentGoods.10205.1": "Summer Sanctuary Melody",
- "ResidentGoods.10205.2": "Material required for the Crescendo of Summer Sanctuary.",
+ "ResidentGoods.10205.2": "Material required for the Crescendo of the Disc: Summer Sanctuary.",
"ResidentGoods.10206.1": "Fist of Courage Melody",
"ResidentGoods.10206.2": "A Runic Disc titled [Fist of Courage]. It can unleash great power.",
"ResidentGoods.10207.1": "Fist of Courage Melody",
- "ResidentGoods.10207.2": "Material required for the Crescendo of this Disc: Fist of Courage.",
+ "ResidentGoods.10207.2": "Material required for the Crescendo of the Disc: Fist of Courage.",
"ResidentGoods.10208.1": "One, Two, Three, Jump!",
"ResidentGoods.10208.2": "A Runic Disc titled [One, Two, Three, Jump!]. It can unleash great power.",
"ResidentGoods.10209.1": "One, Two, Three, Jump! Melody",
@@ -44,15 +44,15 @@
"ResidentGoods.10210.1": "A Gift for the Journey",
"ResidentGoods.10210.2": "A Runic Disc titled [A Gift for the Journey]. It can unleash great power.",
"ResidentGoods.10211.1": "A Gift for the Journey Melody",
- "ResidentGoods.10211.2": "Material required for the Crescendo of the [A Gift for the Journey] Disc.",
+ "ResidentGoods.10211.2": "Material required for the Crescendo of the Disc: A Gift for the Journey.",
"ResidentGoods.10212.1": "The Bud of Change",
"ResidentGoods.10212.2": "A Runic Disc titled [The Bud of Change]. It can unleash great power.",
"ResidentGoods.10213.1": "The Bud of Change Melody",
- "ResidentGoods.10213.2": "Material required for the Crescendo of this Disc: The Bud of Change.",
+ "ResidentGoods.10213.2": "Material required for the Crescendo of the Disc: The Bud of Change.",
"ResidentGoods.10214.1": "Seed Alike",
"ResidentGoods.10214.2": "A Runic Disc titled [Seed Alike]. It can unleash great power.",
"ResidentGoods.10215.1": "Seed Alike Melody",
- "ResidentGoods.10215.2": "Material required to Crescendo the Disc \"Seed Alike\"",
+ "ResidentGoods.10215.2": "Material required to Crescendo the Disc: Seed Alike.",
"ResidentGoods.103.1": "Exquisite Gift Box",
"ResidentGoods.103.2": "Grants a random exquisite gift.",
"ResidentGoods.104.1": "Novice Trekker Promotion Box",
diff --git a/data/language/en_us/scorebossability.json b/data/language/en_us/scorebossability.json
index acb9f6f30..384511bc2 100644
--- a/data/language/en_us/scorebossability.json
+++ b/data/language/en_us/scorebossability.json
@@ -1,7 +1,7 @@
{
"ScoreBossAbility.100000.1": "!NONEED!",
"ScoreBossAbility.100000.2": "None",
- "ScoreBossAbility.100001.1": "Stellnanite Berserk",
+ "ScoreBossAbility.100001.1": "Stellanite Berserk",
"ScoreBossAbility.100001.2": "The boss starts with 1 stack of Berserk and gains 1 stack every 10s (up to 5 stacks). Each stack increases the boss' DMG by &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