From 91a6ee3b3dbae669ab7c2df581ff084cd5fa0810 Mon Sep 17 00:00:00 2001 From: Mikhail Thompson Date: Fri, 28 Jun 2024 08:09:32 +0300 Subject: [PATCH] save tutorial completion --- nksrv/LobbyServer/Msgs/User/EnterLobbyServer.cs | 10 ++++++++++ nksrv/LobbyServer/Msgs/User/Tutorial/SetTutorial.cs | 4 +++- nksrv/Utils/JsonDb.cs | 3 ++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/nksrv/LobbyServer/Msgs/User/EnterLobbyServer.cs b/nksrv/LobbyServer/Msgs/User/EnterLobbyServer.cs index bebf37d..d1f6711 100644 --- a/nksrv/LobbyServer/Msgs/User/EnterLobbyServer.cs +++ b/nksrv/LobbyServer/Msgs/User/EnterLobbyServer.cs @@ -25,6 +25,8 @@ namespace nksrv.LobbyServer.Msgs.User response.User.LobbyJukebox = 2; response.ResetHour = 20; response.Nickname = user.Nickname; + response.SynchroLv = 1; + response.OutpostBattleLevel = new NetOutpostBattleLevel() { Level = 1 }; response.OutpostBattleTime = new NetOutpostBattleTime() { MaxBattleTime = 864000000000, MaxOverBattleTime = 12096000000000 }; if (user.TeamData.Slots.Count == 0) @@ -83,6 +85,14 @@ namespace nksrv.LobbyServer.Msgs.User response.LastClearedNormalMainStageId = user.LastStageCleared; + // Restore completed tutorials. GroupID is the first 4 digits of the Table ID. + foreach (var item in user.ClearedTutorials) + { + var groupId = int.Parse(item.ToString().Substring(0, 4)); + int tutorialVersion = item == 1020101 ? 1 : 0; // TODO + response.User.Tutorials.Add(new NetTutorialData() { GroupId = groupId, LastClearedTid = item, LastClearedVersion = tutorialVersion }); + } + WriteData(response); } } diff --git a/nksrv/LobbyServer/Msgs/User/Tutorial/SetTutorial.cs b/nksrv/LobbyServer/Msgs/User/Tutorial/SetTutorial.cs index 2a7963b..b529eb2 100644 --- a/nksrv/LobbyServer/Msgs/User/Tutorial/SetTutorial.cs +++ b/nksrv/LobbyServer/Msgs/User/Tutorial/SetTutorial.cs @@ -13,8 +13,10 @@ namespace nksrv.LobbyServer.Msgs.User.Tutorial protected override async Task HandleAsync() { var req = await ReadData(); + var user = GetUser(); + if (!user.ClearedTutorials.Contains(req.LastClearedTid)) + user.ClearedTutorials.Add(req.LastClearedTid); - Console.WriteLine("TODO - clear tutorial with tid: " + req.LastClearedTid); var response = new ResSetTutorial(); WriteData(response); } diff --git a/nksrv/Utils/JsonDb.cs b/nksrv/Utils/JsonDb.cs index 29d48f8..c1eb028 100644 --- a/nksrv/Utils/JsonDb.cs +++ b/nksrv/Utils/JsonDb.cs @@ -56,11 +56,12 @@ namespace nksrv.Utils { CurrencyType.ContentStamina, 2 }, { CurrencyType.Gold, 1 }, - { CurrencyType.CharCorporationTicket, 23422 } + { CurrencyType.CharPremiumTicket, 23422 } }; public List Characters = new(); public NetWholeUserTeamData TeamData = new(); + public List ClearedTutorials = new(); } public class CoreInfo {