implement GetFieldObjectsCount, MarkNoticeRead

This commit is contained in:
Mikhail
2025-04-08 18:58:37 -04:00
parent e37f08c232
commit c9c334c2ff
5 changed files with 83 additions and 6 deletions

View File

@@ -502,7 +502,7 @@ namespace EpinelPS.StaticInfo
{
this.towerTable.Add(obj.id, obj);
}
var triggerTable = await LoadZip<TriggerTable>("TriggerTable.json", progress);
foreach (var obj in triggerTable.records)
{
@@ -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)

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

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

View File

@@ -14,7 +14,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Avalonia.Desktop" Version="11.2.4" />
<PackageReference Include="Avalonia.Desktop" Version="11.2.6" />
</ItemGroup>
<ItemGroup>

View File

@@ -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>