forked from phenom/healer-man
Update Healer Man server
This commit is contained in:
1 parent
4c768fbec6
commit
b16821e92e
330 files changed
+35406
-1760
No files matched your search
@@ -1,4 +1,5 @@
|
||||
import { triggeredAbilityBySpellId, type AbilityDefinition, type AbilityEffect } from "./abilityCatalog";
|
||||
import { isRomDruidRoguePair } from "./romDruidRogueCurrentCoa";
|
||||
|
||||
type ChannelAmountEffect = Extract<AbilityEffect, { kind: "damage" | "dot" | "heal" | "hot" }>;
|
||||
|
||||
@@ -12,6 +13,10 @@ export function channelPulseCount(ability: AbilityDefinition): number {
|
||||
}
|
||||
|
||||
export function channelPulseAt(ability: AbilityDefinition, startedAt: number, durationMs: number, pulseIndex: number): number {
|
||||
if (ability.channelTickMs && ability.channelTickMs > 0) {
|
||||
const intervals = Math.max(1, channelPulseCount(ability) - (ability.channelStartsWithPulse ? 1 : 0));
|
||||
return startedAt + (pulseIndex + (ability.channelStartsWithPulse ? 0 : 1)) * durationMs / intervals;
|
||||
}
|
||||
const intervals = Math.max(1, channelPulseCount(ability) - (ability.channelStartsWithPulse ? 1 : 0));
|
||||
return startedAt + (pulseIndex + (ability.channelStartsWithPulse ? 0 : 1)) * durationMs / intervals;
|
||||
}
|
||||
@@ -23,12 +28,17 @@ export function channelAmountEffects(ability: AbilityDefinition, totalTicks: num
|
||||
}[] {
|
||||
const ticks = Math.max(1, totalTicks);
|
||||
const amounts: { effect: ChannelAmountEffect; multiplier: number }[] = [];
|
||||
const hasPerHitNecroticWoundDamage = ability.source === "runewaker"
|
||||
&& ability.dbcSpellId === 494321
|
||||
&& isRomDruidRoguePair(ability);
|
||||
for (const effect of ability.effects) {
|
||||
if (effect.kind === "damage" || effect.kind === "heal" || effect.kind === "dot" || effect.kind === "hot") {
|
||||
amounts.push({ effect, multiplier: ability.name === "Penance"
|
||||
? 1
|
||||
: ability.dbcSpellId === 491164 && effect.kind === "damage"
|
||||
? 1
|
||||
: hasPerHitNecroticWoundDamage && effect.kind === "damage"
|
||||
? 1
|
||||
: (effect.kind === "dot" || effect.kind === "hot" ? effect.ticks : 1) / ticks });
|
||||
} else if (effect.kind === "apply-aura") {
|
||||
for (const proc of effect.aura.procs ?? []) {
|
||||
|
||||
Reference in new issue
Block a user