Update Healer Man server
This commit is contained in:
1 parent
1fedb9368d
commit
cc3b2fa4d5
27 files changed
+1988
-83
No files matched your search
@@ -21,6 +21,10 @@ import type {
|
||||
} from "./combatAuras";
|
||||
import generatedData from "./wow335AbilityData.generated.json";
|
||||
import { playerCombatPower } from "./progression";
|
||||
import {
|
||||
ROGUE_DEADLY_POISON_DOSE_TAG,
|
||||
ROGUE_ENVENOM_BUFF_TAG,
|
||||
} from "./roguePoison";
|
||||
import { talentNodeById } from "./talentCatalog";
|
||||
import { baseResourcesFor } from "./wotlkStats";
|
||||
|
||||
@@ -796,6 +800,25 @@ function classScriptEffects(
|
||||
// Mutilate triggers separate main-hand and off-hand child attacks that are
|
||||
// not player-facing SkillLine records. The DBC combo award remains intact.
|
||||
case "rogue:Mutilate": return [{ kind: "damage", coefficient: 2 }];
|
||||
case "rogue:Envenom": return [{
|
||||
kind: "apply-aura",
|
||||
recipient: "caster",
|
||||
aura: {
|
||||
id: "wow335:rogue:envenom-poison-buff",
|
||||
name: abilityName,
|
||||
description: "Increases Deadly Poison application chance by 15% and Instant Poison application frequency by 75%.",
|
||||
disposition: "buff",
|
||||
// Runtime shortens this to one second plus one second per combo point.
|
||||
durationMs: rank.durationMs > 0 ? rank.durationMs : 6_000,
|
||||
maxStacks: 1,
|
||||
stackBehavior: "refresh",
|
||||
utilityTags: [ROGUE_ENVENOM_BUFF_TAG],
|
||||
},
|
||||
sourceEffectType: 6,
|
||||
sourceAuraType: 108,
|
||||
miscValue: 26,
|
||||
triggerSpellId: 0,
|
||||
}];
|
||||
case "rogue:Garrote": return [{ kind: "status", status: "silence", durationMs: 3_000 }];
|
||||
case "rogue:Cold Blood": return [{
|
||||
kind: "apply-aura",
|
||||
@@ -842,6 +865,10 @@ function classScriptEffects(
|
||||
triggerSpellId: 0,
|
||||
},
|
||||
];
|
||||
case "rogue:Vanish": return [
|
||||
{ kind: "threat", mode: "percent", amount: -100 },
|
||||
{ kind: "movement", movement: "leap", toward: "away" },
|
||||
];
|
||||
// Both spells place a channel aura whose actual pulses live in non-player
|
||||
// trigger spells. Keep the imported cast/cost/rank data and supply only the
|
||||
// missing executable payload.
|
||||
@@ -851,6 +878,23 @@ function classScriptEffects(
|
||||
{ kind: "summon", creatureId: 19668, coefficient: 0.5, durationMs: 15_000 },
|
||||
{ kind: "resource", resource: "mana", amount: 30, percentage: true },
|
||||
];
|
||||
case "priest:Inner Focus": return [{
|
||||
kind: "apply-aura",
|
||||
recipient: "caster",
|
||||
aura: {
|
||||
id: "wow335:priest:inner-focus",
|
||||
name: abilityName,
|
||||
disposition: "buff",
|
||||
durationMs: 30_000,
|
||||
maxStacks: 1,
|
||||
stackBehavior: "refresh",
|
||||
utilityTags: ["next-heal-free-critical"],
|
||||
},
|
||||
sourceEffectType: 6,
|
||||
sourceAuraType: 107,
|
||||
miscValue: 0,
|
||||
triggerSpellId: 0,
|
||||
}];
|
||||
case "priest:Prayer of Mending": return [{
|
||||
kind: "apply-aura",
|
||||
aura: {
|
||||
@@ -1241,6 +1285,9 @@ function effectsForRank(classId: BaseClassId, rank: Wow335Rank, abilityName: str
|
||||
|| (classId === "druid" && abilityName === "Swiftmend" && effect.kind === "heal")
|
||||
|| (classId === "warrior" && abilityName === "Bloodrage"
|
||||
&& (effect.kind === "resource" || effect.kind === "heal"))
|
||||
|| (classId === "priest" && abilityName === "Inner Focus" && effect.kind === "apply-aura")
|
||||
|| (classId === "rogue" && abilityName === "Envenom" && effect.kind === "apply-aura")
|
||||
|| (classId === "rogue" && abilityName === "Vanish" && effect.kind === "movement")
|
||||
))
|
||||
.map((effect) => effect.kind === "utility" ? effect : effect);
|
||||
const result = scriptedFallbacks.length
|
||||
@@ -1248,9 +1295,23 @@ function effectsForRank(classId: BaseClassId, rank: Wow335Rank, abilityName: str
|
||||
: executable;
|
||||
let finalized = result;
|
||||
if (DIRECT_COMBO_FINISHERS.has(abilityName)) {
|
||||
const directDamage = rank.effects.find((effect) => effect.effectType === 2);
|
||||
const finisher: Extract<AbilityEffect, { kind: "finisher-damage" }> = abilityName === "Envenom"
|
||||
? {
|
||||
kind: "finisher-damage",
|
||||
baseCoefficient: 0,
|
||||
perComboCoefficient: 0,
|
||||
poison: {
|
||||
doseAuraTag: ROGUE_DEADLY_POISON_DOSE_TAG,
|
||||
maximumDoses: 5,
|
||||
basePointsPerDose: Math.max(1, directDamage?.basePoints ?? 1),
|
||||
attackPowerCoefficientPerDose: 0.09,
|
||||
},
|
||||
}
|
||||
: { kind: "finisher-damage", baseCoefficient: 0.55, perComboCoefficient: 0.45 };
|
||||
finalized = [
|
||||
...result.filter((effect) => effect.kind !== "damage" && effect.kind !== "finisher-damage"),
|
||||
{ kind: "finisher-damage", baseCoefficient: 0.55, perComboCoefficient: 0.45 },
|
||||
finisher,
|
||||
];
|
||||
}
|
||||
if (COMBO_FINISHERS.has(abilityName) && !finalized.some((effect) => effect.kind === "finisher-damage")) {
|
||||
|
||||
Reference in new issue
Block a user