Release Healer Man 0.1.49
This commit is contained in:
1 parent
39425f2494
commit
612170afd0
91 files changed
+2278
-263
No files matched your search
@@ -1,5 +1,9 @@
|
||||
import type { ContentCategoryId } from "../app/contentCategories";
|
||||
import { standardWowDungeonCreatureHealth } from "./azerothCoreReference";
|
||||
import { clampPlayerLevel } from "./progression";
|
||||
import type { DungeonExpansion } from "./dungeonTypes";
|
||||
|
||||
const ROM_PARTY_HEALTH_SCALE = 1.15;
|
||||
const COA_PARTY_HEALTH_SCALE = 1.75;
|
||||
|
||||
/**
|
||||
* Normal campaign dungeons scale to the character instead of retaining the
|
||||
@@ -11,13 +15,21 @@ export function scaledDungeonEnemyLevel(characterLevel: number, boss: boolean):
|
||||
}
|
||||
|
||||
/**
|
||||
* RoM creatures do not have packaged native health tables. Give their dungeon
|
||||
* baseline enough growth for a full party's rank-scaled abilities; the old
|
||||
* 72 + level * 22 solo-target fallback was overwhelmed by the opening volley.
|
||||
* Authored creature and boss health multipliers are applied separately.
|
||||
* Enemy durability follows the party's combat catalog, not the dungeon's
|
||||
* source game. This lets a WoW party take its familiar curve into a RoM
|
||||
* dungeon while stronger RoM and CoA parties retain meaningful kill times in
|
||||
* every catalog. Authored creature and boss multipliers are applied separately.
|
||||
*/
|
||||
export function dungeonEnemyHealthBaseline(level: number, expansion: DungeonExpansion): number | undefined {
|
||||
if (expansion !== "runewaker") return undefined;
|
||||
export function dungeonEnemyHealthBaseline(level: number, partySource: ContentCategoryId): number {
|
||||
const safeLevel = clampPlayerLevel(level);
|
||||
return 1_000 + safeLevel * 100 + safeLevel * safeLevel * 8;
|
||||
if (partySource === "wow") return standardWowDungeonCreatureHealth(safeLevel);
|
||||
const romBaseline = 1_000 + safeLevel * 100 + safeLevel * safeLevel * 8;
|
||||
if (partySource === "rom") return romBaseline;
|
||||
return Math.round(romBaseline * COA_PARTY_HEALTH_SCALE / ROM_PARTY_HEALTH_SCALE);
|
||||
}
|
||||
|
||||
/** Keeps trash and boss source calibration on the same relative power scale. */
|
||||
export function dungeonPartyHealthScale(partySource: ContentCategoryId): number {
|
||||
if (partySource === "wow" || partySource === "rom") return 1;
|
||||
return COA_PARTY_HEALTH_SCALE / ROM_PARTY_HEALTH_SCALE;
|
||||
}
|
||||
Reference in new issue
Block a user