#if UNITY_EDITOR || DEVELOPMENT_BUILD using System; using System.IO; using System.Text; using UnityEngine; namespace BrewMonster { /// NDJSON debug session logger (agent instrumentation). public static class DebugSessionLog { const string LogPath = @"c:\Hoang\PW\debug-f32222.log"; const string SessionId = "f32222"; public static void Write(string location, string message, string hypothesisId, object data, string runId = "pre-fix") { try { var ts = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); var dataJson = data != null ? JsonUtility.ToJson(data) : "{}"; var line = $"{{\"sessionId\":\"{SessionId}\",\"runId\":\"{runId}\",\"hypothesisId\":\"{hypothesisId}\",\"location\":\"{Escape(location)}\",\"message\":\"{Escape(message)}\",\"data\":{dataJson},\"timestamp\":{ts}}}\n"; File.AppendAllText(LogPath, line, Encoding.UTF8); } catch { /* ignore */ } } static string Escape(string s) => (s ?? "").Replace("\\", "\\\\").Replace("\"", "\\\""); } [Serializable] public class DebugSessionPayload { public int skillId; public int hostId; public int castTargetId; public int targetId; public int targetCount; public bool castInTargets; public bool alreadyFired; public int flyClusterCount; public int eventId; public string flyGfx; public string prevState; public string newState; public int frame; } } #endif