Update Healer Man server

This commit is contained in:
phenom committed 2026-09-30 13:25:55 -04:00
1 parent 4fb7a0b9c8
commit 4c768fbec6
24 files changed
+654 -22

No files matched your search

+33
View File
@@ -753,6 +753,32 @@ function fallbackCoefficient(effect: Wow335Effect, rank: Wow335Rank): number {
return Math.max(0.08, Math.min(4, average / playerCombatPower(Math.max(1, rank.sourceLevel || rank.level))));
}
function stormstrikeWeaponHitForTrigger(
spellId: number,
): Extract<AbilityEffect, { kind: "damage" }> | null {
const weaponHand = spellId === 32175
? "main-hand"
: spellId === 32176
? "off-hand"
: undefined;
if (!weaponHand) return null;
// Stormstrike's wrapper invokes these two DBC child spells. Their local
// generated SpellEffect rows contain the weapon-damage coefficient.
const childRank = data.classes.shaman
.find((chain) => chain.name === "Stormstrike")
?.ranks.find((candidate) => candidate.spellId === spellId);
const weaponEffect = childRank?.effects.find((effect) => WEAPON_DAMAGE_EFFECTS.has(effect.effectType));
if (!weaponEffect) return null;
const coefficient = weaponEffect.coefficient > 0
? weaponEffect.coefficient
: weaponEffect.effectType === 31
? Math.max(0.1, Math.abs(weaponEffect.basePoints) / 100)
: 1;
return { kind: "damage", coefficient, school: "physical", weaponHand };
}
function utilityAction(effectType: number): Extract<AbilityEffect, { kind: "utility" }>["action"] {
if (effectType === 24) return "create-item";
if (effectType === 33) return "open-lock";
@@ -1877,6 +1903,13 @@ function effectsForRank(classId: BaseClassId, rank: Wow335Rank, abilityName: str
continue;
}
if (TRIGGER_SPELL_EFFECTS.has(effect.effectType) && effect.triggerSpellId > 0) {
if (classId === "shaman" && abilityName === "Stormstrike" && rank.spellId === 17364) {
const weaponHit = stormstrikeWeaponHitForTrigger(effect.triggerSpellId);
if (weaponHit) {
effects.push(weaponHit);
continue;
}
}
effects.push({
kind: "trigger-spell",
spellId: effect.triggerSpellId,