diff --git a/MosswartMassacre/MainView.cs b/MosswartMassacre/MainView.cs index 063e7f7..8a98ed1 100644 --- a/MosswartMassacre/MainView.cs +++ b/MosswartMassacre/MainView.cs @@ -13,6 +13,7 @@ namespace MosswartMassacre private static IStaticText lblRareCount; private static IButton btnRestart; private static IButton btnToggleRareMeta; + private static bool rareMetaEnabled = true; public static void ViewInit() { @@ -66,15 +67,7 @@ namespace MosswartMassacre public static void UpdateElapsedTime(TimeSpan elapsed) { - int days = elapsed.Days; - int hours = elapsed.Hours; - int minutes = elapsed.Minutes; - int seconds = elapsed.Seconds; - - if (days > 0) - lblElapsedTime.Text = $"Time: {days}d {hours:D2}:{minutes:D2}:{seconds:D2}"; - else - lblElapsedTime.Text = $"Time: {hours:D2}:{minutes:D2}:{seconds:D2}"; + lblElapsedTime.Text = $"Elapsed Time: {elapsed:hh\\:mm\\:ss}"; } public static void UpdateRareCount(int rareCount) { @@ -86,11 +79,10 @@ namespace MosswartMassacre } private static void OnToggleRareMetaClick(object sender, EventArgs e) { - PluginCore.ToggleRareMeta(); - } - public static void SetRareMetaToggleState(bool enabled) - { - btnToggleRareMeta.Text = enabled ? "Meta: ON" : "Meta: OFF"; + rareMetaEnabled = !rareMetaEnabled; + btnToggleRareMeta.Text = rareMetaEnabled ? "Meta: ON" : "Meta: OFF"; + PluginCore.rareMetaEnabled = rareMetaEnabled; // Share toggle with PluginCore + PluginCore.WriteToChat($"[Debug] rareMetaEnabled is now: {rareMetaEnabled}"); } } } diff --git a/MosswartMassacre/MosswartMassacre.dll b/MosswartMassacre/MosswartMassacre.dll new file mode 100644 index 0000000..73d7229 Binary files /dev/null and b/MosswartMassacre/MosswartMassacre.dll differ diff --git a/MosswartMassacre/PluginCore.cs b/MosswartMassacre/PluginCore.cs index e2e96cc..aa2d4af 100644 --- a/MosswartMassacre/PluginCore.cs +++ b/MosswartMassacre/PluginCore.cs @@ -19,7 +19,7 @@ namespace MosswartMassacre internal static double killsPerHour = 0; internal static DateTime statsStartTime = DateTime.Now; internal static Timer updateTimer; - public static bool RareMetaEnabled { get; private set; } = true; + internal static bool rareMetaEnabled = true; private static Queue rareMessageQueue = new Queue(); private static DateTime _lastSent = DateTime.MinValue; private static readonly Queue _chatQueue = new Queue(); @@ -33,7 +33,6 @@ namespace MosswartMassacre // Subscribe to chat message event CoreManager.Current.ChatBoxMessage += new EventHandler(OnChatText); - CoreManager.Current.CommandLineText += OnChatCommand; // Initialize the timer updateTimer = new Timer(1000); // Update every second @@ -57,7 +56,6 @@ namespace MosswartMassacre // Unsubscribe from chat message event CoreManager.Current.ChatBoxMessage -= new EventHandler(OnChatText); - CoreManager.Current.CommandLineText -= OnChatCommand; // Stop and dispose of the timer if (updateTimer != null) @@ -96,36 +94,36 @@ namespace MosswartMassacre rareCount++; MainView.UpdateRareCount(rareCount); - if (RareMetaEnabled) + if (rareMetaEnabled) { Decal_DispatchOnChatCommand("/vt setmetastate loot_rare"); } DelayedCommandManager.AddDelayedCommand($"/a {rareText}", 3000); } - // if (e.Text.EndsWith("!testrare\"")) - // { - // string simulatedText = $"{CoreManager.Current.CharacterFilter.Name} has discovered the Ancient Pickle!"; - // - // if (IsRareDiscoveryMessage(simulatedText, out string simulatedRareText)) - // { - // rareCount++; - // MainView.UpdateRareCount(rareCount); - // - // if (RareMetaEnabled) - // { - // Decal_DispatchOnChatCommand("/vt setmetastate loot_rare"); - // } - // - // DelayedCommandManager.AddDelayedCommand($"/a {simulatedRareText}", 3000); - // } - // else - // { - // WriteToChat("[Test] Simulated rare message didn't match the regex."); - // } - // - // return; - // } + if (e.Text.EndsWith("!testrare\"")) + { + string simulatedText = $"{CoreManager.Current.CharacterFilter.Name} has discovered the Ancient Pickle!"; + + if (IsRareDiscoveryMessage(simulatedText, out string simulatedRareText)) + { + rareCount++; + MainView.UpdateRareCount(rareCount); + + if (rareMetaEnabled) + { + Decal_DispatchOnChatCommand("/vt setmetastate loot_rare"); + } + + DelayedCommandManager.AddDelayedCommand($"/a {simulatedRareText}", 3000); + } + else + { + WriteToChat("[Test] Simulated rare message didn't match the regex."); + } + + return; + } if (e.Color == 18 && e.Text.EndsWith("!report\"")) { TimeSpan elapsed = DateTime.Now - statsStartTime; @@ -139,21 +137,6 @@ namespace MosswartMassacre WriteToChat("Error processing chat message: " + ex.Message); } } - private void OnChatCommand(object sender, ChatParserInterceptEventArgs e) - { - try - { - if (e.Text.StartsWith("/mm", StringComparison.OrdinalIgnoreCase)) - { - e.Eat = true; // Prevent the message from showing in chat - HandleMmCommand(e.Text); - } - } - catch (Exception ex) - { - PluginCore.WriteToChat($"[Error] Failed to process /mm command: {ex.Message}"); - } - } private void UpdateStats(object sender, ElapsedEventArgs e) { @@ -266,12 +249,6 @@ namespace MosswartMassacre MainView.UpdateKillStats(totalKills, killsPer5Min, killsPerHour); MainView.UpdateRareCount(rareCount); } - public static void ToggleRareMeta() - { - RareMetaEnabled = !RareMetaEnabled; - MainView.SetRareMetaToggleState(RareMetaEnabled); - } - [DllImport("Decal.dll")] private static extern int DispatchOnChatCommand(ref IntPtr str, [MarshalAs(UnmanagedType.U4)] int target); @@ -294,50 +271,6 @@ namespace MosswartMassacre if (!Decal_DispatchOnChatCommand(cmd)) CoreManager.Current.Actions.InvokeChatParser(cmd); } - private void HandleMmCommand(string text) - { - // Remove the /mm prefix and trim extra whitespace - string[] args = text.Substring(3).Trim().Split(' '); - - if (args.Length == 0 || string.IsNullOrEmpty(args[0])) - { - WriteToChat("Usage: /mm . Try /mm help"); - return; - } - - string subCommand = args[0].ToLower(); - - switch (subCommand) - { - case "help": - WriteToChat("Mosswart Massacre Commands:"); - WriteToChat("/mm report - Show current stats"); - WriteToChat("/mm reset - Reset all counters"); - WriteToChat("/mm meta - Toggle rare meta state"); - break; - - case "report": - TimeSpan elapsed = DateTime.Now - statsStartTime; - string reportMessage = $"Total Kills: {totalKills}, Kills per Hour: {killsPerHour:F2}, Elapsed Time: {elapsed:dd\\.hh\\:mm\\:ss}, Rares Found: {rareCount}"; - WriteToChat(reportMessage); - break; - - case "reset": - RestartStats(); - break; - - case "meta": - RareMetaEnabled = !RareMetaEnabled; - WriteToChat($"Rare meta state is now {(RareMetaEnabled ? "ON" : "OFF")}"); - MainView.SetRareMetaToggleState(RareMetaEnabled); // <-- sync the UI - break; - - default: - WriteToChat($"Unknown /mm command: {subCommand}. Try /mm help"); - break; - } - } - } } diff --git a/MosswartMassacre/Properties/AssemblyInfo.cs b/MosswartMassacre/Properties/AssemblyInfo.cs index 44e8cd1..3a7c682 100644 --- a/MosswartMassacre/Properties/AssemblyInfo.cs +++ b/MosswartMassacre/Properties/AssemblyInfo.cs @@ -26,5 +26,5 @@ using System.Runtime.InteropServices; // Minor Version // Build Number // Revision -[assembly: AssemblyVersion("1.0.0.1")] -[assembly: AssemblyFileVersion("1.0.0.1")] \ No newline at end of file +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/MosswartMassacre/ViewXML/mainView.xml b/MosswartMassacre/ViewXML/mainView.xml index f5161ca..78e6865 100644 --- a/MosswartMassacre/ViewXML/mainView.xml +++ b/MosswartMassacre/ViewXML/mainView.xml @@ -4,7 +4,7 @@ - + diff --git a/MosswartMassacre/bin/Release/MosswartMassacre.dll b/MosswartMassacre/bin/Release/MosswartMassacre.dll deleted file mode 100644 index 1307bcd..0000000 Binary files a/MosswartMassacre/bin/Release/MosswartMassacre.dll and /dev/null differ