mirror of
https://github.com/EpinelPS/EpinelPS.git
synced 2025-12-21 19:34:40 +01:00
Implement side story + move jsondb class
This commit is contained in:
21
nksrv/LobbyServer/Msgs/Sidestory/ClearBattle.cs
Normal file
21
nksrv/LobbyServer/Msgs/Sidestory/ClearBattle.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using nksrv.Net;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Sidestory
|
||||
{
|
||||
[PacketPath("/sidestory/cut/clearbattle")]
|
||||
public class ClearBattle : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqClearSideStoryCutForBattle>();
|
||||
var user = GetUser();
|
||||
|
||||
var response = new ResClearSideStoryCutForBattle();
|
||||
|
||||
// TODO
|
||||
|
||||
await WriteDataAsync(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
26
nksrv/LobbyServer/Msgs/Sidestory/ClearSideStoryCut.cs
Normal file
26
nksrv/LobbyServer/Msgs/Sidestory/ClearSideStoryCut.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using nksrv.Net;
|
||||
using nksrv.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Sidestory
|
||||
{
|
||||
[PacketPath("/sidestory/cut/clearscenario")]
|
||||
public class ClearSideStoryCut : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqClearSideStoryCutForScenario>();
|
||||
var user = GetUser();
|
||||
|
||||
var response = new ResClearSideStoryCutForScenario();
|
||||
|
||||
// TODO
|
||||
|
||||
await WriteDataAsync(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
45
nksrv/LobbyServer/Msgs/Sidestory/ClearSideStoryStage.cs
Normal file
45
nksrv/LobbyServer/Msgs/Sidestory/ClearSideStoryStage.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using nksrv.Database;
|
||||
using nksrv.LobbyServer.Msgs.Stage;
|
||||
using nksrv.Net;
|
||||
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.Sidestory
|
||||
{
|
||||
[PacketPath("/sidestory/stage/clear")]
|
||||
public class ClearSideStoryStage : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqClearSideStoryStage>();
|
||||
var user = GetUser();
|
||||
|
||||
var response = new ResClearSideStoryStage();
|
||||
|
||||
if (!user.CompletedSideStoryStages.Contains(req.SideStoryStageId))
|
||||
{
|
||||
user.CompletedSideStoryStages.Add(req.SideStoryStageId);
|
||||
|
||||
if (StaticDataParser.Instance.SidestoryRewardTable.ContainsKey(req.SideStoryStageId))
|
||||
{
|
||||
var rewardData = StaticDataParser.Instance.GetRewardTableEntry(StaticDataParser.Instance.SidestoryRewardTable[req.SideStoryStageId]);
|
||||
|
||||
if (rewardData != null)
|
||||
response.Reward = ClearStage.RegisterRewardsForUser(user, rewardData);
|
||||
else
|
||||
throw new Exception("failed to find reward");
|
||||
}
|
||||
|
||||
JsonDb.Save();
|
||||
}
|
||||
|
||||
|
||||
await WriteDataAsync(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
19
nksrv/LobbyServer/Msgs/Sidestory/EnterBattle.cs
Normal file
19
nksrv/LobbyServer/Msgs/Sidestory/EnterBattle.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using nksrv.Net;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Sidestory
|
||||
{
|
||||
[PacketPath("/sidestory/cut/enterbattle")]
|
||||
public class EnterBattle : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqEnterSideStoryCutForBattle>();
|
||||
var user = GetUser();
|
||||
|
||||
var response = new ResEnterSideStoryCutForBattle();
|
||||
|
||||
await WriteDataAsync(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
26
nksrv/LobbyServer/Msgs/Sidestory/EnterSidestoryStage.cs
Normal file
26
nksrv/LobbyServer/Msgs/Sidestory/EnterSidestoryStage.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using nksrv.Net;
|
||||
using nksrv.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Sidestory
|
||||
{
|
||||
[PacketPath("/sidestory/stage/enter")]
|
||||
public class EnterSidestoryStage : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqEnterSideStoryStage>();
|
||||
var user = GetUser();
|
||||
|
||||
var response = new ResEnterSideStoryStage();
|
||||
|
||||
// TODO
|
||||
|
||||
await WriteDataAsync(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
using nksrv.Utils;
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using nksrv.Net;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Sidestory
|
||||
{
|
||||
@@ -12,7 +14,11 @@ namespace nksrv.LobbyServer.Msgs.Sidestory
|
||||
|
||||
var response = new ResListSideStory();
|
||||
|
||||
// TODO
|
||||
foreach (var item in user.CompletedSideStoryStages)
|
||||
{
|
||||
// TODO cleared at
|
||||
response.SideStoryStageDataList.Add(new NetSideStoryStageData() { SideStoryStageId = item, ClearedAt = Timestamp.FromDateTime(DateTime.UtcNow) });
|
||||
}
|
||||
|
||||
await WriteDataAsync(response);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user