forked from phenom/healer-man
Release Healer Man 0.1.17
This commit is contained in:
1 parent
b57d2b2839
commit
fc8a7a722a
13 files changed
+235
-41
No files matched your search
+14
-5
@@ -4,7 +4,7 @@ import { classById, raceById } from "../app/characterCatalog";
|
||||
import { useShellStore } from "../app/shellStore";
|
||||
import { abilityAtLevel, resourceProfileForClass } from "../game/abilityCatalog";
|
||||
import { ACTION_CONTROLS, actionBindingId } from "../game/actionBindings";
|
||||
import { useCombatStore } from "../game/combatStore";
|
||||
import { resolvedAbilityCosts, useCombatStore } from "../game/combatStore";
|
||||
import { respawnDefeatedPlayer } from "../game/deathRespawn";
|
||||
import { requireDungeonDefinition } from "../game/dungeonRegistry";
|
||||
import { resurrectManastormSession } from "../game/manastormSession";
|
||||
@@ -137,9 +137,12 @@ export function Hud() {
|
||||
const resource = useCombatStore((state) => state.resource);
|
||||
const maxResource = useCombatStore((state) => state.maxResource);
|
||||
const resourcePools = useCombatStore((state) => state.resourcePools);
|
||||
const maxResourcePools = useCombatStore((state) => state.maxResourcePools);
|
||||
const resourceName = useCombatStore((state) => state.resourceName);
|
||||
const abilities = useCombatStore((state) => state.abilities);
|
||||
const talentRanks = useCombatStore((state) => state.talentRanks);
|
||||
const talentModifiers = useCombatStore((state) => state.talentModifiers);
|
||||
const auras = useCombatStore((state) => state.auras);
|
||||
const actionBindings = useCombatStore((state) => state.actionBindings);
|
||||
const cooldowns = useCombatStore((state) => state.cooldowns);
|
||||
const globalCooldownEndsAt = useCombatStore((state) => state.globalCooldownEndsAt);
|
||||
@@ -190,11 +193,17 @@ export function Hud() {
|
||||
const personalRemaining = Math.max(0, (cooldowns[ability.id] ?? 0) - clock);
|
||||
const globalRemaining = Math.max(0, globalCooldownEndsAt - clock);
|
||||
const remaining = Math.max(personalRemaining, globalRemaining);
|
||||
const abilityCosts = ability.costs?.length ? ability.costs : [ability.cost];
|
||||
const abilityCosts = resolvedAbilityCosts(ability, talentModifiers, {
|
||||
classId,
|
||||
maxHealth,
|
||||
maxResource,
|
||||
maxResourcePools,
|
||||
auras,
|
||||
});
|
||||
const cannotPay = abilityCosts.some((cost) => cost.resource === "health"
|
||||
? health <= cost.amount
|
||||
: (resourcePools[cost.resource] ?? (cost.resource === resourceTone ? resource : 0)) < cost.amount);
|
||||
const displayCost = abilityCosts[0] ?? ability.cost;
|
||||
: (cost.resource === resourceTone ? resource : resourcePools[cost.resource] ?? 0) < cost.amount);
|
||||
const displayCost = abilityCosts[0] ?? { resource: ability.cost.resource, amount: 0 };
|
||||
const item: ActionBarItem = {
|
||||
id: ability.id,
|
||||
name: ability.name,
|
||||
@@ -211,7 +220,7 @@ export function Hud() {
|
||||
target: ability.target,
|
||||
};
|
||||
return [control, item];
|
||||
})) as ActionBarItems, [abilities, actionBindings, actionLayer, activeCast, classColor, clock, cooldowns, globalCooldownEndsAt, health, level, resource, resourceName, resourcePools, resourceTone, talentRanks]);
|
||||
})) as ActionBarItems, [abilities, actionBindings, actionLayer, activeCast, auras, classColor, classId, clock, cooldowns, globalCooldownEndsAt, health, level, maxHealth, maxResource, maxResourcePools, resource, resourceName, resourcePools, resourceTone, talentModifiers, talentRanks]);
|
||||
|
||||
const castBinding = (control: (typeof ACTION_CONTROLS)[number]) => useCombatStore.getState().castActionBinding(
|
||||
useGameStore.getState().actionLayer,
|
||||
|
||||
Reference in new issue
Block a user