Update Healer Man server

This commit is contained in:
phenom committed 2026-09-19 21:01:51 -04:00
1 parent f8314e7de1
commit 1fedb9368d
76 files changed
+20556 -2523

No files matched your search

+24 -3
View File
@@ -14,6 +14,7 @@ const WOW_BOSS_HEALTH_FLOOR: readonly (readonly [level: number, health: number])
[9, 7_000],
[21, 11_000],
[41, 23_000],
[51, 39_000],
[80, 180_000],
];
const WOW_BOSS_TEST_HEALTH_FLOOR: readonly (readonly [level: number, health: number])[] = [
@@ -22,7 +23,18 @@ const WOW_BOSS_TEST_HEALTH_FLOOR: readonly (readonly [level: number, health: num
[9, 7_000],
[21, 11_000],
[41, 23_000],
[80, 180_000],
// Isolated test fights are normalized to the certified companion curve.
// Native expansion-2 template health grows much faster than the party's
// observed level-80 DPS and previously pushed the average fight above 170s.
[80, 44_000],
];
const WOW_BOSS_TEST_DAMAGE_SCALE: readonly (readonly [level: number, scale: number])[] = [
[1, 1],
[50, 1],
// Level-80 source creature weapon damage grows faster than the certified
// healer's throughput. This keeps test-room pressure sustained without
// turning roughly a third of catalog coverage runs into early wipes.
[80, 0.75],
];
const BOSS_TEST_HEALTH_FLOOR_MULTIPLIER = 0.6;
const FINAL_BOSS_HEALTH_FLOOR_MULTIPLIER = 1.9;
@@ -73,9 +85,18 @@ export function dungeonEnemyScaling(dungeon: DungeonDefinition, entity: Populati
// finale. A reduced floor still prevents high-level source creatures with
// tiny extrapolated level-two health from dying before mechanics can run.
const testingBossFloor = partyHealthFloor * BOSS_TEST_HEALTH_FLOOR_MULTIPLIER;
const testingBossCeiling = characterSource === "wow"
? partyHealthFloor * 0.9 * Math.max(1, Math.min(1.5, authoredHealth))
: Number.POSITIVE_INFINITY;
const scaledHealth = boss
? Math.max(originalHealth, testing ? testingBossFloor : bossFloor)
? testing
? Math.max(Math.min(originalHealth, testingBossCeiling), testingBossFloor)
: Math.max(originalHealth, bossFloor)
: originalHealth;
const testingDamageScale = testing && characterSource === "wow"
? interpolatedFloor(level, WOW_BOSS_TEST_DAMAGE_SCALE)
: 1;
return { level, maxHealth: scaledHealth * multipliers.health,
healthMultiplier: authoredHealth * multipliers.health, damageMultiplier: authoredDamage * multipliers.damage };
healthMultiplier: authoredHealth * multipliers.health,
damageMultiplier: authoredDamage * multipliers.damage * testingDamageScale };
}