Update Healer Man server
This commit is contained in:
1 parent
4fb7a0b9c8
commit
4c768fbec6
24 files changed
+654
-22
No files matched your search
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user