@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: 'Śledzenie Inicjatywy',
7
+ addCombatant: 'Dodawanie Uczestnika',
8
+ removeCombatant: 'Usuń',
9
+ playerLabel: 'Gracz',
10
+ npcLabel: 'NPC',
11
+ initiativeLabel: 'Inicjatywa',
12
+ modifierLabel: 'Modyfikator',
13
+ namePlaceholder: 'Nazwa postaci',
14
+ initiativePlaceholder: 'Inicjatywa',
15
+ modifierPlaceholder: 'Modyfikator',
16
+ addButton: 'Dodaj',
17
+ startCombat: 'Rozpocznij Walkę',
18
+ endCombat: 'Zakończ Walkę',
19
+ nextTurn: 'Następna Tura',
20
+ prevTurn: 'Poprzednia Tura',
21
+ roundLabel: 'Runda',
22
+ turnLabel: 'Tura',
23
+ noCombatants: 'Brak uczestników. Dodaj postacie, aby rozpocząć.',
24
+ statusInput: 'Status',
25
+ combatStarted: 'Walka Rozpoczęta!',
26
+ combatEnded: 'Walka Zakończona',
27
+ yourTurn: 'Tura',
28
+ };
29
+
30
+ export const content: ToolLocaleContent<InitiativeTrackerUI> = {
31
+ slug: 'sledzenie-inicjatywy',
32
+ title: 'Śledzenie Inicjatywy RPG: Kolejność Tur i Menedżer Inicjatywy',
33
+ description: 'Śledź kolejność inicjatywy w każdej erpegi stołowej. Dodawaj uczestników, rzucaj inicjatywę, zarządzaj efektami statusu i nawiguj turami w walce.',
34
+ ui,
35
+ seo: [
36
+ { type: 'title', text: 'Jak Działa Inicjatywa w D&D i Innych RPG Stołowych', level: 2 },
37
+ { type: 'paragraph', html: 'Inicjatywa określa kolejność działań w walce. Każdy uczestnik wykonuje test Zręczności na początku walki, a kolejność tur idzie od najwyższej do najniższej. Cyfrowy tracker inicjatywy automatyzuje sortowanie, podświetla aktywnego uczestnika, śledzi aktywne efekty statusów i informuje cały stół, czyja tura jest następna. Jest to szczególnie przydatne dla Dungeon Masterów prowadzących złożone starcia z wieloma typami wrogów i postaciami graczy.' },
38
+ {
39
+ type: 'stats',
40
+ items: [
41
+ { value: 'Nieograniczone', label: 'Liczba Uczestników' },
42
+ { value: 'Auto Sortowanie', label: 'Według Rzutu Inicjatywy' },
43
+ { value: 'Na Bieżąco', label: 'Śledzenie Tur' },
44
+ ],
45
+ columns: 3,
46
+ },
47
+ { type: 'title', text: 'Standardowe Zasady Inicjatywy dla D&D 5e', level: 2 },
48
+ { type: 'paragraph', html: 'W D&D 5. edycji każdy uczestnik wykonuje test Zręczności na początku walki. Gracze rzucają indywidualnie. Dungeon Master rzuca raz dla każdej grupy identycznych potworów. Kolejność tur idzie od najwyższej do najniższej, a następnie zawraca na górę dla następnej rundy. Remisy są rozstrzygane przez wartość Zręczności lub decyzję MG. Cyfrowy tracker obsługuje to wszystko automatycznie i pokazuje pełną kolejność tur na pierwszy rzut oka.' },
49
+ {
50
+ type: 'table',
51
+ headers: ['Funkcja', 'Ręczne Śledzenie', 'Cyfrowy Tracker'],
52
+ rows: [
53
+ ['Sortowanie', 'Przepisywanie listy przy zmianie inicjatywy', 'Natychmiastowe automatyczne sortowanie'],
54
+ ['Obecna Tura', 'Trzeba śledzić ustnie lub za pomocą żetonu', 'Podświetlona na zielono'],
55
+ ['Efekty Statusów', 'Osobna kartka lub kostka przy miniaturce', 'Kliknij, aby włączyć na uczestniku'],
56
+ ['Liczenie Rund', 'Zapamiętywanie lub zapisywanie na kartce', 'Wyświetlane automatycznie'],
57
+ ['Dodawanie w Walce', 'Wymazywanie i przepisywanie kolejności', 'Wstawiane na właściwą pozycję'],
58
+ ],
59
+ },
60
+ {
61
+ type: 'tip',
62
+ title: 'Porady Prowadzenia Inicjatywy przy Stole',
63
+ html: 'Rzuć inicjatywę dla wszystkich potworów przed sesją, aby zaoszczędzić czas podczas walki. Dodawaj popularne efekty statusów, takie jak Ogłuszenie czy Zatrucie, do uczestnika natychmiast po ich zastosowaniu. Zapobiega to zapomnieniu o stanie, gdy nadejdzie tura dotkniętej postaci. Użyj przycisku Poprzednia Tura, aby przejrzeć, co się wydarzyło, jeśli musisz sprawdzić decyzję z wcześniejszej części rundy.' },
64
+ {
65
+ type: 'title',
66
+ text: 'Efekty Statusów Powszechnie Używane w Walce',
67
+ level: 3,
68
+ },
69
+ { type: 'paragraph', html: 'Śledzenie stanów podczas walki to jedno z najczęściej pomijanych zadań. Efekt statusu może całkowicie zmienić skuteczność postaci, a zapomnienie o jego usunięciu może zachwiać balansem starcia. Tracker inicjatywy pozwala dodawać i usuwać stany jednym kliknięciem, dzięki czemu pozostają widoczne obok nazwy uczestnika.' },
70
+ {
71
+ type: 'proscons',
72
+ title: 'Obsługa Efektów Statusów Cyfrowo vs Ręcznie',
73
+ items: [
74
+ {
75
+ pro: 'Stany są widoczne tuż obok nazwy postaci, więc nikt nie zapomni o aktywnym efekcie.',
76
+ con: 'Wymaga pamiętania o włączaniu i wyłączaniu statusów w miarę ich stosowania i usuwania.',
77
+ },
78
+ {
79
+ pro: 'Wiele statusów może być aktywnych na tym samym uczestniku i wszystkie są wyświetlane razem.',
80
+ con: 'Tracker nie egzekwuje automatycznie efektów zasad - MG nadal je stosuje.',
81
+ },
82
+ {
83
+ pro: 'Statusy można dodawać w trakcie walki bez zatrzymywania się na zapis na karcie postaci.',
84
+ con: 'Domyślnie dostępne są tylko predefiniowane tagi statusów.',
85
+ },
86
+ ],
87
+ },
88
+ {
89
+ type: 'title',
90
+ text: 'Alternatywne Systemy Inicjatywy',
91
+ level: 3,
92
+ },
93
+ {
94
+ type: 'comparative',
95
+ items: [
96
+ {
97
+ title: 'Standardowa Inicjatywa',
98
+ description: 'Każdy uczestnik rzuca raz na początku. Ta sama kolejność powtarza się w każdej rundzie. Prosta i przewidywalna, ale kolejność jest ustalona po pierwszym rzucie. Działa dobrze dla większości grup i rozmiarów starć.',
99
+ icon: 'mdi:swap-vertical',
100
+ highlight: true,
101
+ points: ['Łatwa do nauczenia i nauczania', 'Stała kolejność tur w każdej rundzie', 'Działa dla dowolnej wielkości grupy'],
102
+ },
103
+ {
104
+ title: 'Inicjatywa Stron',
105
+ description: 'Wszyscy gracze działają razem, a następnie wszyscy wrogowie działają razem. Popularna w starszych edycjach i grach OSR. Przyspiesza walkę poprzez redukcję indywidualnego śledzenia, ale zmniejsza niuanse taktyczne.',
106
+ icon: 'mdi:account-group',
107
+ highlight: false,
108
+ points: ['Najszybsza rozgrywka walki', 'Wspiera koordynację drużyny', 'Mniejsza różnorodność indywidualnych tur'],
109
+ },
110
+ {
111
+ title: 'Wariant Szybkości',
112
+ description: 'Każdej rundy uczestnicy najpierw deklarują działania, a następnie rzucają inicjatywę zmodyfikowaną przez wybrane działanie. Używane w opcjonalnych zasadach. Tworzy nieprzewidywalną kolejność tur, ale dodaje głębi podejmowaniu decyzji.',
113
+ icon: 'mdi:run-fast',
114
+ highlight: false,
115
+ points: ['Inna kolejność każdej rundy', 'Wybór działania wpływa na czas', 'Więcej decyzji taktycznych na turę'],
116
+ },
117
+ ],
118
+ columns: 3,
119
+ },
120
+ {
121
+ type: 'title',
122
+ text: 'Słowniczek Trackera Walki',
123
+ level: 3,
124
+ },
125
+ {
126
+ type: 'glossary',
127
+ items: [
128
+ {
129
+ term: 'Inicjatywa',
130
+ definition: 'Test Zręczności rzucany na początku walki w celu określenia kolejności tur. Każdy uczestnik rzuca i działa w kolejności malejącej.',
131
+ },
132
+ {
133
+ term: 'Runda',
134
+ definition: 'Pełny cykl, w którym każdy uczestnik wykonuje jedną turę. Po działaniu ostatniego uczestnika runda się kończy i zaczyna nowa runda od początku kolejności.',
135
+ },
136
+ {
137
+ term: 'Efekt Statusu',
138
+ definition: 'Tymczasowy stan modyfikujący możliwości postaci. Przykłady obejmują Ogłuszenie (nie może działać), Zatrucie (utrudnienie w rzutach) i Oślepienie (ataki mają utrudnienie).',
139
+ },
140
+ {
141
+ term: 'NPC',
142
+ definition: 'Postać Niegrająca kontrolowana przez Dungeon Mastera. W śledzeniu inicjatywy NPC to zazwyczaj wrogowie lub neutralne stworzenia w starciu.',
143
+ },
144
+ {
145
+ term: 'PC',
146
+ definition: 'Postać Gracza kontrolowana przez jednego z graczy przy stole. PC są odróżniane od NPC w trackerze, aby pomóc MG identyfikować przyjazne cele.',
147
+ },
148
+ ],
149
+ },
150
+ {
151
+ type: 'diagnostic',
152
+ variant: 'info',
153
+ title: 'Kiedy Przerzucać Inicjatywę Każdej Rundzie',
154
+ icon: 'mdi:information-outline',
155
+ badge: 'PORADA MG',
156
+ html: 'Niektórzy MG wolą przerzucać inicjatywę każdej rundy dla nieprzewidywalności, podczas gdy większość zachowuje tę samą kolejność dla prostoty. Jeśli nowy uczestnik dołącza w trakcie walki, rzuć ich inicjatywę i wstaw ich na bieżącą pozycję. Tracker obsługuje to automatycznie. W przypadku starć z bossem rozważ nadanie złoczyńcy stałej inicjatywy na konkretnej wartości, aby walka wydawała się bardziej uporządkowana.',
157
+ },
158
+ ],
159
+ faq: [
160
+ {
161
+ question: 'Jak dodać uczestników do kolejności inicjatywy?',
162
+ answer: 'Wprowadź nazwę postaci, rzut inicjatywy i modyfikator inicjatywy, a następnie kliknij Dodaj. Przełączaj między typami Gracz i NPC, aby wizualnie odróżnić członków drużyny od wrogów na liście.',
163
+ },
164
+ {
165
+ question: 'Co się stanie, gdy kliknę Rozpocznij Walkę?',
166
+ answer: 'Wszyscy uczestnicy są sortowani według inicjatywy od najwyższej do najniższej. Kolejność tur zaczyna się od góry, licznik rund startuje od 1, a aktywny uczestnik jest podświetlony na zielono.',
167
+ },
168
+ {
169
+ question: 'Jak śledzić efekty statusów podczas walki?',
170
+ answer: 'Kliknij tag statusu (Ogłuszenie, Zatrucie, Oślepienie itp.), aby włączyć lub wyłączyć go dla wybranego uczestnika. Aktywne statusy pojawiają się obok nazwy postaci. Przypomina to wszystkim o trwających efektach, gdy nadejdzie tura tego uczestnika.',
171
+ },
172
+ {
173
+ question: 'Czy moje dane walki zostaną zachowane po odświeżeniu strony?',
174
+ answer: 'Tak. Tracker inicjatywy zapisuje stan walki w lokalnym magazynie przeglądarki. Twoi uczestnicy, kolejność tur i efekty statusów pozostają po przeładowaniu strony. Dane są czyszczone po kliknięciu Zakończ Walkę.',
175
+ },
176
+ {
177
+ question: 'Czy mogę wrócić do poprzedniej tury?',
178
+ answer: 'Tak. Przycisk Poprzednia Tura pozwala nawigować wstecz przez kolejność tur. Jest to przydatne do przejrzenia, co wydarzyło się wcześniej w rundzie, lub do poprawienia błędu.',
179
+ },
180
+ {
181
+ question: 'Czy mogę dodawać lub usuwać uczestników podczas walki?',
182
+ answer: 'Tak. Nowi uczestnicy mogą być dodawani w dowolnym momencie i są automatycznie wstawiani na właściwą pozycję na podstawie ich rzutu inicjatywy. Istniejący uczestnicy mogą być usunięci, jeśli opuszczą starcie.',
183
+ },
184
+ {
185
+ question: 'Czy to działa z dowolnym systemem RPG?',
186
+ answer: 'Tak. Tracker działa z każdą erpegią stołową, która używa kolejności tur opartej na inicjatywie. Wprowadź dowolne wartości inicjatywy, których używa twój system - czy to rzut k20 plus Zr dla D&D, czy inny mechanik dla innych gier.',
187
+ },
188
+ ],
189
+ bibliography,
190
+ howTo: [
191
+ {
192
+ name: 'Dodaj Uczestników Przed Walką',
193
+ text: 'Wprowadź nazwę każdej postaci, jej rzut inicjatywy i modyfikator. Oznacz jako Gracz lub NPC. Dodaj tylu uczestników, ilu wymaga twoje starcie.',
194
+ },
195
+ {
196
+ name: 'Rozpocznij Walkę, aby Zablokować Kolejność',
197
+ text: 'Kliknij Rozpocznij Walkę, aby posortować wszystkich według inicjatywy i rozpocząć śledzenie tur. Pierwszy uczestnik w kolejności jest podświetlony.',
198
+ },
199
+ {
200
+ name: 'Nawiguj Turami i Śledź Stany',
201
+ text: 'Użyj Następna Tura i Poprzednia Tura, aby poruszać się po kolejności. Stosuj efekty statusów, klikając tagi statusów, aby śledzić stany podczas walki.',
202
+ },
203
+ {
204
+ name: 'Zakończ Walkę po Skończeniu',
205
+ text: 'Kliknij Zakończ Walkę, aby zatrzymać śledzenie tur. Czyści to aktywny stan i resetuje licznik rund, zachowując listę uczestników na następne starcie.',
206
+ },
207
+ ],
208
+ schemas: [
209
+ {
210
+ '@context': 'https://schema.org',
211
+ '@type': 'SoftwareApplication',
212
+ 'name': 'Śledzenie Inicjatywy RPG',
213
+ 'operatingSystem': 'Wszystkie',
214
+ 'applicationCategory': 'UtilitiesApplication',
215
+ 'browserRequirements': 'Wymaga HTML5. Wymaga JavaScript.',
216
+ },
217
+ {
218
+ '@context': 'https://schema.org',
219
+ '@type': 'FAQPage',
220
+ 'mainEntity': [
221
+ {
222
+ '@type': 'Question',
223
+ 'name': 'Jak dodać uczestników?',
224
+ 'acceptedAnswer': {
225
+ '@type': 'Answer',
226
+ 'text': 'Wprowadź nazwę postaci, rzut inicjatywy i modyfikator inicjatywy, a następnie kliknij Dodaj. Gracze i NPC mogą być przełączani, aby pomóc odróżnić ich na liście.',
227
+ },
228
+ },
229
+ {
230
+ '@type': 'Question',
231
+ 'name': 'Co się stanie, gdy kliknę Rozpocznij Walkę?',
232
+ 'acceptedAnswer': {
233
+ '@type': 'Answer',
234
+ 'text': 'Wszyscy uczestnicy są sortowani według inicjatywy (najwyższa pierwsza). Kolejność tur zaczyna się od pierwszego uczestnika, a licznik rund startuje od 1.',
235
+ },
236
+ },
237
+ ],
238
+ },
239
+ {
240
+ '@context': 'https://schema.org',
241
+ '@type': 'HowTo',
242
+ 'name': 'Jak Korzystać z Trackera Inicjatywy',
243
+ 'step': [
244
+ {
245
+ '@type': 'HowToStep',
246
+ 'name': 'Dodaj Uczestników',
247
+ 'text': 'Wprowadź szczegóły postaci, w tym nazwę, rzut inicjatywy i modyfikator. Przełącz między typami Gracz i NPC przed dodaniem.',
248
+ },
249
+ {
250
+ '@type': 'HowToStep',
251
+ 'name': 'Rozpocznij Walkę',
252
+ 'text': 'Kliknij Rozpocznij Walkę, aby posortować wszystkich uczestników według inicjatywy i rozpocząć śledzenie kolejności tur.',
253
+ },
254
+ {
255
+ '@type': 'HowToStep',
256
+ 'name': 'Zarządzaj Turami',
257
+ 'text': 'Użyj Następna Tura i Poprzednia Tura, aby nawigować po kolejności tur. Aktywny uczestnik jest podświetlony na zielono.',
258
+ },
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: 'Rastreador de Iniciativa',
7
+ addCombatant: 'Adicionar combatente',
8
+ removeCombatant: 'Remover',
9
+ playerLabel: 'Jogador',
10
+ npcLabel: 'PNJ',
11
+ initiativeLabel: 'Iniciativa',
12
+ modifierLabel: 'Modificador',
13
+ namePlaceholder: 'Nome do personagem',
14
+ initiativePlaceholder: 'Iniciativa',
15
+ modifierPlaceholder: 'Modificador',
16
+ addButton: 'Adicionar',
17
+ startCombat: 'Iniciar combate',
18
+ endCombat: 'Encerrar combate',
19
+ nextTurn: 'Próximo turno',
20
+ prevTurn: 'Turno anterior',
21
+ roundLabel: 'Rodada',
22
+ turnLabel: 'Turno',
23
+ noCombatants: 'Nenhum combatente ainda. Adicione personagens para começar.',
24
+ statusInput: 'Estado',
25
+ combatStarted: 'Combate iniciado!',
26
+ combatEnded: 'Combate encerrado',
27
+ yourTurn: 'Turno',
28
+ };
29
+
30
+ export const content: ToolLocaleContent<InitiativeTrackerUI> = {
31
+ slug: 'rastreador-de-iniciativa',
32
+ title: 'Rastreador de Iniciativa RPG: Ordem de Turnos & Gerenciador de Iniciativa',
33
+ description: 'Acompanhe a ordem de iniciativa para qualquer RPG de mesa. Adicione combatentes, role iniciativa, gerencie efeitos de estado e navegue pelos turnos em combate.',
34
+ ui,
35
+ seo: [
36
+ { type: 'title', text: 'Como a Iniciativa Funciona em D&D e Outros RPGs de Mesa', level: 2 },
37
+ { type: 'paragraph', html: 'A iniciativa determina a ordem das ações em combate. Cada participante faz um teste de Destreza no início da luta, e a ordem dos turnos vai do maior para o menor. Um rastreador de iniciativa digital automatiza a classificação, destaca o combatente ativo, acompanha os efeitos de estado em andamento e mantém toda a mesa informada sobre de quem é o próximo turno. Isso é especialmente útil para Mestres de Dungeon que gerenciam encontros complexos com vários tipos de inimigos e personagens jogadores.' },
38
+ {
39
+ type: 'stats',
40
+ items: [
41
+ { value: 'Ilimitados', label: 'Combatentes suportados' },
42
+ { value: 'Ordem auto', label: 'Por rolagem de iniciativa' },
43
+ { value: 'Tempo real', label: 'Acompanhamento de turnos' },
44
+ ],
45
+ columns: 3,
46
+ },
47
+ { type: 'title', text: 'Regras Padrão de Iniciativa para D&D 5e', level: 2 },
48
+ { type: 'paragraph', html: 'Em D&D 5ª Edição, cada participante faz um teste de Destreza no início do combate. Jogadores rolam individualmente. O Mestre de Dungeon rola uma vez para cada grupo de monstros idênticos. A ordem dos turnos vai do maior para o menor, depois volta ao topo para a próxima rodada. Empates são resolvidos pelo valor de Destreza, ou o MD decide. Um rastreador digital lida com tudo isso automaticamente e mostra a ordem completa dos turnos de relance.' },
49
+ {
50
+ type: 'table',
51
+ headers: ['Função', 'Acompanhamento manual', 'Rastreador digital'],
52
+ rows: [
53
+ ['Classificação', 'Reescrever a lista quando a iniciativa mudar', 'Reordenação automática instantânea'],
54
+ ['Turno atual', 'Deve ser acompanhado verbalmente ou com uma ficha', 'Destacado com brilho verde'],
55
+ ['Efeitos de estado', 'Bloco de notas separado ou dado perto do mini', 'Clique para ativar em cada combatente'],
56
+ ['Contagem de rodadas', 'Contar mentalmente ou em papel de rascunho', 'Mostrado automaticamente'],
57
+ ['Adicionar durante combate', 'Apagar e reescrever a ordem', 'Inserido na posição correta'],
58
+ ],
59
+ },
60
+ {
61
+ type: 'tip',
62
+ title: 'Dicas para Gerenciar Iniciativa na Mesa',
63
+ html: 'Role iniciativa para todos os monstros antes da sessão para economizar tempo durante o combate. Adicione efeitos de estado comuns como Atordoado ou Envenenado a um combatente assim que forem aplicados. Isso evita esquecer uma condição quando o turno do personagem afetado chegar. Use o botão Turno anterior para revisar o que aconteceu se precisar verificar uma decisão de uma rodada anterior.',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: 'Efeitos de Estado Comuns em Combate',
68
+ level: 3,
69
+ },
70
+ { type: 'paragraph', html: 'Acompanhar condições durante o combate é uma das tarefas mais frequentemente negligenciadas. Um efeito de estado pode mudar completamente a eficácia de um personagem, e esquecer de removê-lo pode desequilibrar um encontro. O rastreador de iniciativa permite aplicar e remover condições com um único clique para que permaneçam visíveis ao lado do nome do combatente.' },
71
+ {
72
+ type: 'proscons',
73
+ title: 'Gerenciamento digital vs manual de efeitos de estado',
74
+ items: [
75
+ {
76
+ pro: 'As condições ficam visíveis ao lado do nome do personagem, então ninguém esquece um efeito ativo.',
77
+ con: 'Exige lembrar de ativar e desativar os estados conforme são aplicados e removidos.',
78
+ },
79
+ {
80
+ pro: 'Múltiplos estados podem estar ativos no mesmo combatente e são mostrados juntos.',
81
+ con: 'O rastreador não aplica automaticamente os efeitos das regras; o MD ainda precisa gerenciá-los.',
82
+ },
83
+ {
84
+ pro: 'Estados podem ser adicionados durante o combate sem pausar para escrever numa ficha de personagem.',
85
+ con: 'Apenas etiquetas de estado predefinidas estão disponíveis por padrão.',
86
+ },
87
+ ],
88
+ },
89
+ {
90
+ type: 'title',
91
+ text: 'Sistemas de Iniciativa Alternativos',
92
+ level: 3,
93
+ },
94
+ {
95
+ type: 'comparative',
96
+ items: [
97
+ {
98
+ title: 'Iniciativa Padrão',
99
+ description: 'Cada combatente rola uma vez no início. A mesma ordem se repete a cada rodada. Simples e previsível, mas a ordem é fixa após a primeira rolagem. Funciona bem para a maioria dos grupos e tamanhos de encontro.',
100
+ icon: 'mdi:swap-vertical',
101
+ highlight: true,
102
+ points: ['Simples de aprender e ensinar', 'Ordem de turnos fixa a cada rodada', 'Funciona para qualquer grupo'],
103
+ },
104
+ {
105
+ title: 'Iniciativa de Grupo',
106
+ description: 'Todos os personagens jogadores agem juntos, depois todos os inimigos juntos. Comum em edições antigas e jogos OSR. Acelera o combate reduzindo o acompanhamento individual mas reduz a profundidade tática.',
107
+ icon: 'mdi:account-group',
108
+ highlight: false,
109
+ points: ['Resolução de combate mais rápida', 'Incentiva a coordenação do grupo', 'Menos variedade em turnos individuais'],
110
+ },
111
+ {
112
+ title: 'Variante de Fator de Velocidade',
113
+ description: 'Cada rodada os participantes declaram ações primeiro, depois rolam iniciativa modificada pela ação escolhida. Usado em conjuntos de regras opcionais. Cria uma ordem de turno imprevisível mas adiciona profundidade à tomada de decisões.',
114
+ icon: 'mdi:run-fast',
115
+ highlight: false,
116
+ points: ['Ordem diferente a cada rodada', 'Escolha de ação afeta o tempo', 'Mais decisões táticas por turno'],
117
+ },
118
+ ],
119
+ columns: 3,
120
+ },
121
+ {
122
+ type: 'title',
123
+ text: 'Glossário do Rastreador de Combate',
124
+ level: 3,
125
+ },
126
+ {
127
+ type: 'glossary',
128
+ items: [
129
+ {
130
+ term: 'Iniciativa',
131
+ definition: 'Um teste de Destreza realizado no início do combate para determinar a sequência dos turnos. Cada participante rola e age em ordem decrescente.',
132
+ },
133
+ {
134
+ term: 'Rodada',
135
+ definition: 'Um ciclo completo onde cada combatente realiza um turno. Após o último combatente, a rodada termina e uma nova rodada começa do topo da ordem.',
136
+ },
137
+ {
138
+ term: 'Efeito de Estado',
139
+ definition: 'Uma condição temporária que modifica as capacidades de um personagem. Exemplos incluem Atordoado (não pode agir), Envenenado (desvantagem nas rolagens) e Cego (ataques com desvantagem).',
140
+ },
141
+ {
142
+ term: 'PNJ',
143
+ definition: 'Personagem Não Jogador controlado pelo Mestre de Dungeon. No rastreamento de iniciativa, PNJs são tipicamente inimigos ou criaturas neutras no encontro.',
144
+ },
145
+ {
146
+ term: 'PJ',
147
+ definition: 'Personagem Jogador controlado por um dos jogadores na mesa. PJs são distintos de PNJs no rastreador para ajudar o MD a identificar alvos aliados.',
148
+ },
149
+ ],
150
+ },
151
+ {
152
+ type: 'diagnostic',
153
+ variant: 'info',
154
+ title: 'Quando Rerrolar a Iniciativa a Cada Rodada',
155
+ icon: 'mdi:information-outline',
156
+ badge: 'DICA DO MD',
157
+ html: 'Alguns MDs preferem rerrolar a iniciativa a cada rodada para imprevisibilidade, enquanto a maioria mantém a mesma ordem por simplicidade. Se um novo combatente entrar no meio da luta, role sua iniciativa e insira-o na posição atual. O rastreador lida com isso automaticamente. Para encontros com chefes, considere dar ao vilão uma iniciativa fixa em um valor específico para tornar o combate mais estruturado.',
158
+ },
159
+ ],
160
+ faq: [
161
+ {
162
+ question: 'Como adiciono combatentes à ordem de iniciativa?',
163
+ answer: 'Insira o nome do personagem, a rolagem de iniciativa e o modificador de iniciativa, depois clique em Adicionar. Alterne entre os tipos Jogador e PNJ para distinguir visualmente os membros do grupo dos inimigos na lista.',
164
+ },
165
+ {
166
+ question: 'O que acontece quando clico em Iniciar combate?',
167
+ answer: 'Todos os combatentes são ordenados por iniciativa do maior para o menor. A ordem dos turnos começa do topo, o contador de rodadas inicia em 1 e o combatente ativo é destacado com um brilho verde.',
168
+ },
169
+ {
170
+ question: 'Como acompanho efeitos de estado durante o combate?',
171
+ answer: 'Clique em uma etiqueta de estado (Atordoado, Envenenado, Cego, etc.) para ativá-la ou desativá-la para o combatente selecionado. Estados ativos aparecem ao lado do nome do personagem. Isso lembra a todos sobre os efeitos em andamento quando o turno daquele combatente chegar.',
172
+ },
173
+ {
174
+ question: 'Meus dados de combate persistem se eu atualizar a página?',
175
+ answer: 'Sim. O rastreador de iniciativa salva o estado do combate no armazenamento local do seu navegador. Seus combatentes, ordem de turnos e efeitos de estado permanecem após recarregar a página. Os dados são limpos quando você clica em Encerrar combate.',
176
+ },
177
+ {
178
+ question: 'Posso voltar ao turno anterior?',
179
+ answer: 'Sim. O botão Turno anterior permite navegar para trás na ordem dos turnos. Isso é útil para revisar o que aconteceu antes na rodada ou corrigir um erro.',
180
+ },
181
+ {
182
+ question: 'Posso adicionar ou remover combatentes durante o combate?',
183
+ answer: 'Sim. Novos combatentes podem ser adicionados a qualquer momento e são automaticamente inseridos na posição correta com base na rolagem de iniciativa. Combatentes existentes podem ser removidos se saírem do encontro.',
184
+ },
185
+ {
186
+ question: 'Funciona com qualquer sistema de RPG?',
187
+ answer: 'Sim. O rastreador funciona com qualquer RPG de mesa que use ordem de turnos baseada em iniciativa. Insira os valores de iniciativa que seu sistema usa, seja uma rolagem de d20 mais Destreza para D&D ou um mecanismo diferente para outros jogos.',
188
+ },
189
+ ],
190
+ bibliography,
191
+ howTo: [
192
+ {
193
+ name: 'Adicione combatentes antes do combate',
194
+ text: 'Insira o nome de cada personagem, sua rolagem de iniciativa e modificador. Marque-os como Jogador ou PNJ. Adicione quantos combatentes seu encontro precisar.',
195
+ },
196
+ {
197
+ name: 'Inicie o combate para travar a ordem',
198
+ text: 'Clique em Iniciar combate para ordenar todos por iniciativa e começar o acompanhamento de turnos. O primeiro combatente na ordem é destacado.',
199
+ },
200
+ {
201
+ name: 'Navegue pelos turnos e acompanhe condições',
202
+ text: 'Use Próximo turno e Turno anterior para percorrer a ordem. Aplique efeitos de estado clicando nas etiquetas de estado para acompanhar condições durante o combate.',
203
+ },
204
+ {
205
+ name: 'Encerre o combate quando terminar',
206
+ text: 'Clique em Encerrar combate para parar o acompanhamento de turnos. Isso limpa o estado ativo e redefine o contador de rodadas enquanto mantém a lista de combatentes para o próximo encontro.',
207
+ },
208
+ ],
209
+ schemas: [
210
+ {
211
+ '@context': 'https://schema.org',
212
+ '@type': 'SoftwareApplication',
213
+ 'name': 'Rastreador de Iniciativa RPG',
214
+ 'operatingSystem': 'Todos',
215
+ 'applicationCategory': 'UtilitiesApplication',
216
+ 'browserRequirements': 'Requer HTML5. Requer JavaScript.',
217
+ },
218
+ {
219
+ '@context': 'https://schema.org',
220
+ '@type': 'FAQPage',
221
+ 'mainEntity': [
222
+ {
223
+ '@type': 'Question',
224
+ 'name': 'Como adiciono combatentes?',
225
+ 'acceptedAnswer': {
226
+ '@type': 'Answer',
227
+ 'text': 'Insira o nome do personagem, a rolagem de iniciativa e o modificador de iniciativa, depois clique em Adicionar. Jogadores e PNJs podem ser alternados para distingui-los na lista.',
228
+ },
229
+ },
230
+ {
231
+ '@type': 'Question',
232
+ 'name': 'O que acontece quando clico em Iniciar combate?',
233
+ 'acceptedAnswer': {
234
+ '@type': 'Answer',
235
+ 'text': 'Todos os combatentes são ordenados por iniciativa (do maior primeiro). A ordem dos turnos começa com o primeiro combatente e um contador de rodadas inicia em 1.',
236
+ },
237
+ },
238
+ ],
239
+ },
240
+ {
241
+ '@context': 'https://schema.org',
242
+ '@type': 'HowTo',
243
+ 'name': 'Como Usar o Rastreador de Iniciativa',
244
+ 'step': [
245
+ {
246
+ '@type': 'HowToStep',
247
+ 'name': 'Adicionar combatentes',
248
+ 'text': 'Insira os detalhes do personagem: nome, rolagem de iniciativa e modificador. Alterne entre Jogador e PNJ antes de adicionar.',
249
+ },
250
+ {
251
+ '@type': 'HowToStep',
252
+ 'name': 'Iniciar combate',
253
+ 'text': 'Clique em Iniciar combate para ordenar todos os combatentes por iniciativa e começar o acompanhamento da ordem de turnos.',
254
+ },
255
+ {
256
+ '@type': 'HowToStep',
257
+ 'name': 'Gerenciar turnos',
258
+ 'text': 'Use Próximo turno e Turno anterior para navegar pela ordem de turnos. O combatente ativo é destacado com um brilho verde.',
259
+ },
260
+ ],
261
+ },
262
+ ],
263
+ };