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);
}
}
}

View File

@@ -0,0 +1,37 @@
using nksrv.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace nksrv.LobbyServer.Msgs.Event
{
[PacketPath("/event/scenario/complete")]
public class CompleteEventScenario : LobbyMsgHandler
{
protected override async Task HandleAsync()
{
var req = await ReadData<ReqSetEventScenarioComplete>();
var user = GetUser();
if (user.EventInfo.ContainsKey(req.EventID))
{
var evt = user.EventInfo[req.EventID];
evt.CompletedScenarios.Add(req.ScenarioId);
}
else
{
var evt = new EventData();
evt.CompletedScenarios.Add(req.ScenarioId);
user.EventInfo.Add(req.EventID, evt);
}
var response = new ResSetEventScenarioComplete();
// TODO reward
WriteData(response);
}
}
}

View File

@@ -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.Event
{
[PacketPath("/eventfield/enter")]
public class EnterEventField : LobbyMsgHandler
{
protected override async Task HandleAsync()
{
var req = await ReadData<ReqEnterEventField>();
var response = new ResEnterEventField();
// TOOD
WriteData(response);
}
}
}

View File

@@ -0,0 +1,32 @@
using nksrv.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace nksrv.LobbyServer.Msgs.Event
{
[PacketPath("/event/scenario/get")]
public class GetEventScenario : LobbyMsgHandler
{
protected override async Task HandleAsync()
{
var req = await ReadData<ReqGetEventScenarioData>();
var user = GetUser();
var response = new ResGetEventScenarioData();
if (user.EventInfo.ContainsKey(req.EventID))
{
var evt = user.EventInfo[req.EventID];
response.ScenarioIdList.AddRange(evt.CompletedScenarios);
}
else
{
user.EventInfo.Add(req.EventID, new EventData());
}
WriteData(response);
}
}
}

View File

@@ -89,7 +89,7 @@ namespace nksrv.LobbyServer.Msgs.Event
EventVisibleDate = DateTime.UtcNow.Subtract(TimeSpan.FromDays(1)).Ticks,
EventDisableDate = DateTime.Now.AddDays(20).Ticks,
EventEndDate = DateTime.Now.AddDays(20).Ticks,
EventSystemType = 2
EventSystemType = 22
});
// Aegis the Diver event

View File

@@ -18,7 +18,7 @@ namespace nksrv.LobbyServer.Msgs.Inventory
var response = new ResGetInventoryData();
foreach (var item in user.Items)
{
response.Items.Add(new NetUserItemData() { Tid = item.ItemType, Count = 1 });
response.Items.Add(new NetUserItemData() { Count = item.Count, Tid = item.ItemType, Csn = item.Csn, Lv = item.Level, Exp = item.Exp, Corporation = item.Corp, Isn = item.Isn, Position = item.Position });
}
// TODO implement

View File

@@ -43,6 +43,10 @@ namespace nksrv.LobbyServer.Msgs.Stage
{
f.Stages.Add(stage);
}
foreach (var obj in item.Value.CompletedObjects)
{
f.Objects.Add(obj);
}
break;
}
}

View File

@@ -53,7 +53,7 @@ namespace nksrv.LobbyServer.Msgs.User
}
foreach (var item in user.Items)
{
response.Items.Add(new NetUserItemData() { Count = 1, Tid = item.ItemType});
response.Items.Add(new NetUserItemData() { Count = item.Count, Tid = item.ItemType, Csn = item.Csn, Lv = item.Level, Exp = item.Exp, Corporation = item.Corp, Isn = item.Isn, Position = item.Position});
}