12 lines
529 B
TypeScript
12 lines
529 B
TypeScript
export function calculateTeamMetrics(damage: number[], rotationSeconds: number) {
|
|
const totalDamage = damage.reduce((sum, value) => sum + value, 0);
|
|
if (!Number.isFinite(rotationSeconds) || rotationSeconds <= 0 || damage.some((value) => !Number.isFinite(value) || value < 0) || totalDamage <= 0) {
|
|
throw new Error("Team damage and rotation must be positive finite values.");
|
|
}
|
|
return {
|
|
totalDamage,
|
|
totalDps: totalDamage / rotationSeconds,
|
|
shares: damage.map((value) => value / totalDamage * 100),
|
|
};
|
|
}
|