PartyDamage/CombatData.cs

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; }
}