mirror of
https://github.com/EpinelPS/EpinelPS.git
synced 2025-12-14 07:55:01 +01:00
Implement side story + move jsondb class
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using ASodium;
|
||||
using EmbedIO;
|
||||
using Google.Protobuf;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
using Swan.Logging;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using EmbedIO;
|
||||
using Google.Protobuf;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.Utils;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Auth
|
||||
{
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using EmbedIO;
|
||||
using Google.Protobuf;
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Auth
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.StaticInfo;
|
||||
using nksrv.Database;
|
||||
using nksrv.StaticInfo;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Campaign
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.StaticInfo;
|
||||
using nksrv.Database;
|
||||
using nksrv.StaticInfo;
|
||||
using nksrv.Utils;
|
||||
using Swan.Logging;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.Utils;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Character
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.Utils;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Event
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.Utils;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Event
|
||||
{
|
||||
|
||||
@@ -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++;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.Utils;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Inventory
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.Utils;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Inventory
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.Utils;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Inventory
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.Utils;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Inventory
|
||||
{
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.Utils;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Team
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.StaticInfo;
|
||||
using nksrv.Database;
|
||||
using nksrv.StaticInfo;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Trigger
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.Utils;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.User
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.Utils;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.User
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.Utils;
|
||||
using nksrv.Database;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.User
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using nksrv.StaticInfo;
|
||||
using nksrv.Database;
|
||||
using nksrv.StaticInfo;
|
||||
using nksrv.Utils;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.User.Tutorial
|
||||
|
||||
Reference in New Issue
Block a user