grids cfg parser yummy

This commit is contained in:
rfi
2024-02-24 15:22:51 +07:00
parent 529d404c12
commit ded826adf0
4 changed files with 48 additions and 8 deletions

View File

@@ -1,9 +1,19 @@
using System.Text.Json.Serialization; using System.Text.Json;
using System.Text.Json.Serialization;
namespace BLHX.Server.Common.Data; namespace BLHX.Server.Common.Data;
public class ChapterTemplate : Model public class ChapterTemplate : Model
{ {
[JsonIgnore]
public List<GridItem> GridItems
{
get
{
return Grids.Select(x => new GridItem() { Row = x[0].GetUInt32(), Column = x[1].GetUInt32(), Blocking = x[2].GetBoolean(), Flag = x[3].GetInt32() }).ToList();
}
}
[JsonPropertyName("ItemTransformPattern")] [JsonPropertyName("ItemTransformPattern")]
public object ItemTransformPattern { get; set; } public object ItemTransformPattern { get; set; }
[JsonPropertyName("act_id")] [JsonPropertyName("act_id")]
@@ -85,7 +95,7 @@ public class ChapterTemplate : Model
[JsonPropertyName("friendly_id")] [JsonPropertyName("friendly_id")]
public int FriendlyId { get; set; } public int FriendlyId { get; set; }
[JsonPropertyName("grids")] [JsonPropertyName("grids")]
public object[][] Grids { get; set; } public List<List<JsonElement>> Grids { get; set; }
[JsonPropertyName("group_num")] [JsonPropertyName("group_num")]
public int GroupNum { get; set; } public int GroupNum { get; set; }
[JsonPropertyName("guarder_expedition_list")] [JsonPropertyName("guarder_expedition_list")]
@@ -203,3 +213,11 @@ public class ChapterTemplate : Model
[JsonPropertyName("win_condition_display")] [JsonPropertyName("win_condition_display")]
public string WinConditionDisplay { get; set; } public string WinConditionDisplay { get; set; }
} }
public readonly struct GridItem
{
public uint Row { get; init; }
public uint Column { get; init; }
public bool Blocking { get; init; }
public int Flag { get; init; }
}

View File

@@ -122,7 +122,7 @@ namespace BLHX.Server.Game
ns.Write(sendBuf); ns.Write(sendBuf);
} }
void SendPacket(Packet packet) void Send(Packet packet)
{ {
c.Log(packet.command.ToString()); c.Log(packet.command.ToString());
var ns = tcpClient.GetStream(); var ns = tcpClient.GetStream();

View File

@@ -1,6 +1,4 @@
using BLHX.Server.Common.Data; using BLHX.Server.Common.Proto;
using BLHX.Server.Common.Proto;
using BLHX.Server.Common.Proto.common;
using BLHX.Server.Common.Proto.p12; using BLHX.Server.Common.Proto.p12;
namespace BLHX.Server.Game.Handlers namespace BLHX.Server.Game.Handlers

View File

@@ -1,10 +1,34 @@
using BLHX.Server.Common.Proto; using BLHX.Server.Common.Data;
using BLHX.Server.Common.Proto;
using BLHX.Server.Common.Proto.p13; using BLHX.Server.Common.Proto.p13;
namespace BLHX.Server.Game.Handlers namespace BLHX.Server.Game.Handlers
{ {
internal static class P13 internal static class P13
{ {
[PacketHandler(Command.Cs13101)]
static void TrackingHandler(Connection connection, Packet packet)
{
var req = packet.Decode<Cs13101>();
var rsp = new Sc13102();
if (!Data.ChapterTemplate.TryGetValue((int)req.Id, out var chapterTemplate))
{
rsp.Result = 1;
connection.Send(rsp);
return;
}
// TODO: Populate values, pls make managers
connection.Send(new Sc13102()
{
CurrentChapter = new()
{
Id = req.Id,
Time = (uint)(DateTimeOffset.Now.ToUnixTimeSeconds() + chapterTemplate.Time)
}
});
}
[PacketHandler(Command.Cs13505)] [PacketHandler(Command.Cs13505)]
static void RemasterInfoRequestHandler(Connection connection, Packet packet) static void RemasterInfoRequestHandler(Connection connection, Packet packet)
{ {
@@ -16,7 +40,7 @@ namespace BLHX.Server.Game.Handlers
{ {
public static void NotifyChapterData(this Connection connection) public static void NotifyChapterData(this Connection connection)
{ {
connection.Send(new Sc13001() { ReactChapter = new() }); connection.Send(new Sc13001() { ReactChapter = new() });
} }
} }
} }