@vnejs/docs 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/README.md +49 -0
  2. package/architecture.md +507 -0
  3. package/manifest.json +44 -0
  4. package/package.json +27 -0
  5. package/plugins/audio/ambient.md +39 -0
  6. package/plugins/audio/audio.md +61 -0
  7. package/plugins/audio/music.md +39 -0
  8. package/plugins/audio/sound.md +39 -0
  9. package/plugins/audio/voice.md +43 -0
  10. package/plugins/canvas/bg.md +76 -0
  11. package/plugins/canvas/bg.speak.md +54 -0
  12. package/plugins/canvas/fill.md +66 -0
  13. package/plugins/canvas/layer.md +57 -0
  14. package/plugins/canvas/sprite.md +85 -0
  15. package/plugins/canvas/sprite.speak.md +53 -0
  16. package/plugins/canvas/text.md +63 -0
  17. package/plugins/canvas/video.md +71 -0
  18. package/plugins/canvas.layers/bl.md +47 -0
  19. package/plugins/canvas.layers/fl.md +47 -0
  20. package/plugins/canvas.layers/ml.md +47 -0
  21. package/plugins/canvas.layers/ul.md +46 -0
  22. package/plugins/canvas.props/animation.md +48 -0
  23. package/plugins/canvas.props/clip.md +43 -0
  24. package/plugins/canvas.props/filters.md +39 -0
  25. package/plugins/canvas.props/mask.md +44 -0
  26. package/plugins/canvas.props/scale.md +41 -0
  27. package/plugins/controls/controls.md +41 -0
  28. package/plugins/controls/cursor.md +59 -0
  29. package/plugins/controls/gamepad.md +37 -0
  30. package/plugins/controls/keyboard.md +37 -0
  31. package/plugins/core/components.md +47 -0
  32. package/plugins/core/interact.md +45 -0
  33. package/plugins/core/logs.md +46 -0
  34. package/plugins/core/media.md +59 -0
  35. package/plugins/core/memory.md +44 -0
  36. package/plugins/core/platforms.md +48 -0
  37. package/plugins/core/scenario.md +63 -0
  38. package/plugins/core/settings.md +43 -0
  39. package/plugins/core/stack.md +57 -0
  40. package/plugins/core/state.md +51 -0
  41. package/plugins/core/storage.md +89 -0
  42. package/plugins/core/system.md +56 -0
  43. package/plugins/core/vendors.md +45 -0
  44. package/plugins/entities/entities.md +35 -0
  45. package/plugins/entities/wallet.md +47 -0
  46. package/plugins/font/montserrat.md +35 -0
  47. package/plugins/platform/android.md +38 -0
  48. package/plugins/platform/electron.md +40 -0
  49. package/plugins/platform/metric.md +42 -0
  50. package/plugins/rpg/damage.md +46 -0
  51. package/plugins/rpg/hit.md +46 -0
  52. package/plugins/rpg/skills.md +47 -0
  53. package/plugins/save/auto.md +47 -0
  54. package/plugins/save/continue.md +43 -0
  55. package/plugins/save/save.md +62 -0
  56. package/plugins/scales/health.md +37 -0
  57. package/plugins/scales/mana.md +37 -0
  58. package/plugins/scales/scales.md +54 -0
  59. package/plugins/scenario/autoread.md +50 -0
  60. package/plugins/scenario/choose.md +111 -0
  61. package/plugins/scenario/fastforward.md +61 -0
  62. package/plugins/scenario/pause.md +43 -0
  63. package/plugins/scenario/point_and_click.md +95 -0
  64. package/plugins/scenario/qte.md +97 -0
  65. package/plugins/scenario/random.md +38 -0
  66. package/plugins/settings/filter.md +39 -0
  67. package/plugins/settings/potato.md +41 -0
  68. package/plugins/settings/ratio.md +41 -0
  69. package/plugins/settings/textsize.md +39 -0
  70. package/plugins/settings/volume.md +41 -0
  71. package/plugins/text/inject.md +41 -0
  72. package/plugins/text/locs.md +49 -0
  73. package/plugins/text/meet.md +40 -0
  74. package/plugins/text/smooth.md +51 -0
  75. package/plugins/text/text.md +78 -0
  76. package/plugins/text/wall.md +41 -0
  77. package/plugins/time/date.md +42 -0
  78. package/plugins/time/time.md +43 -0
  79. package/plugins/vars/counters.md +46 -0
  80. package/plugins/vars/flags.md +44 -0
  81. package/plugins/vars/vars.md +51 -0
  82. package/plugins/views/achievement.md +64 -0
  83. package/plugins/views/comment.md +49 -0
  84. package/plugins/views/cursor.md +39 -0
  85. package/plugins/views/fps.md +51 -0
  86. package/plugins/views/video.md +57 -0
  87. package/plugins/views.scenario/choose.md +79 -0
  88. package/plugins/views.scenario/interface.controls.md +50 -0
  89. package/plugins/views.scenario/interface.fastforward.md +50 -0
  90. package/plugins/views.scenario/interface.md +68 -0
  91. package/plugins/views.scenario/point_and_click.md +87 -0
  92. package/plugins/views.scenario/qte.md +105 -0
  93. package/plugins/views.screens/confirm.md +48 -0
  94. package/plugins/views.screens/credits.md +46 -0
  95. package/plugins/views.screens/eula.md +54 -0
  96. package/plugins/views.screens/gallery.full.md +48 -0
  97. package/plugins/views.screens/gallery.md +69 -0
  98. package/plugins/views.screens/gamemenu.md +52 -0
  99. package/plugins/views.screens/history.md +70 -0
  100. package/plugins/views.screens/intro.md +50 -0
  101. package/plugins/views.screens/loading.md +48 -0
  102. package/plugins/views.screens/mainmenu.md +61 -0
  103. package/plugins/views.screens/mainmenu.socials.md +45 -0
  104. package/plugins/views.screens/save.md +63 -0
  105. package/plugins/views.screens/settings.defaults.md +51 -0
  106. package/plugins/views.screens/settings.md +53 -0
  107. package/scenario.catalog/README.md +38 -0
  108. package/scenario.catalog/index.md +109 -0
  109. package/scenario.catalog/stubs/achievement.md +16 -0
  110. package/scenario.catalog/stubs/audio.ambient.md +16 -0
  111. package/scenario.catalog/stubs/audio.music.md +16 -0
  112. package/scenario.catalog/stubs/audio.sound.md +16 -0
  113. package/scenario.catalog/stubs/audio.voice.md +16 -0
  114. package/scenario.catalog/stubs/bl.animation.md +18 -0
  115. package/scenario.catalog/stubs/bl.bg.md +18 -0
  116. package/scenario.catalog/stubs/bl.clip.md +18 -0
  117. package/scenario.catalog/stubs/bl.fill.md +18 -0
  118. package/scenario.catalog/stubs/bl.filter.md +18 -0
  119. package/scenario.catalog/stubs/bl.mask.md +18 -0
  120. package/scenario.catalog/stubs/bl.scale.md +18 -0
  121. package/scenario.catalog/stubs/bl.sprite.md +18 -0
  122. package/scenario.catalog/stubs/bl.text.md +18 -0
  123. package/scenario.catalog/stubs/bl.video.md +18 -0
  124. package/scenario.catalog/stubs/choose.block.md +25 -0
  125. package/scenario.catalog/stubs/choose.md +18 -0
  126. package/scenario.catalog/stubs/choose.option.md +24 -0
  127. package/scenario.catalog/stubs/comment.md +17 -0
  128. package/scenario.catalog/stubs/counter.md +21 -0
  129. package/scenario.catalog/stubs/credits.md +17 -0
  130. package/scenario.catalog/stubs/date.md +17 -0
  131. package/scenario.catalog/stubs/fl.animation.md +18 -0
  132. package/scenario.catalog/stubs/fl.bg.md +18 -0
  133. package/scenario.catalog/stubs/fl.clip.md +18 -0
  134. package/scenario.catalog/stubs/fl.fill.md +18 -0
  135. package/scenario.catalog/stubs/fl.filter.md +18 -0
  136. package/scenario.catalog/stubs/fl.mask.md +18 -0
  137. package/scenario.catalog/stubs/fl.scale.md +18 -0
  138. package/scenario.catalog/stubs/fl.sprite.md +18 -0
  139. package/scenario.catalog/stubs/fl.text.md +18 -0
  140. package/scenario.catalog/stubs/fl.video.md +18 -0
  141. package/scenario.catalog/stubs/flag.md +24 -0
  142. package/scenario.catalog/stubs/interface.md +17 -0
  143. package/scenario.catalog/stubs/intro.md +16 -0
  144. package/scenario.catalog/stubs/mainmenu.md +16 -0
  145. package/scenario.catalog/stubs/ml.animation.md +18 -0
  146. package/scenario.catalog/stubs/ml.bg.md +18 -0
  147. package/scenario.catalog/stubs/ml.clip.md +18 -0
  148. package/scenario.catalog/stubs/ml.fill.md +18 -0
  149. package/scenario.catalog/stubs/ml.filter.md +18 -0
  150. package/scenario.catalog/stubs/ml.mask.md +18 -0
  151. package/scenario.catalog/stubs/ml.scale.md +18 -0
  152. package/scenario.catalog/stubs/ml.sprite.md +18 -0
  153. package/scenario.catalog/stubs/ml.text.md +18 -0
  154. package/scenario.catalog/stubs/ml.video.md +18 -0
  155. package/scenario.catalog/stubs/other.md +17 -0
  156. package/scenario.catalog/stubs/pause.md +16 -0
  157. package/scenario.catalog/stubs/point-and-click.block.md +21 -0
  158. package/scenario.catalog/stubs/point-and-click.md +18 -0
  159. package/scenario.catalog/stubs/point-and-click.option.md +20 -0
  160. package/scenario.catalog/stubs/qte.md +16 -0
  161. package/scenario.catalog/stubs/random.md +16 -0
  162. package/scenario.catalog/stubs/random.option.md +16 -0
  163. package/scenario.catalog/stubs/save.auto.md +16 -0
  164. package/scenario.catalog/stubs/save.md +16 -0
  165. package/scenario.catalog/stubs/scenario.md +17 -0
  166. package/scenario.catalog/stubs/settings.defaults.md +16 -0
  167. package/scenario.catalog/stubs/stack.md +18 -0
  168. package/scenario.catalog/stubs/text.meet.md +16 -0
  169. package/scenario.catalog/stubs/text.wall.md +17 -0
  170. package/scenario.catalog/stubs/time.md +17 -0
  171. package/scenario.catalog/stubs/ul.animation.md +18 -0
  172. package/scenario.catalog/stubs/ul.bg.md +18 -0
  173. package/scenario.catalog/stubs/ul.clip.md +18 -0
  174. package/scenario.catalog/stubs/ul.fill.md +18 -0
  175. package/scenario.catalog/stubs/ul.filter.md +18 -0
  176. package/scenario.catalog/stubs/ul.mask.md +18 -0
  177. package/scenario.catalog/stubs/ul.scale.md +18 -0
  178. package/scenario.catalog/stubs/ul.sprite.md +18 -0
  179. package/scenario.catalog/stubs/ul.text.md +18 -0
  180. package/scenario.catalog/stubs/video.md +16 -0
  181. package/scenario.catalog/stubs/wallet.md +17 -0
  182. package/scenario.guide/README.md +82 -0
  183. package/scenario.guide/audio.md +29 -0
  184. package/scenario.guide/canvas.md +46 -0
  185. package/scenario.guide/choose.md +54 -0
  186. package/scenario.guide/dialogue.md +58 -0
  187. package/scenario.guide/flow.md +71 -0
  188. package/scenario.guide/point-and-click.md +35 -0
  189. package/scenario.guide/qte-random.md +51 -0
  190. package/scenario.guide/vars.md +67 -0
  191. package/scenario.guide/views.md +65 -0
@@ -0,0 +1,54 @@
1
+ # plugins/scales/scales/
2
+
3
+ Пакет: `@vnejs/plugins.scales.scales` · namespace: `SCALES`
4
+
5
+ Управляет числовыми шкалами: spawn, change, set, check и границы.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `SPAWN` | `vne:scales:spawn` | Событие `SPAWN` namespace плагина. |
12
+ | `DESTROY` | `vne:scales:destroy` | Событие `DESTROY` namespace плагина. |
13
+ | `SET` | `vne:scales:set` | Записать или обновить значение. |
14
+ | `RESET` | `vne:scales:reset` | Событие `RESET` namespace плагина. |
15
+ | `CHANGE` | `vne:scales:change` | Событие `CHANGE` namespace плагина. |
16
+ | `CHANGED` | `vne:scales:changed` | Зафиксировать изменение состояния. |
17
+ | `CHECK` | `vne:scales:check` | Проверить состояние или наличие ресурса. |
18
+ | `OVERFLOW` | `vne:scales:overflow` | Событие `OVERFLOW` namespace плагина. |
19
+ | `UNDERFLOW` | `vne:scales:underflow` | Событие `UNDERFLOW` namespace плагина. |
20
+
21
+ ## Константы
22
+
23
+ Нет.
24
+
25
+ ## Параметры
26
+
27
+ | Ключ | Тип | Смысл |
28
+ |------|-----|-------|
29
+ | `TYPES` | `string` | Виды шкал (`health`, `mana`, …), расширяются дочерними контрактами. |
30
+
31
+ ## Ключи
32
+
33
+ Контракт экспортирует `getScaleKey(entityId, scaleType)` → `` `${entityId}:${scaleType}` `` (например `hero:health`). События scales принимают `key` как opaque string.
34
+
35
+ ## Настройки
36
+
37
+ Нет.
38
+
39
+ ## Модули
40
+
41
+ | Модуль | Зона ответственности |
42
+ |--------|----------------------|
43
+ | `scales` | Обрабатывает SPAWN, DESTROY, RESET, CHANGE, …. |
44
+
45
+ ## Близкие плагины
46
+
47
+ ### plugins/core/
48
+
49
+ - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
50
+
51
+ ### Остальные
52
+
53
+ - [health.md](./health.md) — `SCALES.TYPES.HEALTH`
54
+ - [mana.md](./mana.md) — `SCALES.TYPES.MANA`
@@ -0,0 +1,50 @@
1
+ # plugins/scenario/autoread/
2
+
3
+ Пакет: `@vnejs/plugins.scenario.autoread` · namespace: `AUTOREAD`
4
+
5
+ Автоматически продвигает сценарий по таймеру с настраиваемой задержкой и временными блокировками.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `TRY` | `vne:autoread:try` | Записать диагностическое сообщение в лог. |
12
+ | `PUSH` | `vne:autoread:push` | Добавить элемент в очередь или стек. |
13
+ | `POP` | `vne:autoread:pop` | Извлечь элемент из очереди или стека. |
14
+
15
+ ## Константы
16
+
17
+ Нет.
18
+
19
+ ## Параметры
20
+
21
+ | Ключ | Тип | Смысл |
22
+ |------|-----|-------|
23
+ | `DEFAULT_DELAY` | `number` | Значение по умолчанию: 5000. |
24
+ | `DEFAULT_ENABLED` | `boolean` | Значение по умолчанию для включения функции. |
25
+
26
+ ## Настройки
27
+
28
+ | Ключ | Тип | Смысл |
29
+ |------|-----|-------|
30
+ | `ENABLED` (`vne:autoread:enabled`) | `boolean` | Включить или выключить функцию. |
31
+ | `DELAY` (`vne:autoread:delay`) | `number` | Настройка `vne:autoread:delay` в `shared.settings`. |
32
+
33
+ ## Модули
34
+
35
+ | Модуль | Зона ответственности |
36
+ |--------|----------------------|
37
+ | `autoread` | Обрабатывает TRY, PUSH, POP, CHANGED, …. |
38
+
39
+ ## Близкие плагины
40
+
41
+ ### plugins/core/
42
+
43
+ - [interact.md](../core/interact.md) — `INTERACT`: EVENTS.EMIT
44
+ - [logs.md](../core/logs.md) — `LOGS`: emitLog
45
+ - [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.CHANGED, EVENTS.INIT
46
+ - [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR, EVENTS.SET
47
+
48
+ ### Остальные
49
+
50
+ — нет
@@ -0,0 +1,111 @@
1
+ # plugins/scenario/choose/
2
+
3
+ Пакет: `@vnejs/plugins.scenario.choose` · namespace: `CHOOSE`
4
+
5
+ Обрабатывает сценарные команды `% choose` / `$ choose`, собирает опции, хранит состояние выбора в `globalState.choose` и переводит сценарий к выбранной ветке. UI не рендерит — за отображение отвечает [views.scenario/choose.md](../views.scenario/choose.md).
6
+
7
+ ## Сценарные команды
8
+
9
+ | Синтаксис | Смысл |
10
+ |-----------|--------|
11
+ | `% choose` | Открыть выбор: собрать `% choose.option`, emit `EMIT`. Если все опции `hided` (или список пуст) — `SKIP` и переход за блок. |
12
+ | `% choose.option "…"` | Ветка опции; при проходе мимо невыбранной — skip тела по indent. |
13
+ | `$ choose repeat` | Вернуться к ближайшему `% choose` **выше** текущей строки в том же label и `emitNext`. |
14
+
15
+ Пример цикла «осмотреть → вернуться в меню»:
16
+
17
+ ```vne
18
+ % choose
19
+ % choose.option "Осмотреть"
20
+ hided: $ flag seen
21
+ $ flag seen
22
+ "…"
23
+ $ choose repeat
24
+ # дальше — когда при повторном входе все option скрыты
25
+ ```
26
+
27
+ ## События
28
+
29
+ | Ключ | Строка | Смысл |
30
+ |------|--------|-------|
31
+ | `EMIT` | `vne:choose:emit` | Принять опции и args; если есть видимые — `STATE_UPDATE` и `SHOW`; иначе `SKIP`. |
32
+ | `OPTION` | `vne:choose:option` | Принять выбор по UI-индексу: прогнать `OPTION_BEFORE`, затем `HIDE`, `OPTION_REPLACE`, установить `curLine`, сброс state, `emitNext`. |
33
+ | `OPTION_BEFORE` | `vne:choose:option_before` | Side effects до применения выбора (handlers с приоритетами; `ModuleHandlers`). |
34
+ | `OPTION_BEFORE_REG` | `vne:choose:option_before_reg` | Зарегистрировать обработчик `OPTION_BEFORE`. |
35
+ | `OPTION_REPLACE` | `vne:choose:option_replace` | Подменить UI-индекс принятой опции (цепочка handlers перед переходом по ветке). |
36
+ | `OPTION_REPLACE_REG` | `vne:choose:option_replace_reg` | Зарегистрировать обработчик `OPTION_REPLACE`. |
37
+ | `SKIP` | `vne:choose:skip` | Пропустить блок: `curLine` на первую строку после indent-дерева `% choose`, `emitNext`. |
38
+ | `SHOW` | `vne:choose:show` | Выбор активен (state готов). Слушает view-плагин. |
39
+ | `HIDE` | `vne:choose:hide` | Выбор закрыт. Слушает view-плагин. |
40
+ | `EXEC_REG` | `vne:choose:exec_reg` | Зарегистрировать exec-обработчик для подстановки в опции. |
41
+ | `EXEC_GET` | `vne:choose:exec_get` | Получить значение через зарегистрированный exec-обработчик. |
42
+ | `STATE_UPDATE` | `vne:choose:state_update` | Обновить накопленное состояние модуля `choose`. |
43
+
44
+ ## Константы
45
+
46
+ | Ключ | Смысл |
47
+ |------|--------|
48
+ | `EXEC_ACTIONS.REPEAT` | Литерал `repeat` для `$ choose repeat`. |
49
+ | `LOGS_ACTIONS` | Метки для логов: `EMIT`, `OPTION`, `SKIP`, `SHOW`, `HIDE`, `REPEAT`. |
50
+
51
+ ## Параметры
52
+
53
+ Нет.
54
+
55
+ ## Настройки
56
+
57
+ Нет.
58
+
59
+ ## Модули
60
+
61
+ | Модуль | Зона ответственности |
62
+ |--------|----------------------|
63
+ | `choose` | State: `STATE_UPDATE`, синхронизация с `STATE.SET` / `STATE.CLEAR` (→ `SHOW` / `HIDE`). |
64
+ | `choose.emit` | Обрабатывает `EMIT` (→ `STATE_UPDATE` + `SHOW` или `SKIP`). |
65
+ | `choose.option` | Обрабатывает `OPTION`. |
66
+ | `choose.skip` | Обрабатывает `SKIP`. |
67
+ | `choose.logs` | Логирование `EMIT` / `OPTION` / `SKIP` / `SHOW` / `HIDE`. |
68
+ | `choose.option_before` | Реестр обработчиков `OPTION_BEFORE_REG`; наследник `@vnejs/module.handlers`. |
69
+ | `choose.replace` | Реестр обработчиков `OPTION_REPLACE_REG`; наследник `@vnejs/module.replace`. |
70
+ | `choose.exec` | Реестр обработчиков EXEC_REG / EXEC_GET. |
71
+ | `choose.scenario` | Регистрация `% choose`: сбор option-строк, emit `EMIT`. |
72
+ | `choose.scenario.option` | Регистрация `% choose.option`: skip невыбранных веток. |
73
+ | `choose.scenario.module` | Регистрация `$ choose`: action `repeat`. |
74
+
75
+ ## Compatibility
76
+
77
+ ### `compatibility/scenario.choose/scenario.fastforward/`
78
+
79
+ Пакет: `@vnejs/compatibility.scenario.choose-with-scenario.fastforward`
80
+
81
+ В `init` регистрирует handler на `OPTION_BEFORE_REG`: при выборе опции эмитит `FASTFORWARD.CHECK` (до `HIDE` / `OPTION_REPLACE`).
82
+
83
+ ### `compatibility/scenario.choose/views.screens.history/`
84
+
85
+ Пакет: `@vnejs/compatibility.scenario.choose-with-views.screens.history`
86
+
87
+ В `init` регистрирует handler на `OPTION_BEFORE_REG`: при выборе опции эмитит `HISTORY.ADD` с `{ locKey: "choice" }` (без speaker/text). Текст строки берётся из локализации view history (`history.json`).
88
+
89
+ ### `compatibility/scenario.choose/scenario.qte/`
90
+
91
+ Пакет: `@vnejs/compatibility.scenario.choose-with-scenario.qte`
92
+
93
+ На `OPTION_REPLACE` запускает QTE, если у опции есть `qte: <id>` (см. [qte.md](./qte.md#compatibility)). Поле `qte` добавляется в тип `ChooseOption` через module augmentation этого пакета; `qte-fallback` — keyword на строке опции (`% choose.option "…" | qte-fallback`), попадает в `ChooseOption.keywords`.
94
+
95
+ ## Близкие плагины
96
+
97
+ ### plugins/core/
98
+
99
+ - [logs.md](../core/logs.md) — `LOGS`: emitLog, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
100
+ - [scenario.md](../core/scenario.md) — `SCENARIO`: emitNext, EVENTS.LINE_EXEC_REG, EVENTS.LINES_GET
101
+ - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
102
+ - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
103
+
104
+ ### Остальные
105
+
106
+ - [text.md](../text/text.md) — `TEXT`: EVENTS.REPLACE (текст опций)
107
+ - [qte.md](./qte.md) — `QTE`: связка через `OPTION_REPLACE` (compatibility выше)
108
+ - [fastforward.md](./fastforward.md) — `FASTFORWARD`: связка через `OPTION_BEFORE_REG` (compatibility выше)
109
+ - [views.screens/history.md](../views.screens/history.md) — `HISTORY`: связка через `OPTION_BEFORE_REG` → `ADD` с `locKey` (compatibility выше)
110
+ - [views.scenario/choose.md](../views.scenario/choose.md) — `CHOOSE_VIEW`: UI выбора (слушает SHOW / HIDE)
111
+ - [scenario/point_and_click.md](./point_and_click.md) — тот же паттерн `repeat` / `SKIP` / `SHOW` / `HIDE` / `STATE_UPDATE`
@@ -0,0 +1,61 @@
1
+ # plugins/scenario/fastforward/
2
+
3
+ Пакет: `@vnejs/plugins.scenario.fastforward` · namespace: `FASTFORWARD`
4
+
5
+ Включает режим ускоренного просмотра с автокликом и проверкой уже просмотренных сцен.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `STOP` | `vne:fastforward:stop` | Остановить воспроизведение. |
12
+ | `START` | `vne:fastforward:start` | Начать процесс. |
13
+ | `TOGGLE` | `vne:fastforward:toggle` | Событие `TOGGLE` namespace плагина. |
14
+ | `EMIT` | `vne:fastforward:emit` | Инициировать действие или цикл. |
15
+ | `EMIT_CHECK` | `vne:fastforward:emit_check` | Инициировать действие или цикл. |
16
+ | `CHECK` | `vne:fastforward:check` | Проверить состояние или наличие ресурса. |
17
+ | `CHANGED` | `vne:fastforward:changed` | Зафиксировать изменение состояния. |
18
+ | `CLEAR` | `vne:fastforward:clear` | Очистить накопленное состояние. |
19
+
20
+ ## Константы
21
+
22
+ Нет.
23
+
24
+ ## Параметры
25
+
26
+ | Ключ | Тип | Смысл |
27
+ |------|-----|-------|
28
+ | `DEFAULT_CHECK_VISITED` | `boolean` | Значение по умолчанию: true. |
29
+ | `DEFAULT_DELAY` | `number` | Значение по умолчанию: 50. |
30
+ | `DEFAULT_ENABLED` | `boolean` | Значение по умолчанию для включения функции. |
31
+
32
+ ## Настройки
33
+
34
+ | Ключ | Тип | Смысл |
35
+ |------|-----|-------|
36
+ | `CHECK_VISITED` (`vne:fastforward:check_visited`) | `string` | Настройка `vne:fastforward:check_visited` в `shared.settings`. |
37
+ | `DELAY` (`vne:fastforward:delay`) | `number` | Настройка `vne:fastforward:delay` в `shared.settings`. |
38
+ | `ENABLED` (`vne:fastforward:enabled`) | `boolean` | Включить или выключить функцию. |
39
+
40
+ ## Модули
41
+
42
+ | Модуль | Зона ответственности |
43
+ |--------|----------------------|
44
+ | `fastforward` | Обрабатывает STOP, START, CHECK, TOGGLE, …. |
45
+ | `fastforward.visits` | Визиты в `STORAGE`: `group` = label, `key` = hash; `GET_ALL` по module без group возвращает `label/hash`, при init hash берётся из хвоста ключа. На диске: `fastforward.visits/{label}.json`. |
46
+
47
+ ## Близкие плагины
48
+
49
+ ### plugins/core/
50
+
51
+ - [interact.md](../core/interact.md) — `INTERACT`: EVENTS.EMIT
52
+ - [scenario.md](../core/scenario.md) — `SCENARIO`: EVENTS.EXEC
53
+ - [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.INIT
54
+ - [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR, EVENTS.SET
55
+ - [storage.md](../core/storage.md) — `STORAGE`: EVENTS.GET_ALL, EVENTS.SET, EVENTS.RM_ALL
56
+ - [system.md](../core/system.md) — `SYSTEM`: EVENTS.STARTED
57
+ - [vendors.md](../core/vendors.md) — `VENDORS`: EVENTS.HASH
58
+
59
+ ### Остальные
60
+
61
+ - [choose.md](./choose.md) — `CHOOSE`: связка через `compatibility/scenario.choose/scenario.fastforward` (`OPTION_BEFORE_REG` → `FASTFORWARD.CHECK`)
@@ -0,0 +1,43 @@
1
+ # plugins/scenario/pause/
2
+
3
+ Пакет: `@vnejs/plugins.scenario.pause` · namespace: `PAUSE`
4
+
5
+ Ставит сценарий на паузу до клика игрока или на заданное время через exec-команду.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `START` | `vne:pause:start` | Продвинуть сценарий к следующей строке. |
12
+ | `END` | `vne:pause:end` | Записать диагностическое сообщение в лог. |
13
+
14
+ ## Константы
15
+
16
+ Нет.
17
+
18
+ ## Параметры
19
+
20
+ Нет.
21
+
22
+ ## Настройки
23
+
24
+ Нет.
25
+
26
+ ## Модули
27
+
28
+ | Модуль | Зона ответственности |
29
+ |--------|----------------------|
30
+ | `pause` | Обрабатывает END, START, CLEAR. |
31
+
32
+ ## Близкие плагины
33
+
34
+ ### plugins/core/
35
+
36
+ - [interact.md](../core/interact.md) — `INTERACT`: EVENTS.POP, EVENTS.PUSH
37
+ - [logs.md](../core/logs.md) — `LOGS`: emitLog
38
+ - [scenario.md](../core/scenario.md) — `SCENARIO`: emitNext, EVENTS.LINE_EXEC_REG
39
+ - [state.md](../core/state.md) — `STATE`: EVENTS.CLEAR
40
+
41
+ ### Остальные
42
+
43
+ — нет
@@ -0,0 +1,95 @@
1
+ # plugins/scenario/point_and_click/
2
+
3
+ Пакет: `@vnejs/plugins.scenario.point_and_click` · namespace: `POINT_AND_CLICK`
4
+
5
+ Обрабатывает сценарные команды `% point-and-click` / `$ point-and-click`, собирает hotspot-опции, хранит состояние в `globalState.point_and_click` и переводит сценарий к выбранной ветке. UI не рендерит — за отображение отвечает [views.scenario/point_and_click.md](../views.scenario/point_and_click.md).
6
+
7
+ ## Сценарные команды
8
+
9
+ | Синтаксис | Смысл |
10
+ |-----------|--------|
11
+ | `% point-and-click` | Открыть point-and-click: собрать `% point-and-click.option`, emit `EMIT`. Если все опции `hided` (или список пуст) — `SKIP` и переход за блок. |
12
+ | `% point-and-click.option {icon} x y` | Hotspot; при проходе мимо невыбранного — skip тела по indent. |
13
+ | `$ point-and-click repeat` | Вернуться к ближайшему `% point-and-click` **выше** текущей строки в том же label и `emitNext`. |
14
+
15
+ Пример цикла осмотра:
16
+
17
+ ```vne
18
+ % point-and-click
19
+ % point-and-click.option {lupa} 25 25
20
+ hided: $ flag prologue_2_pac_1
21
+ $ flag prologue_2_pac_1
22
+ "…"
23
+ $ point-and-click repeat
24
+ # дальше — когда при повторном входе все option скрыты
25
+ ```
26
+
27
+ ## События
28
+
29
+ | Ключ | Строка | Смысл |
30
+ |------|--------|-------|
31
+ | `EMIT` | `vne:point_and_click:emit` | Принять опции и args; если есть видимые — `STATE_UPDATE` и `SHOW`; иначе `SKIP`. |
32
+ | `OPTION` | `vne:point_and_click:option` | Выбор hotspot: `HIDE`, `curLine` внутрь опции, сброс state через `STATE_UPDATE`, `emitNext`. |
33
+ | `SKIP` | `vne:point_and_click:skip` | Пропустить блок: `curLine` на первую строку после indent-дерева `% point-and-click`, `emitNext`. |
34
+ | `SHOW` | `vne:point_and_click:show` | Выбор активен (state готов). Слушает view-плагин. |
35
+ | `HIDE` | `vne:point_and_click:hide` | Выбор закрыт. Слушает view-плагин. |
36
+ | `EXEC_REG` | `vne:point_and_click:exec_reg` | Зарегистрировать exec-обработчик для подстановки в опции. |
37
+ | `EXEC_GET` | `vne:point_and_click:exec_get` | Получить значение через зарегистрированный exec-обработчик (например `hided:` / `disabled:`). |
38
+ | `STATE_UPDATE` | `vne:point_and_click:state_update` | Обновить накопленное состояние модуля `point_and_click`. |
39
+
40
+ ## Константы
41
+
42
+ | Ключ | Смысл |
43
+ |------|--------|
44
+ | `EXEC_ACTIONS.REPEAT` | Литерал `repeat` для `$ point-and-click repeat`. |
45
+ | `LOGS_ACTIONS` | Метки для логов: `EMIT`, `OPTION`, `SKIP`, `SHOW`, `HIDE`, `REPEAT`. |
46
+
47
+ ## Параметры
48
+
49
+ Нет.
50
+
51
+ ## Настройки
52
+
53
+ Нет.
54
+
55
+ ## Модули
56
+
57
+ | Модуль | Зона ответственности |
58
+ |--------|----------------------|
59
+ | `point_and_click` | State: `STATE_UPDATE`, синхронизация с `STATE.SET` / `STATE.CLEAR` (→ `SHOW` / `HIDE`). |
60
+ | `point_and_click.emit` | Обрабатывает `EMIT` (→ `STATE_UPDATE` + `SHOW` или `SKIP`). |
61
+ | `point_and_click.option` | Обрабатывает `OPTION`. |
62
+ | `point_and_click.skip` | Обрабатывает `SKIP`. |
63
+ | `point_and_click.logs` | Логирование `EMIT` / `OPTION` / `SKIP` / `SHOW` / `HIDE`. |
64
+ | `point-and-click.exec` | Реестр обработчиков EXEC_REG / EXEC_GET. |
65
+ | `point-and-click.scenario` | Регистрация `% point-and-click`: сбор option-строк, emit `EMIT`. |
66
+ | `point-and-click.scenario.option` | Регистрация `% point-and-click.option`: skip невыбранных веток. |
67
+ | `point-and-click.scenario.module` | Регистрация `$ point-and-click`: action `repeat`. |
68
+
69
+ ## Compatibility
70
+
71
+ ### `compatibility/scenario.point_and_click/vars.flags/`
72
+
73
+ Пакет: `@vnejs/compatibility.scenario.point_and_click-with-vars.flags`
74
+
75
+ В `init` регистрирует handler на `EXEC_REG` для модуля flags → `VARS_FLAGS.EXEC_CHECK`.
76
+
77
+ ### `compatibility/scenario.point_and_click/vars.counters/`
78
+
79
+ Пакет: `@vnejs/compatibility.scenario.point_and_click-with-vars.counters`
80
+
81
+ В `init` регистрирует handler на `EXEC_REG` для модуля counters → `VARS_COUNTERS.EXEC_CHECK`.
82
+
83
+ ## Близкие плагины
84
+
85
+ ### plugins/core/
86
+
87
+ - [logs.md](../core/logs.md) — `LOGS`: emitLog, `CONST.LOGS.FILTER_FROM_RESULT_OPTIONS`
88
+ - [scenario.md](../core/scenario.md) — `SCENARIO`: emitNext, EVENTS.LINE_EXEC_REG, EVENTS.LINES_GET
89
+ - [state.md](../core/state.md) — `STATE`: EVENTS.SET, EVENTS.CLEAR
90
+ - [vendors.md](../core/vendors.md) — `VENDORS`: emitClone
91
+
92
+ ### Остальные
93
+
94
+ - [scenario/choose.md](./choose.md) — тот же паттерн `repeat` / `SKIP` / `SHOW` / `HIDE` / `STATE_UPDATE` для текстового выбора
95
+ - [views.scenario/point_and_click.md](../views.scenario/point_and_click.md) — `POINT_AND_CLICK_VIEW`: UI hotspots
@@ -0,0 +1,97 @@
1
+ # plugins/scenario/qte/
2
+
3
+ Пакет: `@vnejs/plugins.scenario.qte` · namespace: `QTE`
4
+
5
+ Логика Quick Time Event: сценарная команда `% qte <id>`, сдвиг `curLine` по success/fail и режим embedded (`skipScenario`) для вызова из других плагинов. UI не рендерит — за отображение отвечает [views.scenario/qte.md](../views.scenario/qte.md).
6
+
7
+ Описание QTE задаётся в игре через `PARAMS.QTE.ITEMS` (контракт `@vnejs/contracts.scenario.qte`).
8
+
9
+ ## События
10
+
11
+ | Ключ | Строка | Смысл |
12
+ |------|--------|-------|
13
+ | `EMIT` | `vne:qte:emit` | Запустить QTE: принять `id` / `item` / `skipScenario`, эмитить `OPENED`. |
14
+ | `RESULT` | `vne:qte:result` | Результат раунда (`success`). Эмитит `CLOSED`; без `skipScenario` — сдвиг сценария и `emitNext`. |
15
+ | `OPENED` | `vne:qte:opened` | QTE активен. Слушает view-плагин. |
16
+ | `CLOSED` | `vne:qte:closed` | QTE закрыт. Слушает view-плагин. |
17
+
18
+ ## Константы
19
+
20
+ - **`LINE_KEYWORDS.QTE_FALLBACK`** — `"qte-fallback"`: keyword на `% choose.option` для ветки fail QTE (через compatibility choose↔qte).
21
+
22
+ ## Параметры
23
+
24
+ | Ключ | Тип | Смысл |
25
+ |------|-----|-------|
26
+ | `ITEMS` | `Record<string, QteItem>` | Справочник QTE по id. Пустой объект по умолчанию. |
27
+
28
+ `QteItem`:
29
+
30
+ | Поле | Тип | Смысл |
31
+ |------|-----|-------|
32
+ | `start` | `number` | Начало зоны успеха, % от длительности (0–100). |
33
+ | `size` | `number` | Ширина зоны успеха, %. |
34
+ | `duration` | `number` | Длительность фазы `active`, мс. |
35
+
36
+ View сам переводит проценты в геометрию (градусы, пиксели и т.п.).
37
+
38
+ ## Настройки
39
+
40
+ Нет.
41
+
42
+ ## Модули
43
+
44
+ | Модуль | Зона ответственности |
45
+ |--------|----------------------|
46
+ | `qte` | EMIT / RESULT / OPENED / CLOSED; `applyResult` (success → `curLine + 1`, fail → пропуск indented-блока); флаг `skipScenario`. |
47
+ | `qte.scenario` | Регистрация `% qte` в SCENARIO; lookup `ITEMS`; при отсутствии id/item — `RESULT { success: false }`. |
48
+
49
+ ## Сценарий
50
+
51
+ ```vne
52
+ % qte door_lock
53
+ "Успех — вход в indented-блок"
54
+ "Провал или после блока — следующая строка"
55
+ ```
56
+
57
+ 1. `% qte <id>` → `EMIT` с `item` из `ITEMS[id]`.
58
+ 2. **Success** → `curLine` на первую строку внутри блока.
59
+ 3. **Fail** (или неизвестный id) → пропуск indented-блока, дальше по сценарию.
60
+ 4. После `RESULT` (без `skipScenario`) — `emitNext`.
61
+
62
+ ## Embedded (`skipScenario`)
63
+
64
+ При `EMIT` с `skipScenario: true` модуль `qte` на `RESULT` **не** меняет `curLine` и **не** вызывает `emitNext` — только `CLOSED`. Используется compatibility choose↔qte, чтобы ветвление осталось у choose.
65
+
66
+ ## Compatibility
67
+
68
+ ### `compatibility/scenario.choose/scenario.qte/`
69
+
70
+ Пакет: `@vnejs/compatibility.scenario.choose-with-scenario.qte`
71
+
72
+ На `CHOOSE.OPTION_REPLACE`: если у опции `qte: <id>`, запускает QTE с `skipScenario: true`. Success — тот же индекс опции; fail — индекс опции, у которой в `keywords` есть `LINE_KEYWORDS.QTE_FALLBACK` (`qte-fallback`; если нет — исходный индекс + `emitLog`).
73
+
74
+ Расширяет тип `ChooseOption` полем `qte?: string`. Keyword `| qte-fallback` попадает в `ChooseOption.keywords` через choose.
75
+
76
+ ```vne
77
+ % choose
78
+ % choose.option "С QTE"
79
+ qte: easy
80
+ "Успех — ветка этой опции"
81
+ % choose.option "Fallback" | qte-fallback
82
+ "Прямой выбор или fail QTE"
83
+ ```
84
+
85
+ Подключается в `bundles/vn.base`.
86
+
87
+ ## Близкие плагины
88
+
89
+ ### plugins/core/
90
+
91
+ - [logs.md](../core/logs.md) — `LOGS`: emitLog
92
+ - [scenario.md](../core/scenario.md) — `SCENARIO`: emitNext, EVENTS.LINE_EXEC_REG, EVENTS.LINES_GET
93
+
94
+ ### Остальные
95
+
96
+ - [views.scenario/qte.md](../views.scenario/qte.md) — `QTE_VIEW`: UI раунда (слушает OPENED / CLOSED)
97
+ - [choose.md](./choose.md) — `CHOOSE`: OPTION_REPLACE; связка через compatibility выше
@@ -0,0 +1,38 @@
1
+ # plugins/scenario/random/
2
+
3
+ Пакет: `@vnejs/plugins.scenario.random` · namespace: `RANDOM`
4
+
5
+ Случайно выбирает одну из вложенных опций `% random.option` блока `% random` и переходит к ней.
6
+
7
+ ## События
8
+
9
+ Нет.
10
+
11
+ ## Константы
12
+
13
+ Нет.
14
+
15
+ ## Параметры
16
+
17
+ Нет.
18
+
19
+ ## Настройки
20
+
21
+ Нет.
22
+
23
+ ## Модули
24
+
25
+ | Модуль | Зона ответственности |
26
+ |--------|----------------------|
27
+ | `random` | Модуль `random`. |
28
+
29
+ ## Близкие плагины
30
+
31
+ ### plugins/core/
32
+
33
+ - [logs.md](../core/logs.md) — `LOGS`: emitLog
34
+ - [scenario.md](../core/scenario.md) — `SCENARIO`: emitNext, EVENTS.LINE_EXEC_REG, EVENTS.LINES_GET
35
+
36
+ ### Остальные
37
+
38
+ — нет
@@ -0,0 +1,39 @@
1
+ # plugins/settings/filter/
2
+
3
+ Пакет: `@vnejs/plugins.settings.filter` · namespace: `FILTER`
4
+
5
+ Применяет к экрану CSS-фильтры из пресетов, выбранных в настройках.
6
+
7
+ ## События
8
+
9
+ Нет.
10
+
11
+ ## Константы
12
+
13
+ Нет.
14
+
15
+ ## Параметры
16
+
17
+ Нет.
18
+
19
+ ## Настройки
20
+
21
+ | Ключ | Тип | Смысл |
22
+ |------|-----|-------|
23
+ | `VALUE` (`vne:filter:value`) | `string` | Настройка `vne:filter:value` в `shared.settings`. |
24
+
25
+ ## Модули
26
+
27
+ | Модуль | Зона ответственности |
28
+ |--------|----------------------|
29
+ | `filter` | Модуль `filter`. |
30
+
31
+ ## Близкие плагины
32
+
33
+ ### plugins/core/
34
+
35
+ - [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.CHANGED, EVENTS.INIT
36
+
37
+ ### Остальные
38
+
39
+ — нет
@@ -0,0 +1,41 @@
1
+ # plugins/settings/potato/
2
+
3
+ Пакет: `@vnejs/plugins.settings.potato` · namespace: `POTATO`
4
+
5
+ Режим низкой нагрузки: отключает анимации, переходы и таймауты медиа.
6
+
7
+ ## События
8
+
9
+ | Ключ | Строка | Смысл |
10
+ |------|--------|-------|
11
+ | `EMIT` | `vne:potato:emit` | Инициировать действие или цикл. |
12
+
13
+ ## Константы
14
+
15
+ Нет.
16
+
17
+ ## Параметры
18
+
19
+ Нет.
20
+
21
+ ## Настройки
22
+
23
+ | Ключ | Тип | Смысл |
24
+ |------|-----|-------|
25
+ | `ENABLED` (`vne:potato:enabled`) | `boolean` | Включить или выключить функцию. |
26
+
27
+ ## Модули
28
+
29
+ | Модуль | Зона ответственности |
30
+ |--------|----------------------|
31
+ | `potato` | Обрабатывает EMIT, CHANGED. |
32
+
33
+ ## Близкие плагины
34
+
35
+ ### plugins/core/
36
+
37
+ - [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.CHANGED, EVENTS.INIT
38
+
39
+ ### Остальные
40
+
41
+ — нет
@@ -0,0 +1,41 @@
1
+ # plugins/settings/ratio/
2
+
3
+ Пакет: `@vnejs/plugins.settings.ratio` · namespace: `RATIO`
4
+
5
+ Ограничивает размер приложения соотношением сторон 16:9.
6
+
7
+ ## События
8
+
9
+ Нет.
10
+
11
+ ## Константы
12
+
13
+ Нет.
14
+
15
+ ## Параметры
16
+
17
+ Нет.
18
+
19
+ ## Настройки
20
+
21
+ | Ключ | Тип | Смысл |
22
+ |------|-----|-------|
23
+ | `VALUE` (`vne:ratio:value`) | `boolean` | Настройка `vne:ratio:value` в `shared.settings`. |
24
+
25
+ ## Модули
26
+
27
+ | Модуль | Зона ответственности |
28
+ |--------|----------------------|
29
+ | `ratio` | Обрабатывает CHANGED, STARTED. |
30
+
31
+ ## Близкие плагины
32
+
33
+ ### plugins/core/
34
+
35
+ - [logs.md](../core/logs.md) — `LOGS`: emitLog
36
+ - [settings.md](../core/settings.md) — `SETTINGS`: EVENTS.CHANGED, EVENTS.INIT
37
+ - [system.md](../core/system.md) — `SYSTEM`: EVENTS.STARTED, CONST.DOM_IDS.APP
38
+
39
+ ### Остальные
40
+
41
+ — нет