@jjlmoya/utils-tabletop 1.3.0 → 1.5.0

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 (171) hide show
  1. package/package.json +1 -1
  2. package/src/category/TabletopCategorySEO.astro +2 -7
  3. package/src/category/i18n/en.ts +4 -4
  4. package/src/category/i18n/ru.ts +2 -2
  5. package/src/category/i18n/zh.ts +8 -8
  6. package/src/category/index.ts +2 -1
  7. package/src/entries.ts +14 -1
  8. package/src/index.ts +1 -0
  9. package/src/pages/[locale]/[slug].astro +7 -6
  10. package/src/tests/locale_completeness.test.ts +1 -1
  11. package/src/tests/no_em_dash.test.ts +47 -0
  12. package/src/tests/seo_length.test.ts +1 -0
  13. package/src/tests/title_quality.test.ts +1 -1
  14. package/src/tests/tool_validation.test.ts +1 -1
  15. package/src/tool/board-game-timer/modules/ColorHelper.ts +2 -2
  16. package/src/tool/board-game-timer/modules/DuelViewManager.ts +4 -4
  17. package/src/tool/board-game-timer/modules/GameRunner.ts +1 -1
  18. package/src/tool/board-game-timer/modules/MultiplayerViewManager.ts +2 -2
  19. package/src/tool/board-game-timer/modules/SetupPanelManager.ts +1 -1
  20. package/src/tool/board-game-timer/modules/TimerEngine.ts +1 -1
  21. package/src/tool/board-game-timer/types.ts +1 -1
  22. package/src/tool/decision-wheel/audio.ts +78 -0
  23. package/src/tool/decision-wheel/bibliography.astro +16 -0
  24. package/src/tool/decision-wheel/bibliography.ts +8 -0
  25. package/src/tool/decision-wheel/client.ts +226 -0
  26. package/src/tool/decision-wheel/component.astro +48 -0
  27. package/src/tool/decision-wheel/components/SegmentEditor.astro +22 -0
  28. package/src/tool/decision-wheel/components/SpinHistory.astro +17 -0
  29. package/src/tool/decision-wheel/components/SpinResult.astro +13 -0
  30. package/src/tool/decision-wheel/components/WheelCanvas.astro +23 -0
  31. package/src/tool/decision-wheel/decision-wheel.css +632 -0
  32. package/src/tool/decision-wheel/drawing.ts +144 -0
  33. package/src/tool/decision-wheel/entry.ts +48 -0
  34. package/src/tool/decision-wheel/i18n/de.ts +97 -0
  35. package/src/tool/decision-wheel/i18n/en.ts +251 -0
  36. package/src/tool/decision-wheel/i18n/es.ts +93 -0
  37. package/src/tool/decision-wheel/i18n/fr.ts +93 -0
  38. package/src/tool/decision-wheel/i18n/id.ts +93 -0
  39. package/src/tool/decision-wheel/i18n/it.ts +93 -0
  40. package/src/tool/decision-wheel/i18n/ja.ts +93 -0
  41. package/src/tool/decision-wheel/i18n/ko.ts +93 -0
  42. package/src/tool/decision-wheel/i18n/nl.ts +93 -0
  43. package/src/tool/decision-wheel/i18n/pl.ts +93 -0
  44. package/src/tool/decision-wheel/i18n/pt.ts +93 -0
  45. package/src/tool/decision-wheel/i18n/ru.ts +75 -0
  46. package/src/tool/decision-wheel/i18n/sv.ts +93 -0
  47. package/src/tool/decision-wheel/i18n/tr.ts +93 -0
  48. package/src/tool/decision-wheel/i18n/zh.ts +93 -0
  49. package/src/tool/decision-wheel/index.ts +9 -0
  50. package/src/tool/decision-wheel/logic.test.ts +163 -0
  51. package/src/tool/decision-wheel/logic.ts +145 -0
  52. package/src/tool/decision-wheel/seo.astro +16 -0
  53. package/src/tool/decision-wheel/types.ts +14 -0
  54. package/src/tool/decision-wheel/ui.ts +121 -0
  55. package/src/tool/dice-roller-simulator/client.ts +2 -2
  56. package/src/tool/dice-roller-simulator/i18n/ru.ts +8 -8
  57. package/src/tool/dice-roller-simulator/modules/history.ts +1 -1
  58. package/src/tool/fantasy-runes-translator/bibliography.astro +16 -0
  59. package/src/tool/fantasy-runes-translator/bibliography.ts +16 -0
  60. package/src/tool/fantasy-runes-translator/client.ts +205 -0
  61. package/src/tool/fantasy-runes-translator/component.astro +95 -0
  62. package/src/tool/fantasy-runes-translator/entry.ts +56 -0
  63. package/src/tool/fantasy-runes-translator/fantasy-runes-translator.css +712 -0
  64. package/src/tool/fantasy-runes-translator/i18n/de.ts +139 -0
  65. package/src/tool/fantasy-runes-translator/i18n/en.ts +139 -0
  66. package/src/tool/fantasy-runes-translator/i18n/es.ts +139 -0
  67. package/src/tool/fantasy-runes-translator/i18n/fr.ts +139 -0
  68. package/src/tool/fantasy-runes-translator/i18n/id.ts +139 -0
  69. package/src/tool/fantasy-runes-translator/i18n/it.ts +139 -0
  70. package/src/tool/fantasy-runes-translator/i18n/ja.ts +139 -0
  71. package/src/tool/fantasy-runes-translator/i18n/ko.ts +139 -0
  72. package/src/tool/fantasy-runes-translator/i18n/nl.ts +139 -0
  73. package/src/tool/fantasy-runes-translator/i18n/pl.ts +139 -0
  74. package/src/tool/fantasy-runes-translator/i18n/pt.ts +139 -0
  75. package/src/tool/fantasy-runes-translator/i18n/ru.ts +139 -0
  76. package/src/tool/fantasy-runes-translator/i18n/sv.ts +139 -0
  77. package/src/tool/fantasy-runes-translator/i18n/tr.ts +139 -0
  78. package/src/tool/fantasy-runes-translator/i18n/zh.ts +139 -0
  79. package/src/tool/fantasy-runes-translator/index.ts +9 -0
  80. package/src/tool/fantasy-runes-translator/logic.ts +174 -0
  81. package/src/tool/fantasy-runes-translator/seo.astro +16 -0
  82. package/src/tool/fantasy-runes-translator/types.ts +26 -0
  83. package/src/tool/first-player-selector/bibliography.astro +16 -0
  84. package/src/tool/first-player-selector/bibliography.ts +12 -0
  85. package/src/tool/first-player-selector/client.ts +197 -0
  86. package/src/tool/first-player-selector/component.astro +77 -0
  87. package/src/tool/first-player-selector/entry.ts +42 -0
  88. package/src/tool/first-player-selector/first-player-selector.css +303 -0
  89. package/src/tool/first-player-selector/i18n/de.ts +226 -0
  90. package/src/tool/first-player-selector/i18n/en.ts +226 -0
  91. package/src/tool/first-player-selector/i18n/es.ts +226 -0
  92. package/src/tool/first-player-selector/i18n/fr.ts +227 -0
  93. package/src/tool/first-player-selector/i18n/id.ts +226 -0
  94. package/src/tool/first-player-selector/i18n/it.ts +227 -0
  95. package/src/tool/first-player-selector/i18n/ja.ts +227 -0
  96. package/src/tool/first-player-selector/i18n/ko.ts +227 -0
  97. package/src/tool/first-player-selector/i18n/nl.ts +226 -0
  98. package/src/tool/first-player-selector/i18n/pl.ts +227 -0
  99. package/src/tool/first-player-selector/i18n/pt.ts +226 -0
  100. package/src/tool/first-player-selector/i18n/ru.ts +227 -0
  101. package/src/tool/first-player-selector/i18n/sv.ts +226 -0
  102. package/src/tool/first-player-selector/i18n/tr.ts +226 -0
  103. package/src/tool/first-player-selector/i18n/zh.ts +227 -0
  104. package/src/tool/first-player-selector/index.ts +9 -0
  105. package/src/tool/first-player-selector/modules/AnimationEffects.ts +256 -0
  106. package/src/tool/first-player-selector/modules/SelectionEngine.ts +249 -0
  107. package/src/tool/first-player-selector/modules/SoundEffects.ts +87 -0
  108. package/src/tool/first-player-selector/modules/TouchTracker.ts +148 -0
  109. package/src/tool/first-player-selector/seo.astro +16 -0
  110. package/src/tool/first-player-selector/types.ts +21 -0
  111. package/src/tool/rpg-initiative-tracker/bibliography.astro +16 -0
  112. package/src/tool/rpg-initiative-tracker/bibliography.ts +12 -0
  113. package/src/tool/rpg-initiative-tracker/client.ts +201 -0
  114. package/src/tool/rpg-initiative-tracker/component.astro +23 -0
  115. package/src/tool/rpg-initiative-tracker/components/AddForm.astro +49 -0
  116. package/src/tool/rpg-initiative-tracker/components/CombatantList.astro +16 -0
  117. package/src/tool/rpg-initiative-tracker/components/TurnControls.astro +28 -0
  118. package/src/tool/rpg-initiative-tracker/entry.ts +50 -0
  119. package/src/tool/rpg-initiative-tracker/i18n/de.ts +266 -0
  120. package/src/tool/rpg-initiative-tracker/i18n/en.ts +263 -0
  121. package/src/tool/rpg-initiative-tracker/i18n/es.ts +264 -0
  122. package/src/tool/rpg-initiative-tracker/i18n/fr.ts +263 -0
  123. package/src/tool/rpg-initiative-tracker/i18n/id.ts +263 -0
  124. package/src/tool/rpg-initiative-tracker/i18n/it.ts +263 -0
  125. package/src/tool/rpg-initiative-tracker/i18n/ja.ts +263 -0
  126. package/src/tool/rpg-initiative-tracker/i18n/ko.ts +263 -0
  127. package/src/tool/rpg-initiative-tracker/i18n/nl.ts +263 -0
  128. package/src/tool/rpg-initiative-tracker/i18n/pl.ts +264 -0
  129. package/src/tool/rpg-initiative-tracker/i18n/pt.ts +263 -0
  130. package/src/tool/rpg-initiative-tracker/i18n/ru.ts +264 -0
  131. package/src/tool/rpg-initiative-tracker/i18n/sv.ts +263 -0
  132. package/src/tool/rpg-initiative-tracker/i18n/tr.ts +263 -0
  133. package/src/tool/rpg-initiative-tracker/i18n/zh.ts +263 -0
  134. package/src/tool/rpg-initiative-tracker/index.ts +9 -0
  135. package/src/tool/rpg-initiative-tracker/logic.test.ts +121 -0
  136. package/src/tool/rpg-initiative-tracker/logic.ts +122 -0
  137. package/src/tool/rpg-initiative-tracker/rpg-initiative-tracker.css +617 -0
  138. package/src/tool/rpg-initiative-tracker/seo.astro +16 -0
  139. package/src/tool/rpg-initiative-tracker/types.ts +15 -0
  140. package/src/tool/score-tracker/bibliography.astro +16 -0
  141. package/src/tool/score-tracker/bibliography.ts +12 -0
  142. package/src/tool/score-tracker/client.ts +248 -0
  143. package/src/tool/score-tracker/component.astro +34 -0
  144. package/src/tool/score-tracker/components/Leaderboard.astro +19 -0
  145. package/src/tool/score-tracker/components/PlayerSetup.astro +32 -0
  146. package/src/tool/score-tracker/components/RoundScoring.astro +22 -0
  147. package/src/tool/score-tracker/components/ScoreHistory.astro +25 -0
  148. package/src/tool/score-tracker/entry.ts +57 -0
  149. package/src/tool/score-tracker/i18n/de.ts +278 -0
  150. package/src/tool/score-tracker/i18n/en.ts +278 -0
  151. package/src/tool/score-tracker/i18n/es.ts +251 -0
  152. package/src/tool/score-tracker/i18n/fr.ts +278 -0
  153. package/src/tool/score-tracker/i18n/id.ts +278 -0
  154. package/src/tool/score-tracker/i18n/it.ts +278 -0
  155. package/src/tool/score-tracker/i18n/ja.ts +278 -0
  156. package/src/tool/score-tracker/i18n/ko.ts +278 -0
  157. package/src/tool/score-tracker/i18n/nl.ts +278 -0
  158. package/src/tool/score-tracker/i18n/pl.ts +278 -0
  159. package/src/tool/score-tracker/i18n/pt.ts +278 -0
  160. package/src/tool/score-tracker/i18n/ru.ts +278 -0
  161. package/src/tool/score-tracker/i18n/sv.ts +278 -0
  162. package/src/tool/score-tracker/i18n/tr.ts +278 -0
  163. package/src/tool/score-tracker/i18n/zh.ts +278 -0
  164. package/src/tool/score-tracker/index.ts +9 -0
  165. package/src/tool/score-tracker/logic.test.ts +83 -0
  166. package/src/tool/score-tracker/logic.ts +122 -0
  167. package/src/tool/score-tracker/score-tracker.css +1029 -0
  168. package/src/tool/score-tracker/seo.astro +16 -0
  169. package/src/tool/score-tracker/types.ts +17 -0
  170. package/src/tools.ts +10 -0
  171. package/src/types.ts +1 -2
@@ -0,0 +1,264 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { InitiativeTrackerUI } from '../entry';
4
+
5
+ const ui: InitiativeTrackerUI = {
6
+ title: 'Отслеживание Инициативы',
7
+ addCombatant: 'Добавить Участника',
8
+ removeCombatant: 'Удалить',
9
+ playerLabel: 'Игрок',
10
+ npcLabel: 'NPC',
11
+ initiativeLabel: 'Инициатива',
12
+ modifierLabel: 'Модификатор',
13
+ namePlaceholder: 'Имя персонажа',
14
+ initiativePlaceholder: 'Инициатива',
15
+ modifierPlaceholder: 'Модификатор',
16
+ addButton: 'Добавить',
17
+ startCombat: 'Начать Бой',
18
+ endCombat: '� - авершить Бой',
19
+ nextTurn: 'Следующий Ход',
20
+ prevTurn: 'Предыдущий Ход',
21
+ roundLabel: 'Раунд',
22
+ turnLabel: 'Ход',
23
+ noCombatants: 'Участников пока нет. Добавьте персонажей, чтобы начать.',
24
+ statusInput: 'Статус',
25
+ combatStarted: 'Бой Начат!',
26
+ combatEnded: 'Бой � - авершён',
27
+ yourTurn: 'Ход',
28
+ };
29
+
30
+ export const content: ToolLocaleContent<InitiativeTrackerUI> = {
31
+ slug: 'otslezhivanie-initsiativy',
32
+ title: 'Отслеживание Инициативы RPG: Порядок Ходов и Менеджер Инициативы',
33
+ description: 'Отслеживайте порядок инициативы для любой настольной RPG. Добавляйте участников, совершайте броски инициативы, управляйте эффектами состояний и перемещайтесь по ходам в бою.',
34
+ ui,
35
+ seo: [
36
+ { type: 'title', text: 'Как Работает Инициатива в D&D и Других Настольных RPG', level: 2 },
37
+ { type: 'paragraph', html: 'Инициатива определяет порядок действий в бою. Каждый участник совершает проверку Ловкости в начале сражения, и порядок ходов идёт от высшего к низшему. Цифровой трекер инициативы автоматизирует сортировку, подсвечивает активного участника, отслеживает текущие эффекты состояний и информирует весь стол о том, чей ход следующий. Это особенно полезно для Мастеров Подземелий, ведущих сложные встречи с множеством типов врагов и персонажей игроков.' },
38
+ {
39
+ type: 'stats',
40
+ items: [
41
+ { value: 'Безлимит', label: 'Поддержка Участников' },
42
+ { value: 'Автосортировка', label: 'По Броску Инициативы' },
43
+ { value: 'В Реальном Времени', label: 'Отслеживание Ходов' },
44
+ ],
45
+ columns: 3,
46
+ },
47
+ { type: 'title', text: 'Стандартные Правила Инициативы для D&D 5e', level: 2 },
48
+ { type: 'paragraph', html: 'В D&D 5-й редакции каждый участник совершает проверку Ловкости в начале боя. Игроки бросают индивидуально. Мастер Подземелий бросает один раз для каждой группы одинаковых монстров. Порядок ходов идёт от высшего к низшему, затем возвращается в начало для следующего раунда. Ничьи разрешаются по значению Ловкости или решению МП. Цифровой трекер обрабатывает всё это автоматически и показывает полный порядок ходов с первого взгляда.' },
49
+ {
50
+ type: 'table',
51
+ headers: ['Функция', 'Ручное Отслеживание', 'Цифровой Трекер'],
52
+ rows: [
53
+ ['Сортировка', 'Переписывание списка при изменении инициативы', 'Мгновенная автоматическая пересортировка'],
54
+ ['Текущий Ход', 'Нужно отслеживать устно или с помощью жетона', 'Подсвечивается зелёным свечением'],
55
+ ['Эффекты Состояний', 'Отдельный блокнот или кубик рядом с миниатюрой', 'Клик для включения на каждом участнике'],
56
+ ['Подсчёт Раундов', '� - апоминать или записывать на черновике', 'Отображается автоматически'],
57
+ ['Добавление в Бою', 'Стирать и переписывать порядок', 'Вставляется в правильную позицию'],
58
+ ],
59
+ },
60
+ {
61
+ type: 'tip',
62
+ title: 'Советы по Ведению Инициативы за Столом',
63
+ html: 'Бросайте инициативу для всех монстров до начала сессии, чтобы сэкономить время во время боя. Добавляйте распространённые эффекты состояний, такие как Оглушение или Отравление, участнику сразу после их применения. Это предотвращает забывание о состоянии, когда подходит ход поражённого персонажа. Используйте кнопку Предыдущий Ход, чтобы просмотреть произошедшее, если нужно проверить решение из более ранней части раунда.',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: 'Эффекты Состояний, Часто Используемые в Бою',
68
+ level: 3,
69
+ },
70
+ { type: 'paragraph', html: 'Отслеживание состояний во время боя - одна из самых часто упускаемых задач. Эффект состояния может полностью изменить эффективность персонажа, а забыв удалить его, можно нарушить баланс встречи. Трекер инициативы позволяет применять и удалять состояния одним кликом, чтобы они оставались видимыми рядом с именем участника.' },
71
+ {
72
+ type: 'proscons',
73
+ title: 'Обработка Эффектов Состояний: Цифровая vs Ручная',
74
+ items: [
75
+ {
76
+ pro: 'Состояния видны прямо рядом с именем персонажа, поэтому никто не забывает об активном эффекте.',
77
+ con: 'Требуется помнить о включении и выключении статусов по мере их применения и удаления.',
78
+ },
79
+ {
80
+ pro: 'Несколько статусов могут быть активны на одном участнике, и все они отображаются вместе.',
81
+ con: 'Трекер не применяет эффекты правил автоматически - МП всё ещё применяет их вручную.',
82
+ },
83
+ {
84
+ pro: 'Статусы можно добавлять в середине боя без остановки для записи на листе персонажа.',
85
+ con: 'По умолчанию доступны только предопределённые теги состояний.',
86
+ },
87
+ ],
88
+ },
89
+ {
90
+ type: 'title',
91
+ text: 'Альтернативные Системы Инициативы',
92
+ level: 3,
93
+ },
94
+ {
95
+ type: 'comparative',
96
+ items: [
97
+ {
98
+ title: 'Стандартная Инициатива',
99
+ description: 'Каждый участник бросает один раз в начале. Тот же порядок повторяется каждый раунд. Просто и предсказуемо, но порядок фиксирован после первого броска. Хорошо работает для большинства групп и размеров встреч.',
100
+ icon: 'mdi:swap-vertical',
101
+ highlight: true,
102
+ points: ['Легко учить и объяснять', 'Фиксированный порядок ходов каждый раунд', 'Работает для групп любого размера'],
103
+ },
104
+ {
105
+ title: 'Инициатива Сторон',
106
+ description: 'Все персонажи игроков действуют вместе, затем все враги действуют вместе. Распространено в старых редакциях и OSR-играх. Ускоряет бой, сокращая индивидуальное отслеживание, но уменьшает тактическую глубину.',
107
+ icon: 'mdi:account-group',
108
+ highlight: false,
109
+ points: ['Самое быстрое разрешение боя', 'Поощряет координацию группы', 'Меньше разнообразия индивидуальных ходов'],
110
+ },
111
+ {
112
+ title: 'Вариант Фактора Скорости',
113
+ description: 'Каждый раунд участники сначала объявляют действия, затем бросают инициативу, модифицированную выбранным действием. Используется в опциональных наборах правил. Создаёт непредсказуемый порядок ходов, но добавляет глубину принятию решений.',
114
+ icon: 'mdi:run-fast',
115
+ highlight: false,
116
+ points: ['Разный порядок каждый раунд', 'Выбор действия влияет на время', 'Больше тактических решений за ход'],
117
+ },
118
+ ],
119
+ columns: 3,
120
+ },
121
+ {
122
+ type: 'title',
123
+ text: 'Глоссарий Боевого Трекера',
124
+ level: 3,
125
+ },
126
+ {
127
+ type: 'glossary',
128
+ items: [
129
+ {
130
+ term: 'Инициатива',
131
+ definition: 'Проверка Ловкости, совершаемая в начале боя для определения последовательности ходов. Каждый участник бросает и действует в порядке убывания.',
132
+ },
133
+ {
134
+ term: 'Раунд',
135
+ definition: 'Полный цикл, в котором каждый участник делает один ход. После действия последнего участника раунд заканчивается, и начинается новый раунд с начала порядка.',
136
+ },
137
+ {
138
+ term: 'Эффект Состояния',
139
+ definition: 'Временное условие, изменяющее возможности персонажа. Примеры включают Оглушение (не может действовать), Отравление (помеха на броски) и Ослепление (атаки с помехой).',
140
+ },
141
+ {
142
+ term: 'NPC',
143
+ definition: 'Неигровой персонаж, управляемый Мастером Подземелий. В отслеживании инициативы NPC обычно являются врагами или нейтральными существами во встрече.',
144
+ },
145
+ {
146
+ term: 'PC',
147
+ definition: 'Персонаж игрока, управляемый одним из игроков за столом. PC отличаются от NPC в трекере, чтобы помочь МП идентифицировать дружественные цели.',
148
+ },
149
+ ],
150
+ },
151
+ {
152
+ type: 'diagnostic',
153
+ variant: 'info',
154
+ title: 'Когда Перебрасывать Инициативу Каждый Раунд',
155
+ icon: 'mdi:information-outline',
156
+ badge: 'СОВЕТ МП',
157
+ html: 'Некоторые МП предпочитают перебрасывать инициативу каждый раунд для непредсказуемости, в то время как большинство сохраняют тот же порядок для простоты. Если новый участник присоединяется в середине боя, бросьте его инициативу и вставьте его в текущую позицию. Трекер обрабатывает это автоматически. Для встреч с боссами рассмотрите возможность дать злодею фиксированную инициативу на определённом значении, чтобы бой казался более структурированным.',
158
+ },
159
+ ],
160
+ faq: [
161
+ {
162
+ question: 'Как добавить участников в порядок инициативы?',
163
+ answer: 'Введите имя персонажа, бросок инициативы и модификатор инициативы, затем нажмите Добавить. Переключайтесь между типами Игрок и NPC, чтобы визуально отличать членов партии от врагов в списке.',
164
+ },
165
+ {
166
+ question: 'Что произойдёт, когда я нажму Начать Бой?',
167
+ answer: 'Все участники сортируются по инициативе от высшего к низшему. Порядок ходов начинается сверху, счётчик раундов стартует с 1, а активный участник подсвечивается зелёным свечением.',
168
+ },
169
+ {
170
+ question: 'Как отслеживать эффекты состояний во время боя?',
171
+ answer: 'Нажмите на тег статуса (Оглушение, Отравление, Ослепление и т.д.), чтобы включить или выключить его для выбранного участника. Активные статусы появляются рядом с именем персонажа. Это напоминает всем о текущих эффектах, когда подходит ход этого участника.',
172
+ },
173
+ {
174
+ question: 'Сохраняются ли мои боевые данные после обновления страницы?',
175
+ answer: 'Да. Трекер инициативы сохраняет состояние боя в локальном хранилище вашего браузера. Ваши участники, порядок ходов и эффекты состояний остаются после перезагрузки страницы. Данные очищаются при нажатии � - авершить Бой.',
176
+ },
177
+ {
178
+ question: 'Могу ли я вернуться к предыдущему ходу?',
179
+ answer: 'Да. Кнопка Предыдущий Ход позволяет перемещаться назад по порядку ходов. Это полезно для просмотра того, что произошло ранее в раунде, или для исправления ошибки.',
180
+ },
181
+ {
182
+ question: 'Могу ли я добавлять или удалять участников во время боя?',
183
+ answer: 'Да. Новые участники могут быть добавлены в любое время и автоматически вставляются в правильную позицию на основе их броска инициативы. Существующие участники могут быть удалены, если они покидают встречу.',
184
+ },
185
+ {
186
+ question: 'Работает ли это с любой RPG-системой?',
187
+ answer: 'Да. Трекер работает с любой настольной RPG, использующей порядок ходов на основе инициативы. Введите любые значения инициативы, которые использует ваша система, будь то бросок к20 плюс Лв для D&D или другой механик для других игр.',
188
+ },
189
+ ],
190
+ bibliography,
191
+ howTo: [
192
+ {
193
+ name: 'Добавьте Участников Перед Боем',
194
+ text: 'Введите имя каждого персонажа, его бросок инициативы и модификатор. Отметьте их как Игрок или NPC. Добавьте столько участников, сколько требует ваша встреча.',
195
+ },
196
+ {
197
+ name: 'Начните Бой, чтобы � - афиксировать Порядок',
198
+ text: 'Нажмите Начать Бой, чтобы отсортировать всех по инициативе и начать отслеживание ходов. Первый участник в порядке подсвечивается.',
199
+ },
200
+ {
201
+ name: 'Перемещайтесь по Ходам и Отслеживайте Состояния',
202
+ text: 'Используйте Следующий Ход и Предыдущий Ход для перемещения по порядку. Применяйте эффекты состояний, нажимая на теги статусов, чтобы отслеживать условия во время боя.',
203
+ },
204
+ {
205
+ name: '� - авершите Бой После Окончания',
206
+ text: 'Нажмите � - авершить Бой, чтобы остановить отслеживание ходов. Это очищает активное состояние и сбрасывает счётчик раундов, сохраняя список участников для следующей встречи.',
207
+ },
208
+ ],
209
+ schemas: [
210
+ {
211
+ '@context': 'https://schema.org',
212
+ '@type': 'SoftwareApplication',
213
+ 'name': 'Отслеживание Инициативы RPG',
214
+ 'operatingSystem': 'Все',
215
+ 'applicationCategory': 'UtilitiesApplication',
216
+ 'browserRequirements': 'Требуется HTML5. Требуется JavaScript.',
217
+ },
218
+ {
219
+ '@context': 'https://schema.org',
220
+ '@type': 'FAQPage',
221
+ 'mainEntity': [
222
+ {
223
+ '@type': 'Question',
224
+ 'name': 'Как добавить участников?',
225
+ 'acceptedAnswer': {
226
+ '@type': 'Answer',
227
+ 'text': 'Введите имя персонажа, бросок инициативы и модификатор инициативы, затем нажмите Добавить. Игроков и NPC можно переключать, чтобы помочь различать их в списке.',
228
+ },
229
+ },
230
+ {
231
+ '@type': 'Question',
232
+ 'name': 'Что произойдёт, когда я нажму Начать Бой?',
233
+ 'acceptedAnswer': {
234
+ '@type': 'Answer',
235
+ 'text': 'Все участники сортируются по инициативе (высшая первая). Порядок ходов начинается с первого участника, а счётчик раундов стартует с 1.',
236
+ },
237
+ },
238
+ ],
239
+ },
240
+ {
241
+ '@context': 'https://schema.org',
242
+ '@type': 'HowTo',
243
+ 'name': 'Как Использовать Трекер Инициативы',
244
+ 'step': [
245
+ {
246
+ '@type': 'HowToStep',
247
+ 'name': 'Добавьте Участников',
248
+ 'text': 'Введите данные персонажа, включая имя, бросок инициативы и модификатор. Переключайтесь между типами Игрок и NPC перед добавлением.',
249
+ },
250
+ {
251
+ '@type': 'HowToStep',
252
+ 'name': 'Начните Бой',
253
+ 'text': 'Нажмите Начать Бой, чтобы отсортировать всех участников по инициативе и начать отслеживание порядка ходов.',
254
+ },
255
+ {
256
+ '@type': 'HowToStep',
257
+ 'name': 'Управляйте Ходами',
258
+ 'text': 'Используйте Следующий Ход и Предыдущий Ход для навигации по порядку ходов. Активный участник подсвечивается зелёным свечением.',
259
+ },
260
+ ],
261
+ },
262
+ ],
263
+ };
264
+
@@ -0,0 +1,263 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { InitiativeTrackerUI } from '../entry';
4
+
5
+ const ui: InitiativeTrackerUI = {
6
+ title: 'Initiativ Spårare',
7
+ addCombatant: 'Lägg till stridande',
8
+ removeCombatant: 'Ta bort',
9
+ playerLabel: 'Spelare',
10
+ npcLabel: 'IP',
11
+ initiativeLabel: 'Initiativ',
12
+ modifierLabel: 'Modifikation',
13
+ namePlaceholder: 'Karaktärsnamn',
14
+ initiativePlaceholder: 'Initiativ',
15
+ modifierPlaceholder: 'Modifikation',
16
+ addButton: 'Lägg till',
17
+ startCombat: 'Påbörja strid',
18
+ endCombat: 'Avsluta strid',
19
+ nextTurn: 'Nästa tur',
20
+ prevTurn: 'Föregående tur',
21
+ roundLabel: 'Runda',
22
+ turnLabel: 'Tur',
23
+ noCombatants: 'Inga stridande ännu. Lägg till karaktärer för att börja.',
24
+ statusInput: 'Status',
25
+ combatStarted: 'Strid påbörjad!',
26
+ combatEnded: 'Strid avslutad',
27
+ yourTurn: 'Tur',
28
+ };
29
+
30
+ export const content: ToolLocaleContent<InitiativeTrackerUI> = {
31
+ slug: 'initiativ-sparare',
32
+ title: 'RPG Initiativ Spårare: Stridsturordning & Initiativhanterare',
33
+ description: 'Håll koll på initiativordningen för alla bordsrollspel. Lägg till stridande, slå initiativ, hantera statuseffekter och navigera mellan turer i strid.',
34
+ ui,
35
+ seo: [
36
+ { type: 'title', text: 'Hur Initiativ Fungerar i D&D och Andra Bordsrollspel', level: 2 },
37
+ { type: 'paragraph', html: 'Initiativ bestämmer ordningen för handlingar i strid. Varje deltagare gör ett Smyghetsslag i början av en fight, och turordningen går från högst till lägst. En digital initiativspårare automatiserar sorteringen, markerar den aktiva stridande, håller koll på pågående statuseffekter och informerar hela bordet om vems tur det är härnäst. Detta är särskilt användbart för Dungeon Masters som leder komplexa möten med flera fiendetyper och spelarkaraktärer.' },
38
+ {
39
+ type: 'stats',
40
+ items: [
41
+ { value: 'Obegränsat', label: 'Stridande som stöds' },
42
+ { value: 'Auto-sortera', label: 'Efter initiativslag' },
43
+ { value: 'Realtid', label: 'Turspårning' },
44
+ ],
45
+ columns: 3,
46
+ },
47
+ { type: 'title', text: 'Standard Initiativregler för D&D 5e', level: 2 },
48
+ { type: 'paragraph', html: 'I D&D 5e gör varje deltagare ett Smyghetsslag i början av striden. Spelare slår individuellt. Dungeon Master slår en gång för varje grupp av identiska monster. Turordningen går från högst till lägst, sedan tillbaka till toppen för nästa runda. Lika slag avgörs av Smyghetsvärde, eller så bestämmer DM. En digital spårare hanterar allt detta automatiskt och visar hela turordningen i en blick.' },
49
+ {
50
+ type: 'table',
51
+ headers: ['Funktion', 'Manuell spårning', 'Digital spårare'],
52
+ rows: [
53
+ ['Sortering', 'Skriv om listan när initiativ ändras', 'Omedelbar automatisk omordning'],
54
+ ['Aktuell tur', 'Måste spåras muntligt eller med en markör', 'Markerad med grön glöd'],
55
+ ['Statuseffekter', 'Separat anteckningsblock eller tärning vid miniatyren', 'Klicka för att växla på varje stridande'],
56
+ ['Rundräkning', 'Håll räkningen i huvudet eller på kladdpapper', 'Visas automatiskt'],
57
+ ['Lägga till mitt i strid', 'Radera och skriv om ordningen', 'Infogas på rätt position'],
58
+ ],
59
+ },
60
+ {
61
+ type: 'tip',
62
+ title: 'Tips för att leda Initiativ vid bordet',
63
+ html: 'Slå initiativ för alla monster före sessionen för att spara tid under striden. Lägg till vanliga statuseffekter som Bedövad eller Förgiftad till en stridande så snart de appliceras. Detta förhindrar att man glömmer ett tillstånd när den påverkade karaktärens tur kommer. Använd knappen Föregående tur för att granska vad som hände om du behöver kontrollera ett beslut från tidigare i rundan.',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: 'Vanliga Statuseffekter i Strid',
68
+ level: 3,
69
+ },
70
+ { type: 'paragraph', html: 'Att hålla koll på tillstånd under strid är en av de mest förbisedda uppgifterna. En statuseffekt kan helt förändra en karaktärs effektivitet, och att glömma att ta bort den kan rubba balansen i ett möte. Initiativspåraren låter dig applicera och ta bort tillstånd med ett enda klick så att de förblir synliga bredvid den stridandes namn.' },
71
+ {
72
+ type: 'proscons',
73
+ title: 'Digital vs manuell hantering av statuseffekter',
74
+ items: [
75
+ {
76
+ pro: 'Tillstånd är synliga precis bredvid karaktärsnamnet så ingen glömmer en aktiv effekt.',
77
+ con: 'Kräver att man kommer ihåg att växla statusar på och av när de appliceras och tas bort.',
78
+ },
79
+ {
80
+ pro: 'Flera statusar kan vara aktiva på samma stridande och visas alla tillsammans.',
81
+ con: 'Spåraren tillämpar inte reglerna automatiskt; DM måste fortfarande applicera dem.',
82
+ },
83
+ {
84
+ pro: 'Statusar kan läggas till mitt i striden utan att pausa för att skriva på ett karaktärsblad.',
85
+ con: 'Endast fördefinierade statustaggar är tillgängliga som standard.',
86
+ },
87
+ ],
88
+ },
89
+ {
90
+ type: 'title',
91
+ text: 'Alternativa Initiativsystem',
92
+ level: 3,
93
+ },
94
+ {
95
+ type: 'comparative',
96
+ items: [
97
+ {
98
+ title: 'Standard Initiativ',
99
+ description: 'Varje stridande slår en gång i början. Samma ordning upprepas varje runda. Enkelt och förutsägbart, men ordningen är låst efter första slaget. Fungerar bra för de flesta grupper och mötesstorlekar.',
100
+ icon: 'mdi:swap-vertical',
101
+ highlight: true,
102
+ points: ['Enkelt att lära och lära ut', 'Fast turordning varje runda', 'Fungerar för alla gruppstorlekar'],
103
+ },
104
+ {
105
+ title: 'Sides Initiativ',
106
+ description: 'Alla spelarkaraktärer agerar tillsammans, sedan alla fiender tillsammans. Vanligt i äldre editioner och OSR-spel. Snabbar upp strid genom att minska individuell spårning men minskar taktisk nyans.',
107
+ icon: 'mdi:account-group',
108
+ highlight: false,
109
+ points: ['Snabbaste stridslösningen', 'Uppmuntrar partikoordination', 'Mindre variation i individuella turer'],
110
+ },
111
+ {
112
+ title: 'Hastighetsfaktor Variant',
113
+ description: 'Varje runda deklarerar deltagarna först handlingar, sedan slår de initiativ modifierat av den valda handlingen. Används i valfria regelsystem. Skapar oförutsägbar turordning men lägger till djup i beslutsfattande.',
114
+ icon: 'mdi:run-fast',
115
+ highlight: false,
116
+ points: ['Annan ordning varje runda', 'Handlingsval påverkar timing', 'Fler taktiska beslut per tur'],
117
+ },
118
+ ],
119
+ columns: 3,
120
+ },
121
+ {
122
+ type: 'title',
123
+ text: 'Stridsspårare Ordlista',
124
+ level: 3,
125
+ },
126
+ {
127
+ type: 'glossary',
128
+ items: [
129
+ {
130
+ term: 'Initiativ',
131
+ definition: 'Ett Smyghetsslag i början av strid för att bestämma turordningen. Varje deltagare slår och agerar i fallande ordning.',
132
+ },
133
+ {
134
+ term: 'Runda',
135
+ definition: 'En fullständig cykel där varje stridande tar en tur. Efter den sista stridande agerat slutar rundan och en ny runda börjar från toppen av ordningen.',
136
+ },
137
+ {
138
+ term: 'Statuseffekt',
139
+ definition: 'Ett tillfälligt tillstånd som ändrar en karaktärs förmågor. Exempel inkluderar Bedövad (kan inte agera), Förgiftad (nackdel på slag) och Bländad (attacker har nackdel).',
140
+ },
141
+ {
142
+ term: 'IP',
143
+ definition: 'Icke-spelarkaraktär som styrs av Dungeon Master. I initiativspårning är IPs typiskt fiender eller neutrala varelser i mötet.',
144
+ },
145
+ {
146
+ term: 'SP',
147
+ definition: 'Spelarkaraktär som styrs av en av spelarna vid bordet. SPs särskiljs från IPs i spåraren för att hjälpa DM att identifiera vänliga mål.',
148
+ },
149
+ ],
150
+ },
151
+ {
152
+ type: 'diagnostic',
153
+ variant: 'info',
154
+ title: 'När man ska slå om Initiativ varje runda',
155
+ icon: 'mdi:information-outline',
156
+ badge: 'DM TIPS',
157
+ html: 'Vissa DM föredrar att slå om initiativ varje runda för oförutsägbarhet, medan de flesta behåller samma ordning för enkelhetens skull. Om en ny stridande ansluter mitt i striden, slå deras initiativ och infoga dem på den aktuella positionen. Spåraren hanterar detta automatiskt. För bossmöten, överväg att ge skurken ett fast initiativ vid en specifik räkning för att få striden att kännas mer strukturerad.',
158
+ },
159
+ ],
160
+ faq: [
161
+ {
162
+ question: 'Hur lägger jag till stridande i initiativordningen?',
163
+ answer: 'Ange karaktärsnamn, initiativslag och initiativmodifikation, klicka sedan på Lägg till. Växla mellan Spelare och IP-typer för att visuellt särskilja gruppmedlemmar från fiender i listan.',
164
+ },
165
+ {
166
+ question: 'Vad händer när jag klickar på Påbörja strid?',
167
+ answer: 'Alla stridande sorteras efter initiativ från högst till lägst. Turordningen börjar uppifrån, rundräknaren startar på 1 och den aktiva stridande markeras med en grön glöd.',
168
+ },
169
+ {
170
+ question: 'Hur håller jag koll på statuseffekter under strid?',
171
+ answer: 'Klicka på en statustagg (Bedövad, Förgiftad, Bländad, etc.) för att växla den på eller av för den valda stridande. Aktiva statusar visas bredvid karaktärsnamnet. Detta påminner alla om pågående effekter när den stridandes tur kommer.',
172
+ },
173
+ {
174
+ question: 'Finns mina stridsdata kvar om jag uppdaterar sidan?',
175
+ answer: 'Ja. Initiativspåraren sparar stridstillståndet i din webbläsares lokala lagring. Dina stridande, turordning och statuseffekter finns kvar efter en sidomladdning. Data rensas när du klickar på Avsluta strid.',
176
+ },
177
+ {
178
+ question: 'Kan jag gå tillbaka till föregående tur?',
179
+ answer: 'Ja. Knappen Föregående tur låter dig navigera bakåt i turordningen. Detta är användbart för att granska vad som hände tidigare i rundan eller korrigera ett misstag.',
180
+ },
181
+ {
182
+ question: 'Kan jag lägga till eller ta bort stridande under strid?',
183
+ answer: 'Ja. Nya stridande kan läggas till när som helst och infogas automatiskt på rätt position baserat på deras initiativslag. Befintliga stridande kan tas bort om de lämnar mötet.',
184
+ },
185
+ {
186
+ question: 'Fungerar detta med vilket RPG-system som helst?',
187
+ answer: 'Ja. Spåraren fungerar med alla bordsrollspel som använder initiativbaserad turordning. Ange bara de initiativvärden ditt system använder, oavsett om det är ett d20-slag plus Smyghet för D&D eller en annan mekanik för andra spel.',
188
+ },
189
+ ],
190
+ bibliography,
191
+ howTo: [
192
+ {
193
+ name: 'Lägg till stridande före strid',
194
+ text: 'Ange varje karaktärs namn, deras initiativslag och modifikation. Markera dem som Spelare eller IP. Lägg till så många stridande som ditt möte behöver.',
195
+ },
196
+ {
197
+ name: 'Påbörja strid för att låsa ordningen',
198
+ text: 'Klicka på Påbörja strid för att sortera alla efter initiativ och börja spåra turer. Den första stridande i ordningen markeras.',
199
+ },
200
+ {
201
+ name: 'Navigera turer och spåra tillstånd',
202
+ text: 'Använd Nästa tur och Föregående tur för att röra dig genom ordningen. Applicera statuseffekter genom att klicka på statustaggarna för att spåra tillstånd under striden.',
203
+ },
204
+ {
205
+ name: 'Avsluta strid när du är klar',
206
+ text: 'Klicka på Avsluta strid för att stoppa turspårningen. Detta rensar det aktiva tillståndet och återställer rundräknaren medan stridandelistan behålls för nästa möte.',
207
+ },
208
+ ],
209
+ schemas: [
210
+ {
211
+ '@context': 'https://schema.org',
212
+ '@type': 'SoftwareApplication',
213
+ 'name': 'RPG Initiativ Spårare',
214
+ 'operatingSystem': 'Alla',
215
+ 'applicationCategory': 'UtilitiesApplication',
216
+ 'browserRequirements': 'Kräver HTML5. Kräver JavaScript.',
217
+ },
218
+ {
219
+ '@context': 'https://schema.org',
220
+ '@type': 'FAQPage',
221
+ 'mainEntity': [
222
+ {
223
+ '@type': 'Question',
224
+ 'name': 'Hur lägger jag till stridande?',
225
+ 'acceptedAnswer': {
226
+ '@type': 'Answer',
227
+ 'text': 'Ange karaktärsnamn, initiativslag och initiativmodifikation, klicka sedan på Lägg till. Spelare och IPs kan växlas för att särskilja dem i listan.',
228
+ },
229
+ },
230
+ {
231
+ '@type': 'Question',
232
+ 'name': 'Vad händer när jag klickar på Påbörja strid?',
233
+ 'acceptedAnswer': {
234
+ '@type': 'Answer',
235
+ 'text': 'Alla stridande sorteras efter initiativ (högst först). Turordningen börjar med den första stridande och en rundräknare startar på 1.',
236
+ },
237
+ },
238
+ ],
239
+ },
240
+ {
241
+ '@context': 'https://schema.org',
242
+ '@type': 'HowTo',
243
+ 'name': 'Hur man använder Initiativ Spåraren',
244
+ 'step': [
245
+ {
246
+ '@type': 'HowToStep',
247
+ 'name': 'Lägg till stridande',
248
+ 'text': 'Ange karaktärsdetaljer inklusive namn, initiativslag och modifikation. Växla mellan Spelare och IP-typer före tillägg.',
249
+ },
250
+ {
251
+ '@type': 'HowToStep',
252
+ 'name': 'Påbörja strid',
253
+ 'text': 'Klicka på Påbörja strid för att sortera alla stridande efter initiativ och börja spårning av turordning.',
254
+ },
255
+ {
256
+ '@type': 'HowToStep',
257
+ 'name': 'Hantera turer',
258
+ 'text': 'Använd Nästa tur och Föregående tur för att navigera turordningen. Den aktiva stridande markeras med en grön glöd.',
259
+ },
260
+ ],
261
+ },
262
+ ],
263
+ };