From ce0b5bf04074a57a4dbe67fd085a69797129c7fc Mon Sep 17 00:00:00 2001 From: Mikhail Thompson Date: Wed, 26 Jun 2024 19:27:01 +0300 Subject: [PATCH] allow completion of 0-1 stage --- .../Msgs/Antibot/RecieveAntibotData.cs | 2 +- nksrv/LobbyServer/Msgs/Badge/SyncBadge.cs | 2 +- nksrv/LobbyServer/Msgs/GetCurrentTime.cs | 2 +- .../Msgs/Messenger/GetDailyMessage.cs | 2 +- nksrv/LobbyServer/Msgs/Stage/ClearStage.cs | 8 ++++++- .../Msgs/Subquest/ListSubquests.cs | 19 +++++++++++++++ nksrv/LobbyServer/Msgs/Team/GetTeamData.cs | 24 +++++++++++++++++++ .../LobbyServer/Msgs/User/EnterLobbyServer.cs | 4 ++-- nksrv/Protos/allmsgs.proto | 20 ++++++++++++++++ nksrv/Utils/JsonDb.cs | 1 + 10 files changed, 77 insertions(+), 7 deletions(-) create mode 100644 nksrv/LobbyServer/Msgs/Subquest/ListSubquests.cs create mode 100644 nksrv/LobbyServer/Msgs/Team/GetTeamData.cs diff --git a/nksrv/LobbyServer/Msgs/Antibot/RecieveAntibotData.cs b/nksrv/LobbyServer/Msgs/Antibot/RecieveAntibotData.cs index 1a742ac..e7930d3 100644 --- a/nksrv/LobbyServer/Msgs/Antibot/RecieveAntibotData.cs +++ b/nksrv/LobbyServer/Msgs/Antibot/RecieveAntibotData.cs @@ -12,7 +12,7 @@ namespace nksrv.LobbyServer.Msgs.Antibot { protected override async Task HandleAsync() { - var req = ReadData(); + var req = await ReadData(); // I don't really care about reimplementing the server side anticheat, so return diff --git a/nksrv/LobbyServer/Msgs/Badge/SyncBadge.cs b/nksrv/LobbyServer/Msgs/Badge/SyncBadge.cs index 955b2e8..ad0b1af 100644 --- a/nksrv/LobbyServer/Msgs/Badge/SyncBadge.cs +++ b/nksrv/LobbyServer/Msgs/Badge/SyncBadge.cs @@ -7,7 +7,7 @@ namespace nksrv.LobbyServer.Msgs.Badge { protected override async Task HandleAsync() { - var req = ReadData(); + var req = await ReadData(); var response = new ResSyncBadge(); WriteData(response); diff --git a/nksrv/LobbyServer/Msgs/GetCurrentTime.cs b/nksrv/LobbyServer/Msgs/GetCurrentTime.cs index bfe490a..bb74a3c 100644 --- a/nksrv/LobbyServer/Msgs/GetCurrentTime.cs +++ b/nksrv/LobbyServer/Msgs/GetCurrentTime.cs @@ -8,7 +8,7 @@ namespace nksrv.LobbyServer.Msgs { protected override async Task HandleAsync() { - var req = ReadData(); + var req = await ReadData(); var response = new ResGetNow(); response.Tick = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); diff --git a/nksrv/LobbyServer/Msgs/Messenger/GetDailyMessage.cs b/nksrv/LobbyServer/Msgs/Messenger/GetDailyMessage.cs index f3b2efa..9edcb46 100644 --- a/nksrv/LobbyServer/Msgs/Messenger/GetDailyMessage.cs +++ b/nksrv/LobbyServer/Msgs/Messenger/GetDailyMessage.cs @@ -12,7 +12,7 @@ namespace nksrv.LobbyServer.Msgs.Messenger { protected override async Task HandleAsync() { - var req = ReadData(); + var req = await ReadData(); // TODO: save these things var response = new ResPickTodayDailyMessage(); diff --git a/nksrv/LobbyServer/Msgs/Stage/ClearStage.cs b/nksrv/LobbyServer/Msgs/Stage/ClearStage.cs index b402ccc..3cd4727 100644 --- a/nksrv/LobbyServer/Msgs/Stage/ClearStage.cs +++ b/nksrv/LobbyServer/Msgs/Stage/ClearStage.cs @@ -17,7 +17,13 @@ namespace nksrv.LobbyServer.Msgs.Stage var response = new ResClearStage(); // TOOD: save to user info - Console.WriteLine($"Stage " + req.StageId + " completed, result is "+req.BattleResult); + Console.WriteLine($"Stage " + req.StageId + " completed, result is " + req.BattleResult); + + if (req.BattleResult == 1) + { + GetUser().LastStageCleared = req.StageId; + JsonDb.Save(); + } WriteData(response); } diff --git a/nksrv/LobbyServer/Msgs/Subquest/ListSubquests.cs b/nksrv/LobbyServer/Msgs/Subquest/ListSubquests.cs new file mode 100644 index 0000000..b326222 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Subquest/ListSubquests.cs @@ -0,0 +1,19 @@ +using nksrv.Utils; + +namespace nksrv.LobbyServer.Msgs.Subquest +{ + [PacketPath("/subquest/list")] + public class ListSubquests : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGetSubQuestList(); + + // TOOD + + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Team/GetTeamData.cs b/nksrv/LobbyServer/Msgs/Team/GetTeamData.cs new file mode 100644 index 0000000..9ee4517 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Team/GetTeamData.cs @@ -0,0 +1,24 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Team +{ + [PacketPath("/team/get")] + public class GetTeamData : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + + // TODO: assume that team data did not change + var resp = new ResGetTeamData(); + //resp.TypeTeams + WriteData(req); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/User/EnterLobbyServer.cs b/nksrv/LobbyServer/Msgs/User/EnterLobbyServer.cs index 93bd5ef..af3caac 100644 --- a/nksrv/LobbyServer/Msgs/User/EnterLobbyServer.cs +++ b/nksrv/LobbyServer/Msgs/User/EnterLobbyServer.cs @@ -13,7 +13,7 @@ namespace nksrv.LobbyServer.Msgs.User protected override async Task HandleAsync() { var req = await ReadData(); - + var user = GetUser(); var response = new ResEnterLobbyServer(); response.User = new NetUserData(); @@ -33,7 +33,7 @@ namespace nksrv.LobbyServer.Msgs.User response.RepresentationTeam.Slots.Add(new NetWholeTeamSlot() { Slot = 4 }); response.RepresentationTeam.Slots.Add(new NetWholeTeamSlot() { Slot = 5 }); response.Currency.Add(new NetUserCurrencyData() { Type = 6100, Value = 2 }); - + response.LastClearedNormalMainStageId = user.LastStageCleared; //var tTeams = new NetUserTeamData(); //var tTeam = new NetTeamData() { TeamNumber = 1 }; diff --git a/nksrv/Protos/allmsgs.proto b/nksrv/Protos/allmsgs.proto index 10c9919..142f67a 100644 --- a/nksrv/Protos/allmsgs.proto +++ b/nksrv/Protos/allmsgs.proto @@ -945,4 +945,24 @@ message ReqListSupportCharacterUsedCount { message ResListSupportCharacterUsedCount { repeated NetSupportCharacterUsedCount supportCharacterUsedCountList = 1; +} + +message ReqGetTeamData { + +} + +message ResGetTeamData { + repeated NetUserTeamData typeTeams = 2; +} + +message ReqGetSubQuestList{} + +message NetSubQuestData { + int32 subQuestId = 1; + int32 createdAt = 2; + bool isReceived = 3; +} + +message ResGetSubQuestList { + repeated NetSubQuestData subquestList = 2; } \ No newline at end of file diff --git a/nksrv/Utils/JsonDb.cs b/nksrv/Utils/JsonDb.cs index 662d486..d04c156 100644 --- a/nksrv/Utils/JsonDb.cs +++ b/nksrv/Utils/JsonDb.cs @@ -24,6 +24,7 @@ namespace nksrv.Utils public string PlayerName = ""; public ulong ID; public long RegisterTime; + public int LastStageCleared; // Game data