feat: only compare against same role
This commit is contained in:
parent
7b85e50bcc
commit
c1aeff4684
@ -10,6 +10,7 @@ public class CombatData {
|
|||||||
this.Combatants[key] = new Combatant {
|
this.Combatants[key] = new Combatant {
|
||||||
Name = value.Name,
|
Name = value.Name,
|
||||||
EncDps = TryFloat(value.EncDps),
|
EncDps = TryFloat(value.EncDps),
|
||||||
|
JobAbbr = value.Job,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,5 +38,6 @@ public class Encounter {
|
|||||||
|
|
||||||
public class Combatant {
|
public class Combatant {
|
||||||
public string Name { get; init; }
|
public string Name { get; init; }
|
||||||
|
public string JobAbbr { get; init; }
|
||||||
public float EncDps { get; init; }
|
public float EncDps { get; init; }
|
||||||
}
|
}
|
||||||
|
14
Plugin.cs
14
Plugin.cs
@ -15,6 +15,7 @@ using FFXIVClientStructs.FFXIV.Client.Graphics;
|
|||||||
using FFXIVClientStructs.FFXIV.Client.UI;
|
using FFXIVClientStructs.FFXIV.Client.UI;
|
||||||
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
||||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||||
|
using Lumina.Excel.GeneratedSheets;
|
||||||
|
|
||||||
namespace PartyDamage;
|
namespace PartyDamage;
|
||||||
|
|
||||||
@ -43,6 +44,9 @@ public class Plugin : IDalamudPlugin {
|
|||||||
[PluginService]
|
[PluginService]
|
||||||
internal IContextMenu ContextMenu { get; init; }
|
internal IContextMenu ContextMenu { get; init; }
|
||||||
|
|
||||||
|
[PluginService]
|
||||||
|
internal IDataManager DataManager { get; init; }
|
||||||
|
|
||||||
internal Configuration Config { get; }
|
internal Configuration Config { get; }
|
||||||
private Client Client { get; }
|
private Client Client { get; }
|
||||||
internal PluginUi Ui { get; }
|
internal PluginUi Ui { get; }
|
||||||
@ -164,10 +168,18 @@ public class Plugin : IDalamudPlugin {
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
this.Config.UseEvaluatorNpc
|
this.Config.UseEvaluatorNpc
|
||||||
|
&& this.ClientState.LocalPlayer is { } player
|
||||||
&& this.Client.Data != null
|
&& this.Client.Data != null
|
||||||
&& Evaluator.Evaluators.FirstOrDefault(e => e.Id == this.Config.EvaluatorId) is { } evaluator
|
&& Evaluator.Evaluators.FirstOrDefault(e => e.Id == this.Config.EvaluatorId) is { } evaluator
|
||||||
) {
|
) {
|
||||||
var combatants = this.Client.Data.Combatants.Values.ToList();
|
var combatants = this.Client.Data.Combatants.Values
|
||||||
|
.Where(combatant => {
|
||||||
|
var job = this.DataManager.GetExcelSheet<ClassJob>()!
|
||||||
|
.FirstOrDefault(j => j.Abbreviation.RawString.Equals(combatant.JobAbbr, StringComparison.InvariantCultureIgnoreCase));
|
||||||
|
|
||||||
|
return job?.ClassJobCategory.Row == player.ClassJob.GameData?.ClassJobCategory.Row;
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
combatants.Sort((a, b) => a.EncDps.CompareTo(b.EncDps));
|
combatants.Sort((a, b) => a.EncDps.CompareTo(b.EncDps));
|
||||||
var rank = (float) (combatants.FindIndex(combatant => combatant.Name == "YOU") + 1) / combatants.Count;
|
var rank = (float) (combatants.FindIndex(combatant => combatant.Name == "YOU") + 1) / combatants.Count;
|
||||||
var evaluation = rank switch {
|
var evaluation = rank switch {
|
||||||
|
@ -95,4 +95,7 @@ public class RawCombatant {
|
|||||||
|
|
||||||
[JsonProperty("enchps")]
|
[JsonProperty("enchps")]
|
||||||
public string EncHps;
|
public string EncHps;
|
||||||
|
|
||||||
|
[JsonProperty("Job")]
|
||||||
|
public string Job;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user