Files
Mana-Loop/src/lib/game/stores/combat-channel-actions.ts
T
n8n-gitea 718aed38b1
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m21s
feat: implement Transference Channel system for Enchanter attunement
- 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
2026-06-14 21:56:20 +02:00

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 });
},
};
}