feat: add random evaluator option
This commit is contained in:
parent
8c7222b6ef
commit
eed90f2ded
@ -44,6 +44,8 @@ public class Evaluator {
|
|||||||
return line;
|
return line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static readonly Guid RandomId = new("00000000-0000-0000-0000-000000000001");
|
||||||
|
|
||||||
public static readonly Evaluator[] Evaluators = [
|
public static readonly Evaluator[] Evaluators = [
|
||||||
new Evaluator {
|
new Evaluator {
|
||||||
Id = new Guid("ebbccc44-13b5-4843-a635-3b693fe47840"),
|
Id = new Guid("ebbccc44-13b5-4843-a635-3b693fe47840"),
|
||||||
@ -117,8 +119,7 @@ public class Evaluator {
|
|||||||
Lines = new Dictionary<Evaluation, SeString[]> {
|
Lines = new Dictionary<Evaluation, SeString[]> {
|
||||||
[Evaluation.Best] = [
|
[Evaluation.Best] = [
|
||||||
new SeStringBuilder()
|
new SeStringBuilder()
|
||||||
.AddItalics("Incredible!")
|
.AddText("Incredible! You have ")
|
||||||
.AddText(" You have ")
|
|
||||||
.AddItalics("got")
|
.AddItalics("got")
|
||||||
.AddText(" to show me how to do that sometime!")
|
.AddText(" to show me how to do that sometime!")
|
||||||
.Build(),
|
.Build(),
|
||||||
|
@ -173,8 +173,11 @@ public class Plugin : IDalamudPlugin {
|
|||||||
this.Config.UseEvaluatorNpc
|
this.Config.UseEvaluatorNpc
|
||||||
&& this.ClientState.LocalPlayer is { } player
|
&& this.ClientState.LocalPlayer is { } player
|
||||||
&& this.Client.Data != null
|
&& this.Client.Data != null
|
||||||
&& Evaluator.Evaluators.FirstOrDefault(e => e.Id == this.Config.EvaluatorId) is { } evaluator
|
|
||||||
) {
|
) {
|
||||||
|
var evaluator = this.Config.EvaluatorId == Evaluator.RandomId
|
||||||
|
? Random.Shared.GetItems(Evaluator.Evaluators, 1)[0]
|
||||||
|
: Evaluator.Evaluators.FirstOrDefault(e => e.Id == this.Config.EvaluatorId);
|
||||||
|
if (evaluator != null) {
|
||||||
var combatants = this.Client.Data.Combatants.Values
|
var combatants = this.Client.Data.Combatants.Values
|
||||||
.Where(combatant => {
|
.Where(combatant => {
|
||||||
var job = this.DataManager.GetExcelSheet<ClassJob>()!
|
var job = this.DataManager.GetExcelSheet<ClassJob>()!
|
||||||
@ -203,7 +206,7 @@ public class Plugin : IDalamudPlugin {
|
|||||||
0
|
0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
10
PluginUi.cs
10
PluginUi.cs
@ -120,7 +120,9 @@ public class PluginUi : IDisposable {
|
|||||||
using (ImGuiHelper.DisabledUnless(this.Plugin.Config.UseEvaluatorNpc)) {
|
using (ImGuiHelper.DisabledUnless(this.Plugin.Config.UseEvaluatorNpc)) {
|
||||||
var current = Evaluator.Evaluators.FirstOrDefault(e => e.Id == this.Plugin.Config.EvaluatorId);
|
var current = Evaluator.Evaluators.FirstOrDefault(e => e.Id == this.Plugin.Config.EvaluatorId);
|
||||||
var preview = current == null
|
var preview = current == null
|
||||||
? "None"
|
? this.Plugin.Config.EvaluatorId == Evaluator.RandomId
|
||||||
|
? "Random"
|
||||||
|
: "None"
|
||||||
: current.Name;
|
: current.Name;
|
||||||
if (ImGui.BeginCombo("Evaluator", preview)) {
|
if (ImGui.BeginCombo("Evaluator", preview)) {
|
||||||
using var endCombo = new OnDispose(ImGui.EndCombo);
|
using var endCombo = new OnDispose(ImGui.EndCombo);
|
||||||
@ -130,6 +132,11 @@ public class PluginUi : IDisposable {
|
|||||||
this.Plugin.Config.EvaluatorId = Guid.Empty;
|
this.Plugin.Config.EvaluatorId = Guid.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ImGui.Selectable("Random", this.Plugin.Config.EvaluatorId == Evaluator.RandomId)) {
|
||||||
|
anyChanged = true;
|
||||||
|
this.Plugin.Config.EvaluatorId = Evaluator.RandomId;
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var evaluator in Evaluator.Evaluators) {
|
foreach (var evaluator in Evaluator.Evaluators) {
|
||||||
if (ImGui.Selectable(evaluator.Name, this.Plugin.Config.EvaluatorId == evaluator.Id)) {
|
if (ImGui.Selectable(evaluator.Name, this.Plugin.Config.EvaluatorId == evaluator.Id)) {
|
||||||
anyChanged = true;
|
anyChanged = true;
|
||||||
@ -141,7 +148,6 @@ public class PluginUi : IDisposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (anyChanged) {
|
if (anyChanged) {
|
||||||
this.Plugin.SaveConfig();
|
this.Plugin.SaveConfig();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user