diff options
| author | Pinapelz <yukais@pinapelz.com> | 2024-09-15 20:33:29 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2024-09-15 20:33:29 -0700 |
| commit | 397ae9c0ba4f7c8540f3f7840fc87c998f91d77c (patch) | |
| tree | 8ee0b76ac50a12152200c7968059ce2bee2535b1 | |
| parent | 8dd8dc166e98a50d35918a2715808b39208aa6d7 (diff) | |
add option to use default target rank as postmatch notification match goal
| -rw-r--r-- | Malmstone/Addons/PvPMatchAddon.cs | 15 | ||||
| -rw-r--r-- | Malmstone/Configuration.cs | 1 | ||||
| -rw-r--r-- | Malmstone/Windows/ConfigWindow.cs | 17 |
3 files changed, 26 insertions, 7 deletions
diff --git a/Malmstone/Addons/PvPMatchAddon.cs b/Malmstone/Addons/PvPMatchAddon.cs index b416f16..6b3642c 100644 --- a/Malmstone/Addons/PvPMatchAddon.cs +++ b/Malmstone/Addons/PvPMatchAddon.cs @@ -200,13 +200,16 @@ namespace Malmstone.Addons { if (Plugin.Configuration.SkipProgressionChatAfterGoal && seriesInfo.CurrentSeriesRank >= Plugin.Configuration.DefaultTargetRankProperty) return; var seString = new SeString(new List<Payload>()); + int TargetGoal = seriesInfo.CurrentSeriesRank + 1; + if(Plugin.Configuration.OverrideShowMatchesToDefaultTargetGoal && Plugin.Configuration.DefaultTargetRankProperty > seriesInfo.CurrentSeriesRank) + TargetGoal = Plugin.Configuration.DefaultTargetRankProperty; switch (contentType) { case PvPContentType.CrystallineConflict: MalmstoneXPCalculator.XpCalculationResult ccResultData = MalmstoneXPCalculator.CalculateCrystallineConflictMatches( - seriesInfo.CurrentSeriesRank, seriesInfo.CurrentSeriesRank + 1, seriesInfo.SeriesExperience); + seriesInfo.CurrentSeriesRank, TargetGoal, seriesInfo.SeriesExperience); if (ccResultData.CrystallineConflictLose == 0) break; - seString.Append(new TextPayload("[Crystalline Conflict to Level " + (seriesInfo.CurrentSeriesRank + 1) + "]\n")); + seString.Append(new TextPayload("[Crystalline Conflict to Level " + TargetGoal + "]\n")); seString.Append(new UIForegroundPayload(35)); seString.Append(new TextPayload($"Win: {ccResultData.CrystallineConflictWin} " + (ccResultData.CrystallineConflictWin == 1 ? "time" : "times") + "\n")); seString.Append(new TextPayload($"Lose: {ccResultData.CrystallineConflictLose} " + (ccResultData.CrystallineConflictLose == 1 ? "time" : "times"))); @@ -214,9 +217,9 @@ namespace Malmstone.Addons break; case PvPContentType.Frontlines: MalmstoneXPCalculator.XpCalculationResult flResultData = MalmstoneXPCalculator.CalculateFrontlineMatches( - seriesInfo.CurrentSeriesRank, seriesInfo.CurrentSeriesRank + 1, seriesInfo.SeriesExperience); + seriesInfo.CurrentSeriesRank, TargetGoal, seriesInfo.SeriesExperience); if (flResultData.FrontlineDailyLose3rd == 0) break; - seString.Append(new TextPayload("[Frontlines to Level " + (seriesInfo.CurrentSeriesRank + 1) + "]\n")); + seString.Append(new TextPayload("[Frontlines to Level " + TargetGoal+ "]\n")); seString.Append(new UIForegroundPayload(518)); seString.Append(new TextPayload($"Take 1st Place: {flResultData.FrontlineWin} " + (flResultData.FrontlineWin == 1 ? "time" : "times") +" (" + (flResultData.FrontlineDailyWin) + ")\n")); seString.Append(new TextPayload($"Take 2nd Place: {flResultData.FrontlineWin} " + (flResultData.FrontlineWin == 1 ? "time" : "times") + " (" + (flResultData.FrontlineDailyLose2nd) + ")\n")); @@ -226,9 +229,9 @@ namespace Malmstone.Addons break; case PvPContentType.RivalWings: MalmstoneXPCalculator.XpCalculationResult rwResultData = MalmstoneXPCalculator.CalculateRivalWingsMatches( - seriesInfo.CurrentSeriesRank, seriesInfo.CurrentSeriesRank + 1, seriesInfo.SeriesExperience); + seriesInfo.CurrentSeriesRank, TargetGoal, seriesInfo.SeriesExperience); if (rwResultData.RivalWingsLose == 0) break; - seString.Append(new TextPayload("[Rival Wings to Level " + (seriesInfo.CurrentSeriesRank + 1) + "]\n")); + seString.Append(new TextPayload("[Rival Wings to Level " + TargetGoal + "]\n")); seString.Append(new UIForegroundPayload(43)); seString.Append(new TextPayload($"Win: {rwResultData.RivalWingsWin} " + (rwResultData.RivalWingsWin == 1 ? "time" : "times") + "\n")); seString.Append(new TextPayload($"Lose: {rwResultData.RivalWingsLose} " + (rwResultData.RivalWingsLose == 1 ? "time" : "times"))); diff --git a/Malmstone/Configuration.cs b/Malmstone/Configuration.cs index ba4ba67..239f1b1 100644 --- a/Malmstone/Configuration.cs +++ b/Malmstone/Configuration.cs @@ -21,6 +21,7 @@ public class Configuration : IPluginConfiguration public int SavedFrontlineRewardBonus { get; set; } = -1; public bool OutdatedFrontlineRewardBonus { get; set; } = false; public bool IsPrimedForBuff { get; set; } = false; + public bool OverrideShowMatchesToDefaultTargetGoal { get; set; } = false; // the below exist just to make saving less cumbersome public void Save() diff --git a/Malmstone/Windows/ConfigWindow.cs b/Malmstone/Windows/ConfigWindow.cs index 9b2fdea..66fcbb2 100644 --- a/Malmstone/Windows/ConfigWindow.cs +++ b/Malmstone/Windows/ConfigWindow.cs @@ -16,7 +16,7 @@ public class ConfigWindow : Window, IDisposable Flags = ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.NoScrollbar | ImGuiWindowFlags.NoScrollWithMouse; SizeConstraints = new WindowSizeConstraints { - MinimumSize = new Vector2(540, 380), + MinimumSize = new Vector2(540, 390), MaximumSize = new Vector2(float.MaxValue, float.MaxValue) }; Configuration = Plugin.Configuration; @@ -212,6 +212,21 @@ public class ConfigWindow : Window, IDisposable } ImGui.SameLine(); ImGui.Text("Rival Wings"); + + var OverrideShowMatchesToDefaultTargetGoal = Configuration.OverrideShowMatchesToDefaultTargetGoal; + if(ImGui.Checkbox("##OverrideShowMatchesToDefaultTargetGoal", ref OverrideShowMatchesToDefaultTargetGoal)){ + Configuration.OverrideShowMatchesToDefaultTargetGoal = OverrideShowMatchesToDefaultTargetGoal; + Configuration.Save(); + } + if (ImGui.IsItemHovered()) + { + ImGui.BeginTooltip(); + ImGui.Text("Show remaining matches to the Default Target rank instead of the next rank for postmatch chat notifications" + + "\nThis only works if the Default Target rank is higher than your current rank, otherwise this setting will be ignored"); + ImGui.EndTooltip(); + } + ImGui.SameLine(); + ImGui.Text("Show matches until Default Target Rank instead of next rank"); ImGui.Separator(); |
