Update Healer Man server

This commit is contained in:
phenom committed 2026-09-30 09:57:13 -04:00
1 parent 35dfdaed61
commit 4fb7a0b9c8
161 files changed
+24618 -529

No files matched your search

@@ -0,0 +1,93 @@
import type { AuraDefinition } from "./combatAuras";
export const WOW335_MAGE_ARCANE_POTENCY_TALENT_ID = "talent-1725";
export const WOW335_MAGE_MASTER_OF_ELEMENTS_TALENT_ID = "talent-1639";
export const WOW335_MAGE_ARCANE_POTENCY_TAG = "wow335-mage-arcane-potency";
const ARCANE_POTENCY_CRIT_BONUS_PERCENT_BY_RANK = [0, 15, 30] as const;
export type Wow335MageArcanePotencyTrigger =
| "presence-of-mind"
| "arcane-concentration-clearcasting"
| "other";
export interface Wow335MageArcanePotencyCastProfile {
readonly consumesCharge: boolean;
readonly criticalChanceBonusPercent: number;
}
function normalizedRank(rank: number, maximum: number): number {
return Number.isFinite(rank) ? Math.max(0, Math.min(maximum, Math.trunc(rank))) : 0;
}
/** Local talent rank rows 31571/31572 grant 15%/30% crit to the next damaging spell. */
export function wow335MageArcanePotencyCriticalChanceBonusPercent(rank: number): number {
return ARCANE_POTENCY_CRIT_BONUS_PERCENT_BY_RANK[normalizedRank(rank, 2)] ?? 0;
}
/**
* Arcane Potency is earned only from Presence of Mind or Arcane Concentration's
* Clearcasting proc. A different source of Clearcasting does not qualify.
*/
export function wow335MageArcanePotencyCanProc(
rank: number,
trigger: Wow335MageArcanePotencyTrigger,
): boolean {
return normalizedRank(rank, 2) > 0 && trigger !== "other";
}
/**
* The next damaging spell gains the rank's crit bonus. The tooltip consumes
* the buff on any spell cast, so callers consume whenever `auraActive` is true,
* even if the cast cannot deal damage or critically strike.
*/
export function wow335MageArcanePotencyCastProfile(
rank: number,
auraActive: boolean,
abilityDealsDirectDamage: boolean,
): Wow335MageArcanePotencyCastProfile {
return {
consumesCharge: auraActive,
criticalChanceBonusPercent: auraActive && abilityDealsDirectDamage
? wow335MageArcanePotencyCriticalChanceBonusPercent(rank)
: 0,
};
}
export const WOW335_MAGE_ARCANE_POTENCY_AURA: AuraDefinition = {
id: "wow335:mage:arcane-potency",
name: "Arcane Potency",
description: "Your next damaging spell gains critical strike chance after Presence of Mind or Clearcasting.",
disposition: "buff",
// The generated row supplies no expiration; the aura is consumed on the next spell cast.
durationMs: null,
maxStacks: 1,
stackBehavior: "replace",
utilityTags: [WOW335_MAGE_ARCANE_POTENCY_TAG],
};
/**
* The passive +1/2/3% spell crit is already represented by generated rank
* descriptions in talentModifiers. Only rank 3 (spell 29076) has the
* executable local auraType 4 mana-refund effect; ranks 1/2 have effectType 0.
*/
export function wow335MageMasterOfElementsManaRefundPercent(rank: number): number {
return normalizedRank(rank, 3) === 3 ? 40 : 0;
}
/**
* Refund 40% of the Mana actually spent by an eligible direct spell critical.
* “Direct” excludes periodic damage, including channel pulses and DoT ticks;
* callers supply false for those events. The caller supplies the resolved spend
* after cast discounts (for example, Clearcasting makes that spend zero).
*/
export function wow335MageMasterOfElementsManaRefund(
rank: number,
manaSpent: number,
directDamageSpell: boolean,
critical: boolean,
): number {
const refundPercent = wow335MageMasterOfElementsManaRefundPercent(rank);
if (refundPercent <= 0 || !directDamageSpell || !critical || !Number.isFinite(manaSpent)) return 0;
return Math.max(0, Math.round(Math.max(0, manaSpent) * refundPercent / 100));
}