Update Healer Man server
This commit is contained in:
1 parent
f90ba7d989
commit
189b94d6b7
51 files changed
+3448
-154
No files matched your search
+10
-1
@@ -142,6 +142,8 @@ export interface AuraDefinition {
|
||||
/** Null means the aura persists until explicitly removed. */
|
||||
readonly durationMs: number | null;
|
||||
readonly maxStacks?: number;
|
||||
/** Initial stack count for charged buffs such as Inner Fire. */
|
||||
readonly initialStacks?: number;
|
||||
readonly stackBehavior?: AuraStackBehavior;
|
||||
/** Defaults to true. False makes applications from all sources share one aura. */
|
||||
readonly uniqueBySource?: boolean;
|
||||
@@ -172,6 +174,8 @@ export interface ActiveAura {
|
||||
readonly stacks: number;
|
||||
readonly absorbs: readonly AuraAbsorbState[];
|
||||
readonly procStates: readonly AuraProcState[];
|
||||
/** Number of Fire critical hits landed during the current Combustion buff. */
|
||||
readonly combustionCriticalHits?: number;
|
||||
}
|
||||
|
||||
export interface ApplyAuraRequest {
|
||||
@@ -319,13 +323,18 @@ export function applyAura(
|
||||
): AuraApplicationResult {
|
||||
const { definition } = request;
|
||||
const maxStacks = boundedPositiveInteger(definition.maxStacks, 1);
|
||||
const requestedStacks = Math.min(maxStacks, boundedPositiveInteger(request.stacks, 1));
|
||||
const requestedStacks = Math.min(maxStacks, boundedPositiveInteger(request.stacks ?? definition.initialStacks, 1));
|
||||
const instanceId = auraIdentity(definition, request.sourceId, request.targetId);
|
||||
// Mage armors have several DBC effects that coexist until another armor
|
||||
// replaces them. Other exclusive groups retain their single-aura behavior.
|
||||
const exclusiveSpellName = definition.name.replace(/, Aura \d+\)$/, ")");
|
||||
const exclusive = definition.exclusiveGroup
|
||||
? current.filter((aura) => (
|
||||
aura.targetId === request.targetId
|
||||
&& aura.definition.exclusiveGroup === definition.exclusiveGroup
|
||||
&& aura.instanceId !== instanceId
|
||||
&& (definition.exclusiveGroup !== "mage:armor"
|
||||
|| aura.definition.name.replace(/, Aura \d+\)$/, ")") !== exclusiveSpellName)
|
||||
))
|
||||
: [];
|
||||
const exclusiveIds = new Set(exclusive.map((aura) => aura.instanceId));
|
||||
|
||||
Reference in new issue
Block a user