save campaign field object

This commit is contained in:
Mikhail
2024-07-06 14:03:45 -04:00
parent 699bbed3dd
commit 3df70d2dbe
11 changed files with 201 additions and 4 deletions

View File

@@ -26,7 +26,6 @@ namespace nksrv.LobbyServer.Msgs.Campaign
// TODO
response.Reward = new();
WriteData(response);

View File

@@ -0,0 +1,37 @@
using nksrv.StaticInfo;
using nksrv.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace nksrv.LobbyServer.Msgs.Campaign
{
[PacketPath("/campaign/savefieldobject")]
public class SaveFieldObject : LobbyMsgHandler
{
protected override async Task HandleAsync()
{
var req = await ReadData<ReqSaveCampaignFieldObject>();
var user = GetUser();
Console.WriteLine("Map ID: " + req.MapId);
var response = new ResSaveCampaignFieldObject();
Console.WriteLine($"save {req.MapId} with {req.FieldObject.PositionID}");
var chapter = StaticDataParser.Instance.GetNormalChapterNumberFromFieldName(req.MapId);
var mod = req.MapId.Contains("hard") ? "Hard" : "Normal";
var key = chapter + "_" + mod;
var field = user.FieldInfo[key];
field.CompletedObjects.Add(new NetFieldObject() { PositionId = req.FieldObject.PositionID, Json = req.FieldObject.Json, Type = req.FieldObject.Type });
JsonDb.Save();
WriteData(response);
}
}
}