Validate RoM primary five hybrid stats and pair mechanics
This commit is contained in:
1 parent
8e95480d4f
commit
c8b3a3d95a
18 files changed
+2061
-48
No files matched your search
@@ -1130,7 +1130,21 @@ function executePartyAbility(
|
||||
depth = 0,
|
||||
castStartAlreadyEmitted = false,
|
||||
): PartyAbilityExecutionResult {
|
||||
const combat = useCombatStore.getState();
|
||||
let combat = useCombatStore.getState();
|
||||
if (ability.source === "runewaker") {
|
||||
for (const passive of abilitiesForCharacter(member.classId, member.secondaryClassId)
|
||||
.filter((candidate) => candidate.passive)
|
||||
.map((candidate) => learnedAbilityForBuild(candidate, member.level, member.talentRanks))
|
||||
.filter((candidate): candidate is AbilityDefinition => Boolean(candidate))) {
|
||||
for (const effect of passive.effects) {
|
||||
if (effect.kind !== "apply-aura" || effect.recipient !== "caster") continue;
|
||||
if (combat.auras.some((aura) => aura.sourceId === member.id
|
||||
&& aura.targetId === member.id && aura.definition.id === effect.aura.id)) continue;
|
||||
useCombatStore.getState().applyActorAura(member.id, member.id, passive, effect, now);
|
||||
combat = useCombatStore.getState();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ability.name === "Enraged Regeneration" && !combat.consumeActorEnrage(member.id, now)) {
|
||||
return { member, effectiveAmount: 0 };
|
||||
}
|
||||
@@ -1200,6 +1214,20 @@ function executePartyAbility(
|
||||
specializationId: member.specializationId, role: member.role, level: member.level,
|
||||
})["main-hand"]?.weaponType === "dagger",
|
||||
casterMaxHealth: member.maxHealth,
|
||||
passiveTags: combat.auras.filter((aura) => aura.targetId === member.id)
|
||||
.flatMap((aura) => aura.definition.utilityTags ?? []).concat(
|
||||
abilitiesForCharacter(member.classId, member.secondaryClassId)
|
||||
.filter((candidate) => candidate.passive)
|
||||
.map((candidate) => learnedAbilityForBuild(candidate, member.level, member.talentRanks))
|
||||
.filter((candidate): candidate is AbilityDefinition => Boolean(candidate))
|
||||
.flatMap((candidate) => candidate.effects.flatMap((effect) => effect.kind === "apply-aura"
|
||||
? effect.aura.utilityTags ?? [] : [])),
|
||||
),
|
||||
targetTags: combat.auras.filter((aura) => aura.targetId === targetId)
|
||||
.flatMap((aura) => aura.definition.utilityTags ?? []).concat(
|
||||
combat.effects.filter((effect) => effect.targetId === targetId && effect.remainingTicks > 0)
|
||||
.flatMap((effect) => effect.tag ? [effect.tag] : []),
|
||||
),
|
||||
});
|
||||
for (const effect of castEffects) {
|
||||
if (ability.name === "Penance" && combat.mobs[targetId]
|
||||
|
||||
Reference in new issue
Block a user