Update Healer Man server

This commit is contained in:
phenom committed 2026-09-28 22:46:45 -04:00
1 parent 9d7e0e2f9e
commit 35dfdaed61
94 files changed
+17034 -418

No files matched your search

+65
View File
@@ -0,0 +1,65 @@
export const ROM_ROGUE_DAGGER_MASTERY_TAG = "rom-dagger-mastery";
export const ROM_ROGUE_TREASURE_HUNTER_TAG = "rom-treasure-hunter";
export const ROM_ROGUE_SHADOW_WALKER_PASSIVE_SPELL_ID = 491537;
export interface RomRogueAbilityAdjustment {
readonly allowsCombatUse: boolean;
readonly energyCostReduction: number;
readonly cooldownIncreaseMs: number;
}
const NO_SHADOW_WALKER_ADJUSTMENT: RomRogueAbilityAdjustment = Object.freeze({
allowsCombatUse: false,
energyCostReduction: 0,
cooldownIncreaseMs: 0,
});
/** Shadow Walker's exact Rogue/Priest payload applies only to Sneak Attack. */
export function romRogueShadowWalkerAdjustment(
classId: string,
secondaryClassId: string | null | undefined,
abilitySource: string | undefined,
abilitySpellId: number,
passiveSpellIds: readonly number[],
): RomRogueAbilityAdjustment {
if (classId !== "rom-rogue"
|| secondaryClassId !== "rom-priest"
|| abilitySource !== "runewaker"
|| abilitySpellId !== 490337
|| !passiveSpellIds.includes(ROM_ROGUE_SHADOW_WALKER_PASSIVE_SPELL_ID)) {
return NO_SHADOW_WALKER_ADJUSTMENT;
}
return {
allowsCombatUse: true,
energyCostReduction: 10,
cooldownIncreaseMs: 10_000,
};
}
export interface RomRogueDaggerDamageContext {
readonly classId: string;
readonly sourceActorId: string;
readonly playerActorId: string;
readonly attackKind: string;
readonly school: string;
readonly mainHandDagger: boolean;
readonly passiveTags: readonly string[];
}
/** The RoM passive modifies only the player's physical melee hits while a dagger is equipped in the main hand. */
export function romRogueDaggerDamageMultiplier(context: RomRogueDaggerDamageContext): number {
return context.classId === "rom-rogue"
&& context.sourceActorId === context.playerActorId
&& context.attackKind === "melee"
&& context.school === "physical"
&& context.mainHandDagger
&& context.passiveTags.includes(ROM_ROGUE_DAGGER_MASTERY_TAG)
? 1.1
: 1;
}
/** Treasure Hunter adds one five percentage point bonus roll to the supported boss-loot path. */
export function romRogueTreasureHunterLootChance(baseChance: number | undefined, passiveActive: boolean): number {
const base = Number.isFinite(baseChance) ? Math.max(0, Math.min(1, baseChance!)) : 0;
return passiveActive ? Math.min(1, base + 0.05) : base;
}