Slice 2: telemetry, vitals, chat, spawn/portal, rare, kills and combat stats
The frames the backend reads most, each pinned by a golden test written from the original's source (field order, JSON types, string-formatted numbers, mem_mb in bytes, the PascalCase aggregates Newtonsoft emits for combat_stats). Coordinates repeat the original's float arithmetic from the landblock-local float, so ew/ns carry the same float-widened values as before. Telemetry goes out on connect and every 5 s, vitals every 5 s, combat stats every 10 s when dirty. The rare meta-state switch is not carried over (owner decision); the allegiance rare announcement and the !report reply are. Kill patterns and combat patterns are the original's, unchanged. Also fixes the tick scheduler re-arming repeating jobs from now instead of from their due time, which made every cadence drift a frame late per period. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
5dbb294a96
commit
1ff0a40aeb
19 changed files with 1824 additions and 5 deletions
|
|
@ -1,4 +1,7 @@
|
|||
using OpenAC.MosswartMassacre.Backend;
|
||||
using OpenAC.MosswartMassacre.Infrastructure;
|
||||
using OpenAC.MosswartMassacre.Streams;
|
||||
using OpenAC.MosswartMassacre.Trackers;
|
||||
|
||||
namespace OpenAC.MosswartMassacre;
|
||||
|
||||
|
|
@ -10,8 +13,20 @@ internal static class FeatureCatalog
|
|||
{
|
||||
public static void AddFeatures(MmContext context, BackendSession session, List<IMmFeature> features)
|
||||
{
|
||||
_ = context;
|
||||
_ = session;
|
||||
_ = features;
|
||||
// Streams and session counters.
|
||||
var delayed = new DelayedCommands(context);
|
||||
var kills = new KillTracker(context.Clock);
|
||||
var rares = new RareTracker(context, delayed);
|
||||
var combat = new CombatStatsTracker(context);
|
||||
var stats = new SessionStats(context, kills, rares);
|
||||
var telemetry = new TelemetryStream(context, stats);
|
||||
features.Add(stats);
|
||||
features.Add(combat);
|
||||
features.Add(new ChatRouter(context, kills, combat, rares));
|
||||
features.Add(telemetry);
|
||||
features.Add(new VitalsStream(context));
|
||||
features.Add(new SpawnPortalStream(context));
|
||||
features.Add(new BotControl(context));
|
||||
session.AddConnectionListener(telemetry);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue