feat(control): 3D-кубики в отдельном окне
Бросок синхронизирован на пульте и презентации; d100 как десятки; оверлей скрывается только кнопкой «Убрать». Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -59,6 +59,8 @@ import type {
|
||||
SessionTimerState,
|
||||
InitiativeEvent,
|
||||
InitiativeState,
|
||||
DiceRollEvent,
|
||||
DiceRollState,
|
||||
TokenId,
|
||||
TokenPathSessionEvent,
|
||||
TokenPathSessionState,
|
||||
@@ -171,6 +173,8 @@ export const ipcChannels = {
|
||||
closeTimer: 'windows.closeTimer',
|
||||
openInitiative: 'windows.openInitiative',
|
||||
closeInitiative: 'windows.closeInitiative',
|
||||
openDice: 'windows.openDice',
|
||||
closeDice: 'windows.closeDice',
|
||||
openNpcsEditor: 'windows.openNpcsEditor',
|
||||
closeNpcsEditor: 'windows.closeNpcsEditor',
|
||||
openNpcs: 'windows.openNpcs',
|
||||
@@ -218,6 +222,11 @@ export const ipcChannels = {
|
||||
dispatch: 'initiative.dispatch',
|
||||
stateChanged: 'initiative.stateChanged',
|
||||
},
|
||||
diceRoll: {
|
||||
getState: 'diceRoll.getState',
|
||||
dispatch: 'diceRoll.dispatch',
|
||||
stateChanged: 'diceRoll.stateChanged',
|
||||
},
|
||||
sceneDarkness: {
|
||||
getState: 'sceneDarkness.getState',
|
||||
dispatch: 'sceneDarkness.dispatch',
|
||||
@@ -377,6 +386,7 @@ export type IpcEventMap = {
|
||||
[ipcChannels.npcsOverlay.stateChanged]: { state: NpcsOverlayState };
|
||||
[ipcChannels.sessionTimer.stateChanged]: { state: SessionTimerState };
|
||||
[ipcChannels.initiative.stateChanged]: { state: InitiativeState };
|
||||
[ipcChannels.diceRoll.stateChanged]: { state: DiceRollState };
|
||||
[ipcChannels.sceneDarkness.stateChanged]: { state: SceneDarknessState };
|
||||
[ipcChannels.sceneMarker.stateChanged]: { state: SceneMarkerState };
|
||||
[ipcChannels.sceneTraps.stateChanged]: { state: SceneTrapsState };
|
||||
@@ -822,6 +832,14 @@ export type IpcInvokeMap = {
|
||||
req: Record<string, never>;
|
||||
res: { ok: true };
|
||||
};
|
||||
[ipcChannels.windows.openDice]: {
|
||||
req: Record<string, never>;
|
||||
res: { ok: true };
|
||||
};
|
||||
[ipcChannels.windows.closeDice]: {
|
||||
req: Record<string, never>;
|
||||
res: { ok: true };
|
||||
};
|
||||
[ipcChannels.windows.openNpcsEditor]: {
|
||||
req: Record<string, never>;
|
||||
res: { ok: true };
|
||||
@@ -894,6 +912,14 @@ export type IpcInvokeMap = {
|
||||
req: { event: InitiativeEvent };
|
||||
res: { state: InitiativeState };
|
||||
};
|
||||
[ipcChannels.diceRoll.getState]: {
|
||||
req: Record<string, never>;
|
||||
res: { state: DiceRollState };
|
||||
};
|
||||
[ipcChannels.diceRoll.dispatch]: {
|
||||
req: { event: DiceRollEvent };
|
||||
res: { state: DiceRollState };
|
||||
};
|
||||
[ipcChannels.effects.getState]: {
|
||||
req: Record<string, never>;
|
||||
res: { state: EffectsState };
|
||||
@@ -1148,6 +1174,7 @@ export type LegacyIpcEventMap = {
|
||||
[ipcChannels.npcsOverlay.stateChanged]: { state: NpcsOverlayState };
|
||||
[ipcChannels.sessionTimer.stateChanged]: { state: SessionTimerState };
|
||||
[ipcChannels.initiative.stateChanged]: { state: InitiativeState };
|
||||
[ipcChannels.diceRoll.stateChanged]: { state: DiceRollState };
|
||||
[ipcChannels.sceneDarkness.stateChanged]: { state: SceneDarknessState };
|
||||
[ipcChannels.sceneMarker.stateChanged]: { state: SceneMarkerState };
|
||||
[ipcChannels.sceneTraps.stateChanged]: { state: SceneTrapsState };
|
||||
|
||||
Reference in New Issue
Block a user