diff options
| author | Pinapelz <yukais@pinapelz.com> | 2024-08-31 21:36:58 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2024-08-31 22:18:31 -0700 |
| commit | 93da740bb7a82086c8e5f7d6b9889937d84d5b1b (patch) | |
| tree | c04b3dc31c0ca95ec51f8ba8e3b8ffd876571f12 | |
| parent | c5bbbb92b7e5c62b7c028058c1031fa085afad20 (diff) | |
refactor: change calculator return data to struct
| -rw-r--r-- | Malmstone/Plugin.cs | 213 | ||||
| -rw-r--r-- | Malmstone/Utils/MalmstoneXPCalculator.cs | 88 | ||||
| -rw-r--r-- | Malmstone/Windows/MainWindow.cs | 66 |
3 files changed, 194 insertions, 173 deletions
diff --git a/Malmstone/Plugin.cs b/Malmstone/Plugin.cs index 5b92da3..d4f4cfd 100644 --- a/Malmstone/Plugin.cs +++ b/Malmstone/Plugin.cs @@ -10,6 +10,8 @@ using Dalamud.Game.Text.SeStringHandling; using Dalamud.Game.Text.SeStringHandling.Payloads; using System.Collections.Generic; using System.Linq; +using Malmstone.Utils; + namespace Malmstone; public sealed class Plugin : IDalamudPlugin @@ -17,7 +19,6 @@ public sealed class Plugin : IDalamudPlugin [PluginService] internal static IDalamudPluginInterface PluginInterface { get; private set; } = null!; [PluginService] internal static ITextureProvider TextureProvider { get; private set; } = null!; [PluginService] internal static ICommandManager CommandManager { get; private set; } = null!; - [PluginService] internal static IChatGui Chat { get; private set; } = null!; private const string CommandName = "/pmalm"; @@ -60,146 +61,150 @@ public sealed class Plugin : IDalamudPlugin CommandManager.RemoveHandler(CommandName); } - private void OnCommand(string command, string args) +private void OnCommand(string command, string args) +{ + if (string.IsNullOrWhiteSpace(args)) { - if (string.IsNullOrWhiteSpace(args)) + ToggleMainUI(); + return; + } + + var splitArgs = args.Split(' ', StringSplitOptions.RemoveEmptyEntries); + var specs = new HashSet<string>(splitArgs.Skip(1).Select(spec => spec.ToLower())); + + var pvpInfo = PvPService.GetPvPSeriesInfo(); + + if (pvpInfo == null) return; + if (!int.TryParse(splitArgs[0], out int targetRank)) + { + if (splitArgs[0] == "next") targetRank = pvpInfo.CurrentSeriesRank + 1; + else if (splitArgs[0] == "config") { - ToggleMainUI(); + ToggleConfigUI(); return; } + else return; - var splitArgs = args.Split(' ', StringSplitOptions.RemoveEmptyEntries); - var specs = new HashSet<string>(splitArgs.Skip(1).Select(spec => spec.ToLower())); + } + // Show games left in chat log when there are args - var pvpInfo = PvPService.GetPvPSeriesInfo(); + if (targetRank < 1) + { + Chat.PrintError("Can't have a target rank less than 1"); + return; + } + + if (targetRank > 107397) + { + Chat.PrintError("Can't have a target rank greater than 107397 (are you really gonna be able to reach that anyways?)"); + return; + } + + if (targetRank < pvpInfo.CurrentSeriesRank) + { + Chat.PrintError("You've already surpassed Rank " + targetRank); + return; + } + + var xpResult = MalmstoneXPCalculator.CalculateXp( + pvpInfo.CurrentSeriesRank, + targetRank, + pvpInfo.SeriesExperience); + + bool includeAll = specs.Contains("all"); + if (!specs.Any()) + { + includeAll = true; + } + var seString = new SeString(new List<Payload>()); + seString.Append(new TextPayload("\n[To Series Level " + targetRank + "]")); - if (pvpInfo == null) return; - if (!int.TryParse(splitArgs[0], out int targetRank)) + // Crystalline Conflict + if (includeAll || specs.Contains("cc")) + { + seString.Append(new TextPayload("\nCrystalline Conflict:\n")); + seString.Append(new UIForegroundPayload(35)); + + if (xpResult.CrystallineConflictWin > 0) { - if (splitArgs[0] == "next") targetRank = pvpInfo.CurrentSeriesRank + 1; - else if (splitArgs[0] == "config") - { - ToggleConfigUI(); - return; - } - else return; + seString.Append(new TextPayload($"Win: {xpResult.CrystallineConflictWin} " + (xpResult.CrystallineConflictWin == 1 ? "time" : "times") + "\n")); + } + if (xpResult.CrystallineConflictLose > 0) + { + seString.Append(new TextPayload($"Lose: {xpResult.CrystallineConflictLose} " + (xpResult.CrystallineConflictLose == 1 ? "time" : "times") + "\n")); } - // Show games left in chat log when there are args + seString.Append(UIForegroundPayload.UIForegroundOff); + } + + //Frontlines + if (includeAll || specs.Contains("fl")) + { + seString.Append(new TextPayload("\nFrontlines:\n")); + seString.Append(new UIForegroundPayload(518)); - if (targetRank < 1) + if (xpResult.FrontlineWin > 0) { - Chat.PrintError("Can't have a target rank less than 1"); - return; + seString.Append(new TextPayload($"Take 1st Place: {xpResult.FrontlineWin} " + (xpResult.FrontlineWin == 1 ? "time" : "times") + "\n")); } - if (targetRank > 107397) + if (xpResult.FrontlineLose2nd > 0) { - Chat.PrintError("Can't have a target rank greater than 107397 (are you really gonna be able to reach that anyways?)"); - return; + seString.Append(new TextPayload($"Take 2nd Place: {xpResult.FrontlineLose2nd} " + (xpResult.FrontlineLose2nd == 1 ? "time" : "times") + "\n")); } - if (targetRank < pvpInfo.CurrentSeriesRank) + if (xpResult.FrontlineLose3rd > 0) { - Chat.PrintError("You've already surpassed Rank " + targetRank); - return; + seString.Append(new TextPayload($"Take 3rd Place: {xpResult.FrontlineLose3rd} " + (xpResult.FrontlineLose3rd == 1 ? "time" : "times") + "\n")); } - var xpResult = Malmstone.Utils.MalmstoneXPCalculator.CalculateXp( - pvpInfo.CurrentSeriesRank, - targetRank, - pvpInfo.SeriesExperience); + seString.Append(UIForegroundPayload.UIForegroundOff); - bool includeAll = specs.Contains("all"); - if (!specs.Any()) + seString.Append(new TextPayload("\nFrontlines (Roulette):\n")); + seString.Append(new UIForegroundPayload(518)); + + if (xpResult.FrontlineDailyWin > 0) { - includeAll = true; + seString.Append(new TextPayload($"Take 1st Place: {xpResult.FrontlineDailyWin} " + (xpResult.FrontlineDailyWin == 1 ? "time" : "times") + "\n")); } - var seString = new SeString(new List<Payload>()); - seString.Append(new TextPayload("\n[To Series Level " + targetRank + "]")); - // Crystalline Conflict - if (includeAll || specs.Contains("cc")) + if (xpResult.FrontlineDailyLose2nd > 0) { - seString.Append(new TextPayload("\nCrystalline Conflict:\n")); - seString.Append(new UIForegroundPayload(35)); - if (xpResult.ActivityCounts.ContainsKey("Crystalline Conflict Win")) - { - var winCount = xpResult.ActivityCounts["Crystalline Conflict Win"]; - seString.Append(new TextPayload($"Win: {winCount} " + (winCount == 1 ? "time" : "times") + "\n")); - } - if (xpResult.ActivityCounts.ContainsKey("Crystalline Conflict Lose")) - { - var loseCount = xpResult.ActivityCounts["Crystalline Conflict Lose"]; - seString.Append(new TextPayload($"Lose: {loseCount} " + (loseCount == 1 ? "time" : "times") + "\n")); - } - seString.Append(UIForegroundPayload.UIForegroundOff); + seString.Append(new TextPayload($"Take 2nd Place: {xpResult.FrontlineDailyLose2nd} " + (xpResult.FrontlineDailyLose2nd == 1 ? "time" : "times") + "\n")); } - //Frontlines - if (includeAll || specs.Contains("fl")) + if (xpResult.FrontlineDailyLose3rd > 0) { - seString.Append(new TextPayload("\nFrontlines:\n")); - seString.Append(new UIForegroundPayload(518)); - if (xpResult.ActivityCounts.ContainsKey("Frontline Win")) - { - var frontlineWinCount = xpResult.ActivityCounts["Frontline Win"]; - seString.Append(new TextPayload($"Take 1st Place: {frontlineWinCount} " + (frontlineWinCount == 1 ? "time" : "times") + "\n")); - } - if (xpResult.ActivityCounts.ContainsKey("Frontline Lose 2nd")) - { - var frontlineLose2ndCount = xpResult.ActivityCounts["Frontline Lose 2nd"]; - seString.Append(new TextPayload($"Take 2nd Place: {frontlineLose2ndCount} " + (frontlineLose2ndCount == 1 ? "time" : "times") + "\n")); - } - if (xpResult.ActivityCounts.ContainsKey("Frontline Lose 3rd")) - { - var frontlineLose3rdCount = xpResult.ActivityCounts["Frontline Lose 3rd"]; - seString.Append(new TextPayload($"Take 3rd Place: {frontlineLose3rdCount} " + (frontlineLose3rdCount == 1 ? "time" : "times") + "\n")); - } - seString.Append(UIForegroundPayload.UIForegroundOff); + seString.Append(new TextPayload($"Take 3rd Place: {xpResult.FrontlineDailyLose3rd} " + (xpResult.FrontlineDailyLose3rd == 1 ? "time" : "times") + "\n")); + } + + seString.Append(UIForegroundPayload.UIForegroundOff); + } + + // Rival Wings + if (includeAll || specs.Contains("rw")) + { + seString.Append(new TextPayload("\nRival Wings:\n")); + seString.Append(new UIForegroundPayload(43)); - seString.Append(new TextPayload("\nFrontlines (Roulette):\n")); - seString.Append(new UIForegroundPayload(518)); - if (xpResult.ActivityCounts.ContainsKey("Frontline Daily Win")) - { - var frontlineDailyWinCount = xpResult.ActivityCounts["Frontline Daily Win"]; - seString.Append(new TextPayload($"Take 1st Place: {frontlineDailyWinCount} " + (frontlineDailyWinCount == 1 ? "time" : "times") + "\n")); - } - if (xpResult.ActivityCounts.ContainsKey("Frontline Daily Lose 2nd")) - { - var frontlineDailyLose2ndCount = xpResult.ActivityCounts["Frontline Daily Lose 2nd"]; - seString.Append(new TextPayload($"Take 2nd Place: {frontlineDailyLose2ndCount} " + (frontlineDailyLose2ndCount == 1 ? "time" : "times") + "\n")); - } - if (xpResult.ActivityCounts.ContainsKey("Frontline Daily Lose 3rd")) - { - var frontlineDailyLose3rdCount = xpResult.ActivityCounts["Frontline Daily Lose 3rd"]; - seString.Append(new TextPayload($"Take 3rd Place: {frontlineDailyLose3rdCount} " + (frontlineDailyLose3rdCount == 1 ? "time" : "times") + "\n")); - } - seString.Append(UIForegroundPayload.UIForegroundOff); + if (xpResult.RivalWingsWin > 0) + { + seString.Append(new TextPayload($"Win: {xpResult.RivalWingsWin} " + (xpResult.RivalWingsWin == 1 ? "time" : "times") + "\n")); } - // Rival Wings - if (includeAll || specs.Contains("rw")) + if (xpResult.RivalWingsLose > 0) { - seString.Append(new TextPayload("\nRival Wings:\n")); - seString.Append(new UIForegroundPayload(43)); - if (xpResult.ActivityCounts.ContainsKey("Rival Wings Win")) - { - var rivalWingsWinCount = xpResult.ActivityCounts["Rival Wings Win"]; - seString.Append(new TextPayload($"Win: {rivalWingsWinCount} " + (rivalWingsWinCount == 1 ? "time" : "times") + "\n")); - } - if (xpResult.ActivityCounts.ContainsKey("Rival Wings Lose")) - { - var rivalWingsLoseCount = xpResult.ActivityCounts["Rival Wings Lose"]; - seString.Append(new TextPayload($"Lose: {rivalWingsLoseCount} " + (rivalWingsLoseCount == 1 ? "time" : "times") + "\n")); - } - seString.Append(UIForegroundPayload.UIForegroundOff); + seString.Append(new TextPayload($"Lose: {xpResult.RivalWingsLose} " + (xpResult.RivalWingsLose == 1 ? "time" : "times") + "\n")); } - if (seString.Payloads.Count > 0) Chat.Print(seString); + seString.Append(UIForegroundPayload.UIForegroundOff); } + if (seString.Payloads.Count > 0) Chat.Print(seString); +} + + private void DrawUI() => WindowSystem.Draw(); diff --git a/Malmstone/Utils/MalmstoneXPCalculator.cs b/Malmstone/Utils/MalmstoneXPCalculator.cs index 4834def..85ecadf 100644 --- a/Malmstone/Utils/MalmstoneXPCalculator.cs +++ b/Malmstone/Utils/MalmstoneXPCalculator.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; namespace Malmstone.Utils { - public static class MalmstoneXPCalculator + public class MalmstoneXPCalculator { private static readonly int[] PvpLevels = { 0, 2000, 2000, 2000, 2000, 3000, 3000, 3000, 3000, 3000, 4000, 4000, 4000, 4000, 4000, 5500, 5500, 5500, 5500, 5500, @@ -22,11 +22,20 @@ namespace Malmstone.Utils private const int RivalWingsWinExp = 1250; private const int RivalWingsLoseExp = 750; - public class XpCalculationResult + public struct XpCalculationResult { - public int RemainingXp { get; set; } - public int TargetLevel { get; set; } - public Dictionary<string, int> ActivityCounts { get; set; } = new(); + public int RemainingXp; + public int TargetLevel; + public int CrystallineConflictWin; + public int CrystallineConflictLose; + public int FrontlineWin; + public int FrontlineLose2nd; + public int FrontlineLose3rd; + public int FrontlineDailyWin; + public int FrontlineDailyLose2nd; + public int FrontlineDailyLose3rd; + public int RivalWingsWin; + public int RivalWingsLose; } public static XpCalculationResult CalculateXp(int currentLevel, int goalLevel, int currentProgress) @@ -56,22 +65,68 @@ namespace Malmstone.Utils { RemainingXp = remainingXp, TargetLevel = goalLevel, + CrystallineConflictWin = CalculateActivityCount(remainingXp, CrystallineWinExp), + CrystallineConflictLose = CalculateActivityCount(remainingXp, CrystallineLoseExp), + FrontlineWin = CalculateActivityCount(remainingXp, FrontlineWinExp), + FrontlineLose2nd = CalculateActivityCount(remainingXp, FrontlineLose2Exp), + FrontlineLose3rd = CalculateActivityCount(remainingXp, FrontlineLoseExp), + FrontlineDailyWin = CalculateActivityCount(remainingXp, FrontlineDailyWinExp), + FrontlineDailyLose2nd = CalculateActivityCount(remainingXp, FrontlineDailyLose2Exp), + FrontlineDailyLose3rd = CalculateActivityCount(remainingXp, FrontlineDailyLoseExp), + RivalWingsWin = CalculateActivityCount(remainingXp, RivalWingsWinExp), + RivalWingsLose = CalculateActivityCount(remainingXp, RivalWingsLoseExp) }; - result.ActivityCounts["Crystalline Conflict Win"] = CalculateActivityCount(remainingXp, CrystallineWinExp); - result.ActivityCounts["Crystalline Conflict Lose"] = CalculateActivityCount(remainingXp, CrystallineLoseExp); - result.ActivityCounts["Frontline Win"] = CalculateActivityCount(remainingXp, FrontlineWinExp); - result.ActivityCounts["Frontline Lose 2nd"] = CalculateActivityCount(remainingXp, FrontlineLose2Exp); - result.ActivityCounts["Frontline Lose 3rd"] = CalculateActivityCount(remainingXp, FrontlineLoseExp); - result.ActivityCounts["Frontline Daily Win"] = CalculateActivityCount(remainingXp, FrontlineDailyWinExp); - result.ActivityCounts["Frontline Daily Lose 2nd"] = CalculateActivityCount(remainingXp, FrontlineDailyLose2Exp); - result.ActivityCounts["Frontline Daily Lose 3rd"] = CalculateActivityCount(remainingXp, FrontlineDailyLoseExp); - result.ActivityCounts["Rival Wings Win"] = CalculateActivityCount(remainingXp, RivalWingsWinExp); - result.ActivityCounts["Rival Wings Lose"] = CalculateActivityCount(remainingXp, RivalWingsLoseExp); + return result; + } + + public static XpCalculationResult CalculateCrystallineConflictMatches(int currentLevel, int goalLevel, int currentProgress) + { + var baseResult = CalculateXp(currentLevel, goalLevel, currentProgress); + var result = new XpCalculationResult + { + RemainingXp = baseResult.RemainingXp, + TargetLevel = baseResult.TargetLevel, + CrystallineConflictWin = CalculateActivityCount(baseResult.RemainingXp, CrystallineWinExp), + CrystallineConflictLose = CalculateActivityCount(baseResult.RemainingXp, CrystallineLoseExp) + }; + + return result; + } + + public static XpCalculationResult CalculateFrontlineMatches(int currentLevel, int goalLevel, int currentProgress) + { + var baseResult = CalculateXp(currentLevel, goalLevel, currentProgress); + var result = new XpCalculationResult + { + RemainingXp = baseResult.RemainingXp, + TargetLevel = baseResult.TargetLevel, + FrontlineWin = CalculateActivityCount(baseResult.RemainingXp, FrontlineWinExp), + FrontlineLose2nd = CalculateActivityCount(baseResult.RemainingXp, FrontlineLose2Exp), + FrontlineLose3rd = CalculateActivityCount(baseResult.RemainingXp, FrontlineLoseExp), + FrontlineDailyWin = CalculateActivityCount(baseResult.RemainingXp, FrontlineDailyWinExp), + FrontlineDailyLose2nd = CalculateActivityCount(baseResult.RemainingXp, FrontlineDailyLose2Exp), + FrontlineDailyLose3rd = CalculateActivityCount(baseResult.RemainingXp, FrontlineDailyLoseExp) + }; + + return result; + } + + public static XpCalculationResult CalculateRivalWingsMatches(int currentLevel, int goalLevel, int currentProgress) + { + var baseResult = CalculateXp(currentLevel, goalLevel, currentProgress); + var result = new XpCalculationResult + { + RemainingXp = baseResult.RemainingXp, + TargetLevel = baseResult.TargetLevel, + RivalWingsWin = CalculateActivityCount(baseResult.RemainingXp, RivalWingsWinExp), + RivalWingsLose = CalculateActivityCount(baseResult.RemainingXp, RivalWingsLoseExp) + }; return result; } + private static int CalculateRemainingXp(int currentLevel, int goalLevel, int currentProgress) { int remainingXp = 0; @@ -101,7 +156,8 @@ namespace Malmstone.Utils private static int CalculateActivityCount(int remainingXp, int activityXp) { - return (int)Math.Ceiling((double)remainingXp / activityXp); + // Should always be greater than 0 + return Math.Max(1, (int)Math.Ceiling((double)remainingXp / activityXp)); } } } diff --git a/Malmstone/Windows/MainWindow.cs b/Malmstone/Windows/MainWindow.cs index 2c70944..39addd4 100644 --- a/Malmstone/Windows/MainWindow.cs +++ b/Malmstone/Windows/MainWindow.cs @@ -17,7 +17,7 @@ namespace Malmstone.Windows private int _lastSeriesRank; private int _lastTargetSeriesRank; private int _lastSeriesExperience; - private Malmstone.Utils.MalmstoneXPCalculator.XpCalculationResult _cachedXpResult; + private MalmstoneXPCalculator.XpCalculationResult _cachedXpResult; public MainWindow(Plugin plugin) : base("Malmstone") @@ -42,7 +42,7 @@ namespace Malmstone.Windows if (pvpInfo != null) { ImGui.Text($"Current Series Level: {pvpInfo.CurrentSeriesRank}"); - ImGui.Text($"Current Level Experience Gained: {pvpInfo.SeriesExperience}"); + ImGui.Text($"Current Level Experience Progress: {pvpInfo.SeriesExperience} XP"); if (pvpInfo.CurrentSeriesRank != pvpInfo.ClaimedSeriesRank) { ImGui.Text("Don't forget to claim your rank rewards!"); @@ -83,16 +83,8 @@ namespace Malmstone.Windows // Crystalline Conflict Section ImGui.TextColored(new Vector4(0.6f, 0.8f, 1f, 1f), "Crystalline Conflict"); ImGui.Spacing(); - if (xpResult.ActivityCounts.ContainsKey("Crystalline Conflict Win")) - { - var winCount = xpResult.ActivityCounts["Crystalline Conflict Win"]; - ImGui.BulletText($"Win: {winCount} " + (winCount == 1 ? "time" : "times")); - } - if (xpResult.ActivityCounts.ContainsKey("Crystalline Conflict Lose")) - { - var loseCount = xpResult.ActivityCounts["Crystalline Conflict Lose"]; - ImGui.BulletText($"Lose: {loseCount} " + (loseCount == 1 ? "time" : "times")); - } + ImGui.BulletText($"Win: {xpResult.CrystallineConflictWin} " + (xpResult.CrystallineConflictWin == 1 ? "time" : "times")); + ImGui.BulletText($"Lose: {xpResult.CrystallineConflictLose} " + (xpResult.CrystallineConflictLose == 1 ? "time" : "times")); ImGui.Spacing(); ImGui.Separator(); @@ -100,40 +92,16 @@ namespace Malmstone.Windows // Frontlines Section ImGui.TextColored(new Vector4(0.8f, 0.6f, 0.6f, 1f), "Frontlines"); ImGui.Spacing(); - if (xpResult.ActivityCounts.ContainsKey("Frontline Win")) - { - var frontlineWinCount = xpResult.ActivityCounts["Frontline Win"]; - ImGui.BulletText($"Take 1st Place: {frontlineWinCount} " + (frontlineWinCount == 1 ? "time" : "times")); - } - if (xpResult.ActivityCounts.ContainsKey("Frontline Lose 2nd")) - { - var frontlineLose2ndCount = xpResult.ActivityCounts["Frontline Lose 2nd"]; - ImGui.BulletText($"Take 2nd Place: {frontlineLose2ndCount} " + (frontlineLose2ndCount == 1 ? "time" : "times")); - } - if (xpResult.ActivityCounts.ContainsKey("Frontline Lose 3rd")) - { - var frontlineLose3rdCount = xpResult.ActivityCounts["Frontline Lose 3rd"]; - ImGui.BulletText($"Take 3rd Place: {frontlineLose3rdCount} " + (frontlineLose3rdCount == 1 ? "time" : "times")); - } + ImGui.BulletText($"Take 1st Place: {xpResult.FrontlineWin} " + (xpResult.FrontlineWin == 1 ? "time" : "times")); + ImGui.BulletText($"Take 2nd Place: {xpResult.FrontlineLose2nd} " + (xpResult.FrontlineLose2nd == 1 ? "time" : "times")); + ImGui.BulletText($"Take 3rd Place: {xpResult.FrontlineLose3rd} " + (xpResult.FrontlineLose3rd == 1 ? "time" : "times")); // Frontlines Roulette Section ImGui.TextColored(new Vector4(0.8f, 0.6f, 0.6f, 1f), "Frontlines (Roulette)"); ImGui.Spacing(); - if (xpResult.ActivityCounts.ContainsKey("Frontline Daily Win")) - { - var frontlineDailyWinCount = xpResult.ActivityCounts["Frontline Daily Win"]; - ImGui.BulletText($"Take 1st Place: {frontlineDailyWinCount} " + (frontlineDailyWinCount == 1 ? "time" : "times")); - } - if (xpResult.ActivityCounts.ContainsKey("Frontline Daily Lose 2nd")) - { - var frontlineDailyLose2ndCount = xpResult.ActivityCounts["Frontline Daily Lose 2nd"]; - ImGui.BulletText($"Take 2nd Place: {frontlineDailyLose2ndCount} " + (frontlineDailyLose2ndCount == 1 ? "time" : "times")); - } - if (xpResult.ActivityCounts.ContainsKey("Frontline Daily Lose 3rd")) - { - var frontlineDailyLose3rdCount = xpResult.ActivityCounts["Frontline Daily Lose 3rd"]; - ImGui.BulletText($"Take 3rd Place: {frontlineDailyLose3rdCount} " + (frontlineDailyLose3rdCount == 1 ? "time" : "times")); - } + ImGui.BulletText($"Take 1st Place: {xpResult.FrontlineDailyWin} " + (xpResult.FrontlineDailyWin == 1 ? "time" : "times")); + ImGui.BulletText($"Take 2nd Place: {xpResult.FrontlineDailyLose2nd} " + (xpResult.FrontlineDailyLose2nd == 1 ? "time" : "times")); + ImGui.BulletText($"Take 3rd Place: {xpResult.FrontlineDailyLose3rd} " + (xpResult.FrontlineDailyLose3rd == 1 ? "time" : "times")); ImGui.Spacing(); ImGui.Separator(); @@ -141,22 +109,14 @@ namespace Malmstone.Windows // Rival Wings Section ImGui.TextColored(new Vector4(0.6f, 0.8f, 0.6f, 1f), "Rival Wings"); ImGui.Spacing(); - if (xpResult.ActivityCounts.ContainsKey("Rival Wings Win")) - { - var rivalWingsWinCount = xpResult.ActivityCounts["Rival Wings Win"]; - ImGui.BulletText($"Win: {rivalWingsWinCount} " + (rivalWingsWinCount == 1 ? "time" : "times")); - } - if (xpResult.ActivityCounts.ContainsKey("Rival Wings Lose")) - { - var rivalWingsLoseCount = xpResult.ActivityCounts["Rival Wings Lose"]; - ImGui.BulletText($"Lose: {rivalWingsLoseCount} " + (rivalWingsLoseCount == 1 ? "time" : "times")); - } - + ImGui.BulletText($"Win: {xpResult.RivalWingsWin} " + (xpResult.RivalWingsWin == 1 ? "time" : "times")); + ImGui.BulletText($"Lose: {xpResult.RivalWingsLose} " + (xpResult.RivalWingsLose == 1 ? "time" : "times")); } else { ImGui.Text("PvP Profile is not loaded."); } } + } } |
