Release Healer Man 0.1.6

This commit is contained in:
phenom
2026-08-20 14:05:50 -04:00
parent 55cfd43d66
commit b12fb84859
96 changed files with 10874 additions and 609 deletions
+28
View File
@@ -0,0 +1,28 @@
export interface HealingResolution {
readonly rawAmount: number;
readonly effectiveAmount: number;
readonly overheal: number;
readonly critical: boolean;
}
export function resolveHealing(
amount: number,
currentHealth: number,
maximumHealth: number,
criticalChance = 0,
roll = 1,
criticalMultiplier = 1.5,
): HealingResolution {
const critical = Number.isFinite(roll) && roll < Math.max(0, Math.min(1, criticalChance));
const rawAmount = Math.max(0, Math.round(
(Number.isFinite(amount) ? amount : 0) * (critical ? Math.max(1, criticalMultiplier) : 1),
));
const missing = Math.max(0, (Number.isFinite(maximumHealth) ? maximumHealth : 0)
- (Number.isFinite(currentHealth) ? currentHealth : 0));
const effectiveAmount = Math.min(rawAmount, missing);
return Object.freeze({
rawAmount,
effectiveAmount,
overheal: rawAmount - effectiveAmount,
critical,
});
}