From 80764855d26697069684b3019cf495ba4a3b45e8 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 15 Oct 2023 23:14:24 +0200 Subject: [PATCH] Include Sub builds --- Influx/Influx/InfluxStatisticsClient.cs | 7 ++++- Influx/LocalStatistics/LocalStats.cs | 2 +- .../LocalStatistics/LocalStatsCalculator.cs | 1 + Influx/LocalStatistics/QuestInfo.cs | 8 +++--- Influx/SubmarineTracker/Build.cs | 27 +++++++++++++++++++ Influx/SubmarineTracker/Submarine.cs | 11 ++++---- Influx/SubmarineTracker/SubmarineStats.cs | 6 +++++ .../SubmarineTracker/SubmarineTrackerIpc.cs | 5 ++++ 8 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 Influx/SubmarineTracker/Build.cs diff --git a/Influx/Influx/InfluxStatisticsClient.cs b/Influx/Influx/InfluxStatisticsClient.cs index 4e210ee..2131b8f 100644 --- a/Influx/Influx/InfluxStatisticsClient.cs +++ b/Influx/Influx/InfluxStatisticsClient.cs @@ -204,6 +204,11 @@ internal sealed class InfluxStatisticsClient : IDisposable .Tag("fc_name", fc.Name) .Tag("sub_id", $"{fc.CharacterId}_{sub.Id}") .Tag("sub_name", sub.Name) + .Tag("part_hull", sub.Hull) + .Tag("part_stern", sub.Stern) + .Tag("part_bow", sub.Bow) + .Tag("part_bridge", sub.Bridge) + .Tag("build", sub.Build) .Field("level", sub.Level) .Timestamp(date, WritePrecision.S)); } @@ -219,7 +224,7 @@ internal sealed class InfluxStatisticsClient : IDisposable } catch (Exception e) { - _chatGui.PrintError(e.ToString()); + _chatGui.PrintError(e.Message); } }); } diff --git a/Influx/LocalStatistics/LocalStats.cs b/Influx/LocalStatistics/LocalStats.cs index 40f08d1..44ac6c2 100644 --- a/Influx/LocalStatistics/LocalStats.cs +++ b/Influx/LocalStatistics/LocalStats.cs @@ -12,6 +12,6 @@ public record LocalStats public List ClassJobLevels { get; set; } = new(); public byte StartingTown { get; init; } public int MsqCount { get; set; } = -1; - public string MsqName { get; set; } + public string? MsqName { get; set; } public uint MsqGenre { get; set; } } diff --git a/Influx/LocalStatistics/LocalStatsCalculator.cs b/Influx/LocalStatistics/LocalStatsCalculator.cs index d320966..cdae69b 100644 --- a/Influx/LocalStatistics/LocalStatsCalculator.cs +++ b/Influx/LocalStatistics/LocalStatsCalculator.cs @@ -127,6 +127,7 @@ internal sealed class LocalStatsCalculator : IDisposable RowId = startingQuestId, Name = "Coming to ...", PreviousQuestIds = new(), + Genre = quest.Genre, }; } diff --git a/Influx/LocalStatistics/QuestInfo.cs b/Influx/LocalStatistics/QuestInfo.cs index 7687bbe..a5766fc 100644 --- a/Influx/LocalStatistics/QuestInfo.cs +++ b/Influx/LocalStatistics/QuestInfo.cs @@ -4,8 +4,8 @@ namespace Influx.LocalStatistics; public class QuestInfo { - public uint RowId { get; set; } - public string Name { get; set; } - public List PreviousQuestIds { get; set; } - public uint Genre { get; set; } + public required uint RowId { get; init; } + public required string Name { get; init; } + public required List PreviousQuestIds { get; init; } + public required uint Genre { get; init; } } diff --git a/Influx/SubmarineTracker/Build.cs b/Influx/SubmarineTracker/Build.cs new file mode 100644 index 0000000..b568247 --- /dev/null +++ b/Influx/SubmarineTracker/Build.cs @@ -0,0 +1,27 @@ +using System; + +namespace Influx.SubmarineTracker; + +public class Build +{ + public Build(object @delegate) + { + + HullIdentifier = + (string)@delegate.GetType().GetProperty("HullIdentifier")!.GetValue(@delegate)!; + SternIdentifier = + (string)@delegate.GetType().GetProperty("SternIdentifier")!.GetValue(@delegate)!; + BowIdentifier = + (string)@delegate.GetType().GetProperty("BowIdentifier")!.GetValue(@delegate)!; + BridgeIdentifier = + (string)@delegate.GetType().GetProperty("BridgeIdentifier")!.GetValue(@delegate)!; + FullIdentifier = + (string)@delegate.GetType().GetMethod("FullIdentifier")!.Invoke(@delegate, Array.Empty())!; + } + + public string HullIdentifier { get; } + public string SternIdentifier { get; } + public string BowIdentifier { get; } + public string BridgeIdentifier { get; } + public string FullIdentifier { get; } +} diff --git a/Influx/SubmarineTracker/Submarine.cs b/Influx/SubmarineTracker/Submarine.cs index 7cdd10d..fcc5304 100644 --- a/Influx/SubmarineTracker/Submarine.cs +++ b/Influx/SubmarineTracker/Submarine.cs @@ -2,15 +2,14 @@ public sealed class Submarine { - private readonly object _delegate; - public Submarine(object @delegate) { - _delegate = @delegate; - Name = (string)_delegate.GetType().GetProperty("Name")!.GetValue(_delegate)!; - Level = (ushort)_delegate.GetType().GetProperty("Rank")!.GetValue(_delegate)!; + Name = (string)@delegate.GetType().GetProperty("Name")!.GetValue(@delegate)!; + Level = (ushort)@delegate.GetType().GetProperty("Rank")!.GetValue(@delegate)!; + Build = new Build(@delegate.GetType().GetProperty("Build")!.GetValue(@delegate)!); } - public string Name { get; set; } + public string Name { get; } public ushort Level { get; } + public Build Build { get; } } diff --git a/Influx/SubmarineTracker/SubmarineStats.cs b/Influx/SubmarineTracker/SubmarineStats.cs index 9230e6c..04e28c0 100644 --- a/Influx/SubmarineTracker/SubmarineStats.cs +++ b/Influx/SubmarineTracker/SubmarineStats.cs @@ -5,4 +5,10 @@ public sealed class SubmarineStats public required string Name { get; init; } public required int Id { get; init; } public required ushort Level { get; init; } + + public required string Hull { get; init; } + public required string Stern { get; init; } + public required string Bow { get; init; } + public required string Bridge { get; init; } + public required string Build { get; init; } } diff --git a/Influx/SubmarineTracker/SubmarineTrackerIpc.cs b/Influx/SubmarineTracker/SubmarineTrackerIpc.cs index 2294601..c5dce06 100644 --- a/Influx/SubmarineTracker/SubmarineTrackerIpc.cs +++ b/Influx/SubmarineTracker/SubmarineTrackerIpc.cs @@ -39,6 +39,11 @@ internal sealed class SubmarineTrackerIpc Id = x.Subs.IndexOf(y), Name = y.Name, Level = y.Level, + Hull = y.Build.HullIdentifier, + Stern = y.Build.SternIdentifier, + Bow = y.Build.BowIdentifier, + Bridge = y.Build.BridgeIdentifier, + Build = y.Build.FullIdentifier, }).ToList()); } else