feat: implement Transference Channel system for Enchanter attunement
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m21s
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
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
// ─── 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 });
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user