mirror of
https://github.com/EpinelPS/EpinelPS.git
synced 2025-12-12 23:14:34 +01:00
implement GetFieldObjectsCount, MarkNoticeRead
This commit is contained in:
@@ -579,6 +579,33 @@ namespace EpinelPS.StaticInfo
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
public string? GetMapIdFromDBFieldName(string field)
|
||||
{
|
||||
// Get game map ID from DB Field Name (ex: 1_Normal for chapter 1 normal)
|
||||
string[] keys = field.Split("_");
|
||||
if (int.TryParse(keys[0], out int chapterNum))
|
||||
{
|
||||
string difficulty = keys[1];
|
||||
|
||||
foreach (var item in chapterCampaignData)
|
||||
{
|
||||
if (difficulty == "Normal" && item.Value.chapter == chapterNum)
|
||||
{
|
||||
return item.Value.field_id;
|
||||
}
|
||||
else if (difficulty == "Hard" && item.Value.chapter == chapterNum)
|
||||
{
|
||||
return item.Value.hard_field_id;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
return keys[0]; // Already a Map ID
|
||||
}
|
||||
}
|
||||
public int GetNormalChapterNumberFromFieldName(string field)
|
||||
{
|
||||
foreach (var item in chapterCampaignData)
|
||||
|
||||
30
EpinelPS/LobbyServer/Campaign/GetFieldObjectsCount.cs
Normal file
30
EpinelPS/LobbyServer/Campaign/GetFieldObjectsCount.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using EpinelPS.Database;
|
||||
using EpinelPS.LobbyServer.Stage;
|
||||
using EpinelPS.StaticInfo;
|
||||
using EpinelPS.Utils;
|
||||
|
||||
namespace EpinelPS.LobbyServer.Campaign
|
||||
{
|
||||
[PacketPath("/campaign/getfieldobjectitemsnum")]
|
||||
public class GetFieldObjectsCount : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqGetCampaignFieldObjectItemsNum>();
|
||||
var user = GetUser();
|
||||
|
||||
var response = new ResGetCampaignFieldObjectItemsNum();
|
||||
|
||||
foreach (var map in user.FieldInfoNew)
|
||||
{
|
||||
response.FieldObjectItemsNum.Add(new NetCampaignFieldObjectItemsNum()
|
||||
{
|
||||
MapId = GameData.Instance.GetMapIdFromDBFieldName(map.Key),
|
||||
Count = map.Value.CompletedObjects.Count
|
||||
});
|
||||
}
|
||||
|
||||
await WriteDataAsync(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
20
EpinelPS/LobbyServer/LobbyUser/MarkNoticeRead.cs
Normal file
20
EpinelPS/LobbyServer/LobbyUser/MarkNoticeRead.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using EpinelPS.Utils;
|
||||
using EpinelPS.StaticInfo; // For GameData access
|
||||
|
||||
namespace EpinelPS.LobbyServer.LobbyUser
|
||||
{
|
||||
[PacketPath("/record/notice")]
|
||||
public class MarkNoticeRead : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqRecordNoticeLog>();
|
||||
var r = new ResRecordNoticeLog();
|
||||
var user = GetUser();
|
||||
|
||||
// TODO
|
||||
|
||||
await WriteDataAsync(r);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia.Desktop" Version="11.2.4" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="11.2.6" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="11.2.4" />
|
||||
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.2.4" />
|
||||
<PackageReference Include="Avalonia" Version="11.2.6" />
|
||||
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.2.6" />
|
||||
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
|
||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.2.4" />
|
||||
<PackageReference Include="FluentAvaloniaUI" Version="2.2.0" />
|
||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.2.6" />
|
||||
<PackageReference Include="FluentAvaloniaUI" Version="2.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user