aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2024-08-31 21:36:58 -0700
committerPinapelz <yukais@pinapelz.com>2024-08-31 22:18:31 -0700
commit93da740bb7a82086c8e5f7d6b9889937d84d5b1b (patch)
treec04b3dc31c0ca95ec51f8ba8e3b8ffd876571f12
parentc5bbbb92b7e5c62b7c028058c1031fa085afad20 (diff)
refactor: change calculator return data to struct
-rw-r--r--Malmstone/Plugin.cs213
-rw-r--r--Malmstone/Utils/MalmstoneXPCalculator.cs88
-rw-r--r--Malmstone/Windows/MainWindow.cs66
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.");
}
}
+
}
}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage