Release Healer Man 0.1.55

This commit is contained in:
phenom committed 2026-09-19 12:23:33 -04:00
1 parent 2dbb0acfc1
commit 38b3d4d160
14 files changed
+279 -41

No files matched your search

+14 -3
View File
@@ -972,7 +972,8 @@ function choosePartySupportIntent(
health: candidate.health,
maxHealth: candidate.maxHealth,
})),
canUseAbility: ability => ability.effects.some(effect => ["heal", "hot", "shield"].includes(effect.kind))
canUseAbility: ability => ability.effects.some(effect => ["heal", "hot", "shield"].includes(effect.kind)
|| (effect.kind === "apply-aura" && Boolean(effect.aura.absorbs?.length)))
&& (healingAbilityCanAidOthers(ability) || target.id === member.id)
&& !(healingAbilityHasPendingHot(ability, member.id, target.id, combat.effects)
&& (!ability.effects.some(effect => effect.kind === "heal") || target.health / target.maxHealth > 0.5))
@@ -1162,7 +1163,12 @@ function executePartyAbility(
comboTargetId: comboPoints > 0 ? targetId : null,
};
} else if (effect.kind === "summon") {
useCombatStore.getState().summonActor(member.id, ability, effect, origin, targetId, now);
const summonTargetId = combat.mobs[targetId] && !combat.mobs[targetId].dead
? targetId
: combat.selectedTargetId && combat.mobs[combat.selectedTargetId] && !combat.mobs[combat.selectedTargetId].dead
? combat.selectedTargetId
: Object.values(combat.mobs).find((mob) => mob.engaged && !mob.dead)?.id ?? null;
useCombatStore.getState().summonActor(member.id, ability, effect, origin, summonTargetId, now);
} else if (effect.kind === "pet" && ["summon", "call", "resurrect", "tame"].includes(effect.action)) {
const summonEffect: Extract<AbilityEffect, { kind: "summon" }> = {
kind: "summon",
@@ -1170,7 +1176,12 @@ function executePartyAbility(
coefficient: 0.35,
durationMs: Number.MAX_SAFE_INTEGER - now,
};
useCombatStore.getState().summonActor(member.id, ability, summonEffect, origin, targetId, now);
const summonTargetId = combat.mobs[targetId] && !combat.mobs[targetId].dead
? targetId
: combat.selectedTargetId && combat.mobs[combat.selectedTargetId] && !combat.mobs[combat.selectedTargetId].dead
? combat.selectedTargetId
: Object.values(combat.mobs).find((mob) => mob.engaged && !mob.dead)?.id ?? null;
useCombatStore.getState().summonActor(member.id, ability, summonEffect, origin, summonTargetId, now);
} else if (effect.kind === "movement") {
const targetPosition = combat.mobs[targetId] ? getMobPosition(targetId) : partyFriendlyPosition(targetId);
if (targetPosition && effect.movement !== "knockback" && effect.toward !== "away") {