mirror of
https://github.com/EpinelPS/EpinelPS.git
synced 2025-12-13 07:24:52 +01:00
Fix unlocking of hard mode/story mode/surface mode
This commit is contained in:
@@ -48,6 +48,9 @@ namespace EpinelPS.Data
|
||||
[LoadRecord("CampaignChapterTable.json", "Chapter")]
|
||||
public readonly Dictionary<int, CampaignChapterRecord> ChapterCampaignData = [];
|
||||
|
||||
[LoadRecord("ContentsOpenTable.json", "Id")]
|
||||
public readonly Dictionary<ContentsOpen, ContentsOpenRecord> ContentsOpenTable = [];
|
||||
|
||||
[LoadRecord("CharacterCostumeTable.json", "Id")]
|
||||
public readonly Dictionary<int, CharacterCostumeRecord> CharacterCostumeTable = [];
|
||||
|
||||
|
||||
19
EpinelPS/LobbyServer/Hexacode/GetAll.cs
Normal file
19
EpinelPS/LobbyServer/Hexacode/GetAll.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using EpinelPS.Utils;
|
||||
|
||||
namespace EpinelPS.LobbyServer.Hexacode;
|
||||
|
||||
[PacketPath("/hexacode/get-all")]
|
||||
public class GetAll : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
ReqGetHexaAll req = await ReadData<ReqGetHexaAll>();
|
||||
User user = GetUser();
|
||||
|
||||
ResGetHexaAll response = new();
|
||||
|
||||
// TODO
|
||||
|
||||
await WriteDataAsync(response);
|
||||
}
|
||||
}
|
||||
@@ -13,17 +13,22 @@ namespace EpinelPS.LobbyServer.LobbyUser
|
||||
|
||||
// this request returns a list of "special" stages that mark when something is unlocked, ex: the shop or interception
|
||||
|
||||
List<int> specialStages = [6003003, 6002008, 6002016, 6005003, 6003021, 6011018, 6007021, 6004018, 6005013, 6003009, 6003012, 6009017, 6016039, 6001004, 6000003, 6000001, 6002001, 6004023, 6005026, 6020050, 6006004, 6006023, 6022049];
|
||||
|
||||
ResGetContentsOpenData response = new();
|
||||
foreach (FieldInfoNew field in user.FieldInfoNew.Values)
|
||||
|
||||
foreach (var item in GameData.Instance.ContentsOpenTable)
|
||||
{
|
||||
foreach (int stage in field.CompletedStages)
|
||||
foreach (var condition in item.Value.OpenCondition)
|
||||
{
|
||||
if (specialStages.Contains(stage))
|
||||
response.ClearStageList.Add(stage);
|
||||
if (condition.OpenConditionType == ContentsOpenCondition.StageClear)
|
||||
{
|
||||
if (user.IsStageCompleted(condition.OpenConditionValue))
|
||||
{
|
||||
response.ClearStageList.Add(condition.OpenConditionValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
response.MaxGachaCount = user.GachaTutorialPlayCount;
|
||||
response.MaxGachaPremiumCount = user.GachaTutorialPlayCount;
|
||||
// todo tutorial playcount of gacha
|
||||
|
||||
19
EpinelPS/LobbyServer/Surface/GetMaximumAmountAll.cs
Normal file
19
EpinelPS/LobbyServer/Surface/GetMaximumAmountAll.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using EpinelPS.Utils;
|
||||
|
||||
namespace EpinelPS.LobbyServer.Hexacode;
|
||||
|
||||
[PacketPath("/Surface/Export/MaxAmount/All")]
|
||||
public class GetMaximumAmountAll : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
ReqListAllSurfaceCurrencyMaxAmount req = await ReadData<ReqListAllSurfaceCurrencyMaxAmount>();
|
||||
User user = GetUser();
|
||||
|
||||
ResListAllSurfaceCurrencyMaxAmount response = new();
|
||||
|
||||
// TODO
|
||||
|
||||
await WriteDataAsync(response);
|
||||
}
|
||||
}
|
||||
19
EpinelPS/LobbyServer/Surface/GetSimpleData.cs
Normal file
19
EpinelPS/LobbyServer/Surface/GetSimpleData.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using EpinelPS.Utils;
|
||||
|
||||
namespace EpinelPS.LobbyServer.Hexacode;
|
||||
|
||||
[PacketPath("/surface/lobby/simpledata")]
|
||||
public class GetSimpleData : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
ReqLobbySurfaceSimpleData req = await ReadData<ReqLobbySurfaceSimpleData>();
|
||||
User user = GetUser();
|
||||
|
||||
ResLobbySurfaceSimpleData response = new();
|
||||
|
||||
// TODO
|
||||
|
||||
await WriteDataAsync(response);
|
||||
}
|
||||
}
|
||||
@@ -57,7 +57,7 @@ namespace ServerSelector
|
||||
string certList1 = await File.ReadAllTextAsync(launcherCertList);
|
||||
|
||||
if (!certList1.Contains("Good SSL Ca"))
|
||||
return "Patch missing";
|
||||
return "SSL Cert Patch missing";
|
||||
}
|
||||
|
||||
if (File.Exists(gameCertList))
|
||||
@@ -65,11 +65,10 @@ namespace ServerSelector
|
||||
string certList2 = await File.ReadAllTextAsync(gameCertList);
|
||||
|
||||
if (!certList2.Contains("Good SSL Ca"))
|
||||
return "Patch missing";
|
||||
return "SSL Cert Patch missing";
|
||||
}
|
||||
|
||||
// TODO: Check sodium lib
|
||||
// TODO: Check if gameassembly was patched
|
||||
// TODO: check hosts file
|
||||
|
||||
return "OK";
|
||||
|
||||
Reference in New Issue
Block a user