718aed38b1
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m21s
- Add isChanneling, channelSpeedMultiplier, channelDrainRate to CombatState - Add startChanneling/stopChanneling actions to combat store - Add transference-channeling discipline with 3 perks (channel-efficiency, channel-power, channel-mastery) - Add channelIntensity and channelEfficiency to KNOWN_BONUS_STATS - Create combat-channel.ts with drain + speed multiplier computation - Apply channel speed multiplier to equipment spells and melee attacks - Add Channel Transference hold-button UI to SpireCombatPage - Add compact channel status indicator to SpireCombatControls - Channel state resets on spire exit, persists across room transitions - All 1235 existing tests pass
21 lines
731 B
TypeScript
21 lines
731 B
TypeScript
// ─── Combat Channel Actions ────────────────────────────────────────────────────
|
|
// Extracted from combatStore.ts to keep the store under the 400-line limit.
|
|
// Provides startChanneling/stopChanneling action factory for the combat store.
|
|
|
|
import type { CombatStore, CombatState } from './combat-state.types';
|
|
|
|
type GetFn = () => CombatStore;
|
|
type SetFn = (state: Partial<CombatState>) => void;
|
|
|
|
export function createChannelActions(get: GetFn, set: SetFn) {
|
|
return {
|
|
startChanneling: () => {
|
|
set({ isChanneling: true });
|
|
},
|
|
|
|
stopChanneling: () => {
|
|
set({ isChanneling: false });
|
|
},
|
|
};
|
|
}
|