forked from phenom/healer-man
Update Healer Man server
This commit is contained in:
1 parent
9d7e0e2f9e
commit
35dfdaed61
94 files changed
+17034
-418
No files matched your search
@@ -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;
|
||||
}
|
||||
Reference in new issue
Block a user