From 795f18445ce25e4248a9f1cfd1fce398ad460335 Mon Sep 17 00:00:00 2001 From: Vi-brance <82794754+Vi-brance@users.noreply.github.com> Date: Wed, 5 Nov 2025 20:42:34 +0800 Subject: [PATCH] implement `/outpost/RecycleRoom/PersonalResearchLevelUp` for RecycleRoom (#64) --- .../Recycle/PersonalResearchLevelUp.cs | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 EpinelPS/LobbyServer/Outpost/Recycle/PersonalResearchLevelUp.cs diff --git a/EpinelPS/LobbyServer/Outpost/Recycle/PersonalResearchLevelUp.cs b/EpinelPS/LobbyServer/Outpost/Recycle/PersonalResearchLevelUp.cs new file mode 100644 index 0000000..9b0604c --- /dev/null +++ b/EpinelPS/LobbyServer/Outpost/Recycle/PersonalResearchLevelUp.cs @@ -0,0 +1,30 @@ +using EpinelPS.Database; +using EpinelPS.Utils; + +namespace EpinelPS.LobbyServer.Outpost.Recycle +{ + [PacketPath("/outpost/RecycleRoom/PersonalResearchLevelUp")] + public class PersonalResearchLevelUp : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + ReqPersonalResearchRecycleLevelUp req = await ReadData(); + ResPersonalResearchRecycleLevelUp response = new(); + User user = GetUser(); + + const int personalResearchTid = 1001; + RecycleRoomResearchProgress personalResearchProgress = user.ResearchProgress[personalResearchTid] ?? throw new Exception("PersonalRearch not found."); + personalResearchProgress.Level += req.LevelUpCount; + response.Recycle = new() + { + Tid = personalResearchTid, + Lv = personalResearchProgress.Level, + Exp = personalResearchProgress.Exp + }; + + JsonDb.Save(); + + await WriteDataAsync(response); + } + } +}