Implement side story + move jsondb class

This commit is contained in:
Mikhail
2024-07-25 15:50:51 -04:00
parent 8ea17003e6
commit e83dcdbfa8
43 changed files with 306 additions and 55 deletions

View File

@@ -1,6 +1,7 @@
using ASodium;
using EmbedIO;
using Google.Protobuf;
using nksrv.Database;
using nksrv.Utils;
using Swan.Logging;

View File

@@ -1,5 +1,6 @@
using EmbedIO;
using Google.Protobuf;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer

View File

@@ -1,4 +1,5 @@
using nksrv.Utils;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Auth
{

View File

@@ -1,6 +1,7 @@
using EmbedIO;
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Auth

View File

@@ -1,4 +1,5 @@
using nksrv.StaticInfo;
using nksrv.Database;
using nksrv.StaticInfo;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Campaign

View File

@@ -1,4 +1,5 @@
using nksrv.StaticInfo;
using nksrv.Database;
using nksrv.StaticInfo;
using nksrv.Utils;
using Swan.Logging;

View File

@@ -1,4 +1,5 @@
using nksrv.Utils;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Character
{

View File

@@ -1,4 +1,5 @@
using nksrv.Utils;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Event
{

View File

@@ -1,4 +1,5 @@
using nksrv.Utils;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Event
{

View File

@@ -1,4 +1,5 @@
using nksrv.StaticInfo;
using nksrv.Database;
using nksrv.StaticInfo;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Gacha
@@ -25,7 +26,7 @@ namespace nksrv.LobbyServer.Msgs.Gacha
response.Gacha.Add(new NetGachaEntityData() { Corporation = 1, PieceCount = 1, CurrencyValue = 5, Sn = c, Tid = c, Type = 1 });
response.Characters.Add(new NetUserCharacterDefaultData() { CostumeId = 0, Csn = c, Grade = 0, Lv = 1, Skill1Lv = 1, Skill2Lv = 1, Tid = c, UltiSkillLv = 1 });
user.Characters.Add(new Utils.Character() { CostumeId = 0, Csn = c, Grade = 0, Level = 1, Skill1Lvl = 1, Skill2Lvl = 1, Tid = c, UltimateLevel = 1 });
user.Characters.Add(new Database.Character() { CostumeId = 0, Csn = c, Grade = 0, Level = 1, Skill1Lvl = 1, Skill2Lvl = 1, Tid = c, UltimateLevel = 1 });
}
user.GachaTutorialPlayCount++;
}

View File

@@ -1,4 +1,5 @@
using nksrv.Utils;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Inventory
{

View File

@@ -1,4 +1,5 @@
using nksrv.Utils;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Inventory
{

View File

@@ -1,4 +1,5 @@
using nksrv.Utils;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Inventory
{

View File

@@ -1,4 +1,5 @@
using nksrv.Utils;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Inventory
{

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

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

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

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

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

View File

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

View File

@@ -1,4 +1,5 @@
using nksrv.StaticInfo;
using nksrv.Database;
using nksrv.StaticInfo;
using nksrv.Utils;
using Swan.Logging;
@@ -26,7 +27,7 @@ namespace nksrv.LobbyServer.Msgs.Stage
}
public static ResClearStage CompleteStage(Utils.User user, int StageId, bool forceCompleteScenarios = false)
public static ResClearStage CompleteStage(Database.User user, int StageId, bool forceCompleteScenarios = false)
{
var response = new ResClearStage();
var clearedStage = StaticDataParser.Instance.GetStageData(StageId);
@@ -113,7 +114,7 @@ namespace nksrv.LobbyServer.Msgs.Stage
return response;
}
private static NetRewardData RegisterRewardsForUser(Utils.User user, RewardTableRecord rewardData)
public static NetRewardData RegisterRewardsForUser(Database.User user, RewardTableRecord rewardData)
{
NetRewardData ret = new();
if (rewardData.rewards == null) return ret;
@@ -222,7 +223,7 @@ namespace nksrv.LobbyServer.Msgs.Stage
return ret;
}
private static void DoQuestSpecificUserOperations(Utils.User user, int clearedStageId)
private static void DoQuestSpecificUserOperations(Database.User user, int clearedStageId)
{
var quest = StaticDataParser.Instance.GetMainQuestForStageClearCondition(clearedStageId);
if (quest != null)
@@ -240,11 +241,11 @@ namespace nksrv.LobbyServer.Msgs.Stage
team1.LastContentsTeamNumber = 1;
user.Characters.Add(new Utils.Character() { Csn = 47263455, Tid = 201001 });
user.Characters.Add(new Utils.Character() { Csn = 47273456, Tid = 330501 });
user.Characters.Add(new Utils.Character() { Csn = 47263457, Tid = 130201 });
user.Characters.Add(new Utils.Character() { Csn = 47263458, Tid = 230101 });
user.Characters.Add(new Utils.Character() { Csn = 47263459, Tid = 301201 });
user.Characters.Add(new Database.Character() { Csn = 47263455, Tid = 201001 });
user.Characters.Add(new Database.Character() { Csn = 47273456, Tid = 330501 });
user.Characters.Add(new Database.Character() { Csn = 47263457, Tid = 130201 });
user.Characters.Add(new Database.Character() { Csn = 47263458, Tid = 230101 });
user.Characters.Add(new Database.Character() { Csn = 47263459, Tid = 301201 });
var team1Sub = new NetTeamData();
team1Sub.TeamNumber = 1;

View File

@@ -1,4 +1,5 @@
using nksrv.Utils;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Stage
{
@@ -21,7 +22,7 @@ namespace nksrv.LobbyServer.Msgs.Stage
await WriteDataAsync(response);
}
public static NetFieldObjectData CreateFieldInfo(Utils.User user, int chapter, string mod)
public static NetFieldObjectData CreateFieldInfo(Database.User user, int chapter, string mod)
{
var f = new NetFieldObjectData();
bool found = false;

View File

@@ -1,4 +1,5 @@
using nksrv.Utils;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Team
{

View File

@@ -1,4 +1,5 @@
using nksrv.StaticInfo;
using nksrv.Database;
using nksrv.StaticInfo;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Trigger

View File

@@ -1,4 +1,5 @@
using nksrv.Utils;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.User
{

View File

@@ -1,4 +1,5 @@
using nksrv.Utils;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.User
{

View File

@@ -1,4 +1,5 @@
using nksrv.Utils;
using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.User
{

View File

@@ -1,4 +1,5 @@
using nksrv.StaticInfo;
using nksrv.Database;
using nksrv.StaticInfo;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.User.Tutorial