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 {
|
||||
Name = value.Name,
|
||||
EncDps = TryFloat(value.EncDps),
|
||||
JobAbbr = value.Job,
|
||||
};
|
||||
}
|
||||
|
||||
@ -37,5 +38,6 @@ public class Encounter {
|
||||
|
||||
public class Combatant {
|
||||
public string Name { get; init; }
|
||||
public string JobAbbr { 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.Agent;
|
||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||
using Lumina.Excel.GeneratedSheets;
|
||||
|
||||
namespace PartyDamage;
|
||||
|
||||
@ -43,6 +44,9 @@ public class Plugin : IDalamudPlugin {
|
||||
[PluginService]
|
||||
internal IContextMenu ContextMenu { get; init; }
|
||||
|
||||
[PluginService]
|
||||
internal IDataManager DataManager { get; init; }
|
||||
|
||||
internal Configuration Config { get; }
|
||||
private Client Client { get; }
|
||||
internal PluginUi Ui { get; }
|
||||
@ -164,10 +168,18 @@ public class Plugin : IDalamudPlugin {
|
||||
|
||||
if (
|
||||
this.Config.UseEvaluatorNpc
|
||||
&& this.ClientState.LocalPlayer is { } player
|
||||
&& this.Client.Data != null
|
||||
&& 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));
|
||||
var rank = (float) (combatants.FindIndex(combatant => combatant.Name == "YOU") + 1) / combatants.Count;
|
||||
var evaluation = rank switch {
|
||||
|
@ -95,4 +95,7 @@ public class RawCombatant {
|
||||
|
||||
[JsonProperty("enchps")]
|
||||
public string EncHps;
|
||||
|
||||
[JsonProperty("Job")]
|
||||
public string Job;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user