44 lines
1.1 KiB
C#
44 lines
1.1 KiB
C#
namespace PartyDamage;
|
|
|
|
public class CombatData {
|
|
public Encounter Encounter { get; }
|
|
public Dictionary<string, Combatant> Combatants { get; } = [];
|
|
public bool IsActive { get; }
|
|
|
|
public CombatData(RawCombatData raw) {
|
|
foreach (var (key, value) in raw.Combatants) {
|
|
this.Combatants[key] = new Combatant {
|
|
Name = value.Name,
|
|
EncDps = TryFloat(value.EncDps),
|
|
JobAbbr = value.Job,
|
|
};
|
|
}
|
|
|
|
this.Encounter = new Encounter {
|
|
Title = raw.Encounter.Title,
|
|
EncDps = TryFloat(raw.Encounter.EncDps),
|
|
};
|
|
|
|
this.IsActive = raw.IsActive;
|
|
}
|
|
|
|
private static float TryFloat(string input, float def = float.NaN) {
|
|
if (!float.TryParse(input, out var result)) {
|
|
result = def;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|
|
|
|
public class Encounter {
|
|
public string Title { get; init; }
|
|
public float EncDps { get; init; }
|
|
}
|
|
|
|
public class Combatant {
|
|
public string Name { get; init; }
|
|
public string JobAbbr { get; init; }
|
|
public float EncDps { get; init; }
|
|
}
|