feat(control): трекер инициативы в отдельном окне
Очередь NPC/игроков с DnD, курсором на сцене, состояниями и запасом; сброс при смене сцены. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -57,6 +57,8 @@ import type {
|
||||
SceneViewState,
|
||||
SessionTimerEvent,
|
||||
SessionTimerState,
|
||||
InitiativeEvent,
|
||||
InitiativeState,
|
||||
TokenId,
|
||||
TokenPathSessionEvent,
|
||||
TokenPathSessionState,
|
||||
@@ -167,6 +169,8 @@ export const ipcChannels = {
|
||||
closePlaylists: 'windows.closePlaylists',
|
||||
openTimer: 'windows.openTimer',
|
||||
closeTimer: 'windows.closeTimer',
|
||||
openInitiative: 'windows.openInitiative',
|
||||
closeInitiative: 'windows.closeInitiative',
|
||||
openNpcsEditor: 'windows.openNpcsEditor',
|
||||
closeNpcsEditor: 'windows.closeNpcsEditor',
|
||||
openNpcs: 'windows.openNpcs',
|
||||
@@ -209,6 +213,11 @@ export const ipcChannels = {
|
||||
dispatch: 'sessionTimer.dispatch',
|
||||
stateChanged: 'sessionTimer.stateChanged',
|
||||
},
|
||||
initiative: {
|
||||
getState: 'initiative.getState',
|
||||
dispatch: 'initiative.dispatch',
|
||||
stateChanged: 'initiative.stateChanged',
|
||||
},
|
||||
sceneDarkness: {
|
||||
getState: 'sceneDarkness.getState',
|
||||
dispatch: 'sceneDarkness.dispatch',
|
||||
@@ -367,6 +376,7 @@ export type IpcEventMap = {
|
||||
[ipcChannels.materialsOverlay.stateChanged]: { state: MaterialsOverlayState };
|
||||
[ipcChannels.npcsOverlay.stateChanged]: { state: NpcsOverlayState };
|
||||
[ipcChannels.sessionTimer.stateChanged]: { state: SessionTimerState };
|
||||
[ipcChannels.initiative.stateChanged]: { state: InitiativeState };
|
||||
[ipcChannels.sceneDarkness.stateChanged]: { state: SceneDarknessState };
|
||||
[ipcChannels.sceneMarker.stateChanged]: { state: SceneMarkerState };
|
||||
[ipcChannels.sceneTraps.stateChanged]: { state: SceneTrapsState };
|
||||
@@ -804,6 +814,14 @@ export type IpcInvokeMap = {
|
||||
req: Record<string, never>;
|
||||
res: { ok: true };
|
||||
};
|
||||
[ipcChannels.windows.openInitiative]: {
|
||||
req: Record<string, never>;
|
||||
res: { ok: true };
|
||||
};
|
||||
[ipcChannels.windows.closeInitiative]: {
|
||||
req: Record<string, never>;
|
||||
res: { ok: true };
|
||||
};
|
||||
[ipcChannels.windows.openNpcsEditor]: {
|
||||
req: Record<string, never>;
|
||||
res: { ok: true };
|
||||
@@ -868,6 +886,14 @@ export type IpcInvokeMap = {
|
||||
req: { event: SessionTimerEvent };
|
||||
res: { state: SessionTimerState };
|
||||
};
|
||||
[ipcChannels.initiative.getState]: {
|
||||
req: Record<string, never>;
|
||||
res: { state: InitiativeState };
|
||||
};
|
||||
[ipcChannels.initiative.dispatch]: {
|
||||
req: { event: InitiativeEvent };
|
||||
res: { state: InitiativeState };
|
||||
};
|
||||
[ipcChannels.effects.getState]: {
|
||||
req: Record<string, never>;
|
||||
res: { state: EffectsState };
|
||||
@@ -1121,6 +1147,7 @@ export type LegacyIpcEventMap = {
|
||||
[ipcChannels.materialsOverlay.stateChanged]: { state: MaterialsOverlayState };
|
||||
[ipcChannels.npcsOverlay.stateChanged]: { state: NpcsOverlayState };
|
||||
[ipcChannels.sessionTimer.stateChanged]: { state: SessionTimerState };
|
||||
[ipcChannels.initiative.stateChanged]: { state: InitiativeState };
|
||||
[ipcChannels.sceneDarkness.stateChanged]: { state: SceneDarknessState };
|
||||
[ipcChannels.sceneMarker.stateChanged]: { state: SceneMarkerState };
|
||||
[ipcChannels.sceneTraps.stateChanged]: { state: SceneTrapsState };
|
||||
|
||||
Reference in New Issue
Block a user