@jjlmoya/utils-tabletop 1.29.0 → 1.30.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 (38) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -0
  3. package/src/entries.ts +4 -0
  4. package/src/tests/locale_completeness.test.ts +2 -9
  5. package/src/tests/tool_validation.test.ts +1 -2
  6. package/src/tool/rpg-settlement-exploration-map-generator/.keep +1 -0
  7. package/src/tool/rpg-settlement-exploration-map-generator/bibliography.astro +11 -0
  8. package/src/tool/rpg-settlement-exploration-map-generator/bibliography.ts +7 -0
  9. package/src/tool/rpg-settlement-exploration-map-generator/component.astro +66 -0
  10. package/src/tool/rpg-settlement-exploration-map-generator/controller.ts +231 -0
  11. package/src/tool/rpg-settlement-exploration-map-generator/dom-views.ts +174 -0
  12. package/src/tool/rpg-settlement-exploration-map-generator/editor.ts +85 -0
  13. package/src/tool/rpg-settlement-exploration-map-generator/entry.ts +27 -0
  14. package/src/tool/rpg-settlement-exploration-map-generator/evaluator.ts +8 -0
  15. package/src/tool/rpg-settlement-exploration-map-generator/i18n/de.ts +152 -0
  16. package/src/tool/rpg-settlement-exploration-map-generator/i18n/en.ts +63 -0
  17. package/src/tool/rpg-settlement-exploration-map-generator/i18n/es.ts +233 -0
  18. package/src/tool/rpg-settlement-exploration-map-generator/i18n/fr.ts +152 -0
  19. package/src/tool/rpg-settlement-exploration-map-generator/i18n/id.ts +152 -0
  20. package/src/tool/rpg-settlement-exploration-map-generator/i18n/it.ts +152 -0
  21. package/src/tool/rpg-settlement-exploration-map-generator/i18n/ja.ts +152 -0
  22. package/src/tool/rpg-settlement-exploration-map-generator/i18n/ko.ts +152 -0
  23. package/src/tool/rpg-settlement-exploration-map-generator/i18n/nl.ts +152 -0
  24. package/src/tool/rpg-settlement-exploration-map-generator/i18n/pl.ts +152 -0
  25. package/src/tool/rpg-settlement-exploration-map-generator/i18n/pt.ts +152 -0
  26. package/src/tool/rpg-settlement-exploration-map-generator/i18n/ru.ts +152 -0
  27. package/src/tool/rpg-settlement-exploration-map-generator/i18n/sv.ts +152 -0
  28. package/src/tool/rpg-settlement-exploration-map-generator/i18n/tr.ts +152 -0
  29. package/src/tool/rpg-settlement-exploration-map-generator/i18n/zh.ts +152 -0
  30. package/src/tool/rpg-settlement-exploration-map-generator/index.ts +4 -0
  31. package/src/tool/rpg-settlement-exploration-map-generator/logic.test.ts +65 -0
  32. package/src/tool/rpg-settlement-exploration-map-generator/logic.ts +288 -0
  33. package/src/tool/rpg-settlement-exploration-map-generator/rpg-settlement-exploration-map-generator.css +885 -0
  34. package/src/tool/rpg-settlement-exploration-map-generator/seo.astro +11 -0
  35. package/src/tool/rpg-settlement-exploration-map-generator/storage.test.ts +12 -0
  36. package/src/tool/rpg-settlement-exploration-map-generator/storage.ts +24 -0
  37. package/src/tool/rpg-settlement-exploration-map-generator/ui.ts +81 -0
  38. package/src/tools.ts +2 -0
@@ -0,0 +1,152 @@
1
+ import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
3
+ import type { SettlementMapLocaleContent, SettlementMapUI } from '../entry';
4
+
5
+ const ui: SettlementMapUI = {
6
+ intro: 'Generuj i edytuj mapy osad do sesji RPG. Wybierz krajobraz, wielkość osady, styl architektury i modyfikuj pola prawym przyciskiem myszy lub długim naciśnięciem.',
7
+ seedLabel: 'Ziarno i Nazwa Osady',
8
+ seedHint: 'Określa losowy, ale powtarzalny wzór układu dróg i budynków.',
9
+ randomSeed: 'Generuj Nową Nazwę',
10
+ environmentLabel: 'Otoczenie',
11
+ forest: 'Las',
12
+ plains: 'Równina',
13
+ coast: 'Wybrzeże',
14
+ river: 'Rzeka',
15
+ mountain: 'Góry',
16
+ styleLabel: 'Styl Architektury',
17
+ styleHint: 'Zmienia dachy, ściany, materiały i roślinność osady.',
18
+ styleTimber: 'Mur Pruski',
19
+ styleStone: 'Kamień',
20
+ styleCoastal: 'Nadmorski',
21
+ styleHighland: 'Górski',
22
+ styleMedieval: 'Średniowieczny',
23
+ styleEdo: 'Edo',
24
+ styleSahelian: 'Sahel',
25
+ sizeLabel: 'Wielkość Osady',
26
+ hamlet: 'Przysiółek',
27
+ hamletHint: 'Mały postój',
28
+ village: 'Wioska',
29
+ villageHint: 'Lokalne centrum',
30
+ town: 'Miasteczko',
31
+ townHint: 'Gwarny węzeł',
32
+ homesLabel: 'Liczba Domów',
33
+ homesHint: 'Dostosowuje liczbę domów w ramach wybranej wielkości.',
34
+ servicesLabel: 'Usługi i Punkty Orientacyjne',
35
+ serviceListHint: 'Wybierz domyślne usługi lub dodaj własne nazwane lokacje.',
36
+ newServicePlaceholder: 'Wpisz nową lokację',
37
+ addService: 'Dodaj',
38
+ removeService: 'Usuń',
39
+ serviceTavern: 'Karczma',
40
+ serviceSmithy: 'Kuźnia',
41
+ serviceTemple: 'Świątynia',
42
+ serviceMarket: 'Targ',
43
+ serviceStable: 'Stajnia',
44
+ serviceHall: 'Ratusz',
45
+ generate: 'Generuj Mapę Ponownie',
46
+ mapRegionLabel: 'Edytowalna Mapa Osady RPG',
47
+ mapSummary: 'Plan Osady',
48
+ buildings: 'Budynki',
49
+ paths: 'Drogi',
50
+ services: 'Usługi',
51
+ terrain: 'Woda',
52
+ legendLabel: 'Legenda',
53
+ legendHome: 'Dom',
54
+ legendService: 'Usługa',
55
+ legendPath: 'Droga',
56
+ legendWater: 'Woda',
57
+ legendWild: 'Las',
58
+ editLabel: 'Bezpośrednia Edycja Pola',
59
+ toolSelect: 'Inspekcja',
60
+ toolBuilding: 'Budynek',
61
+ toolPath: 'Droga',
62
+ toolWater: 'Woda',
63
+ toolTree: 'Drzewo',
64
+ toolErase: 'Wymaż',
65
+ serviceSelectLabel: 'Oznaczenie Nowej Usługi',
66
+ clickHint: 'Kliknij prawym przyciskiem myszy lub przytrzymaj długo na polu, aby otworzyć menu kontekstowe.',
67
+ selectedHint: 'Wybrane pole:',
68
+ shareLink: 'Kopiuj Link do Udostępnienia',
69
+ linkCopied: 'Link skopiowany do schowka',
70
+ exportPng: 'PNG',
71
+ exportSvg: 'SVG',
72
+ exportJson: 'Zapisz JSON',
73
+ importJson: 'Otwórz JSON',
74
+ importError: 'Nieprawidłowy plik mapy osady.',
75
+ mapData: 'Dane Mapy',
76
+ readyBadge: 'Gotowe do Eksploracji',
77
+ serviceNone: 'Brak Oznaczenia',
78
+ contextMenuLabel: 'Menu Pola Mapy',
79
+ contextInspect: 'Inspectuj Pole',
80
+ contextBuilding: 'Dodaj Budynek',
81
+ contextPath: 'Dodaj Drogę',
82
+ contextWater: 'Dodaj Wodę',
83
+ contextTree: 'Dodaj Drzewo',
84
+ contextErase: 'Wymaż Pole',
85
+ };
86
+
87
+ const faq = [
88
+ { question: 'Co mogę stworzyć za pomocą tego Generatora Map Osad i Eksploracji RPG?', answer: 'Możesz generować szczegółowe, przejrzyste plany wiosek, przysiółków i miasteczek do sesji RPG i budowania świata. Budynki, drogi, woda i roślinność są automatycznie logicznie układane.' },
89
+ { question: 'Czy układ zmienia się przy zmianie ziarna?', answer: 'Tak. To samo ziarno i ustawienia dają dokładnie tę samą mapę początkową. Ułatwia to zachowanie map w notatkach i udostępnianie ich graczom.' },
90
+ { question: 'Jakie rozmiary osad są dostępne?', answer: 'Do wyboru są trzy rozmiary: przysiółek, wioska i miasteczko. Gęstość zabudowy, drogi i rozmieszczenie usług skalują się automatycznie.' },
91
+ { question: 'Czy mogę dostosować styl architektury?', answer: 'Tak, dostępnych jest 7 stylów: Średniowieczny, Edo, Sahel, Mur Pruski, Kamień, Nadmorski i Górski. Styl zmienia pokrycie dachu, mury i roślinność.' },
92
+ { question: 'Czy dostępne są różne typy krajobrazu?', answer: 'Możesz umieścić osadę w lesie, na równinie, wybrzeżu, nad rzeką lub w górach, aby naturalnie wpasować ją w mapę świata.' },
93
+ { question: 'Jak rozmieszczane są usługi, takie jak karczmy?', answer: 'Usługi takie me karczmy, kuźnie i targi są rozmieszczane na podstawie wag w centrum lub na obrzeżach wioski.' },
94
+ { question: 'Czy mogę dodać własne punkty orientacyjne?', answer: 'Tak, możesz dodawać własne lokacje, które pojawią się jako czytelne szyldy nad budynkami i zostaną zapisane w stanie mapy.' },
95
+ { question: 'Czy mogę ręcznie edytować wygenerowaną mapę?', answer: 'Absolutnie. Za pomocą menu kontekstowego na każdym polu możesz bezpośrednio dodawać lub usuwać budynki, drogi, wodę i drzewa.' },
96
+ { question: 'Jak działają połączenia dróg i wody podczas edycji?', answer: 'Skrzyżowania dróg i sąsiadujące pola wody łączą się automatycznie w płynne kształty bez nierównych krawędzi.' },
97
+ { question: 'Jak zapisać lub udostępnić mapę?', answer: 'Możesz skopiować bezpośredni link lub zapisać pełny plik JSON, aby wczytać go ponownie w przyszłości.' },
98
+ { question: 'Jakie formaty eksportu są obsługiwane?', answer: 'PNG do wirtualnych stołów VTT, SVG do druku i edycji wektorowej oraz JSON do zachowania pełnych danych do edycji.' },
99
+ ];
100
+
101
+ const howTo = [
102
+ { name: 'Wybierz ziarno', text: 'Użyj wygenerowanej nazwy lub wpisz własne słowo, aby ustalić podstawowy układ.' },
103
+ { name: 'Wybierz krajobraz i styl', text: 'Dostosuj otoczenie i architekturę do klimatu Twojej kampanii.' },
104
+ { name: 'Ustal rozmiar osady', text: 'Wybierz przysiółek, wioskę lub miasteczko i ewentualnie dostosuj liczbę domów.' },
105
+ { name: 'Dodaj usługi', text: 'Włącz domyślne budynki lub dodaj własne nazwane punkty orientacyjne.' },
106
+ { name: 'Edytuj pole po polu', text: 'Użyj menu kontekstowego, aby bezpośrednio modyfikować drogi, budynki lub wodę.' },
107
+ { name: 'Eksportuj i udostępnij', text: 'Skopiuj link lub zapisz mapę jako PNG, SVG lub JSON.' },
108
+ ];
109
+
110
+ const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
111
+ const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Generator Map Osad i Eksploracji RPG', operatingSystem: 'All', applicationCategory: 'GameApplication', description: 'Przeglądarkowy generator map osad RPG z deterministycznym ziarnem i edycją pól.' };
112
+ const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Jak stworzyć mapę osady RPG', step: howTo.map((item) => ({ '@type': 'HowToStep', name: item.name, text: item.text })) };
113
+
114
+ const schemas: WithContext<SoftwareApplication | FAQPage | HowTo>[] = [faqSchema, appSchema, howToSchema];
115
+
116
+ export const content: SettlementMapLocaleContent = {
117
+ slug: 'generator-map-osad-i-eksploracji-rpg',
118
+ title: 'Generator Map Osad i Eksploracji RPG',
119
+ description: 'Generuj mapy osad i miasteczek do gier RPG z ziarnem deterministycznym, 7 stylami i edycją pól.',
120
+ ui,
121
+ seo: [
122
+ { type: 'title', text: 'Twórz Żywe Osady do Sesji RPG', level: 2 },
123
+ { type: 'paragraph', html: 'Projektuj kompletne wioski, przysiółki i miasteczka z logistycznymi sieciami dróg, placami i punktami orientacyjnymi do swoich przygód i kampanii fantasy. Ten generator map w przeglądarce tworzy czytelne rzuty z góry, na których domy, drogi, rynki, akweny wodne i roślinność współgrają w spójną, bogatą w detale i przekonującą całość. Idealne rozwiązanie na szybki postój na szlaku, wioskę startową graczy, siedzibę gildii czy regionalne centrum tętniące rywalizującymi frakcjami, tajemnicami i zadaniami. Pozwala stworzyć fascynujący świat dla Twoich graczy w zaledwie kilka sekund.' },
124
+ { type: 'title', text: 'Deterministyczne Ziarna Map dla Powtarzalności', level: 2 },
125
+ { type: 'paragraph', html: 'Każda wygenerowana osada opiera się na łatwym do zapamiętania ziarnie słownym. To samo ziarno i ustawienia pozwalają odtworzyć dokładnie ten sam plan osady za każdym razem. Jest to idealne dla Mistrzów Gry, którzy chcą zachować swoje notatki na przyszłe sesje lub dzielić się mapami z graczami bez ryzyka powstawania różnic w podstawowym układzie wioski. Wybierając nowe ziarno, błyskawicznie odkrywasz zupełnie nowy, unikalny układ ulic i ułożenie budynków, zachowując pełną kontrolę nad procesem kreacji.' },
126
+ { type: 'list', items: ['Nowe ziarno tworzy unikalny układ dróg i budynków w ramach wybranej wielkości.', 'Pełna odtwarzalność dla Mistrza Gry i notatek z kampanii.', 'Zachowanie urbanistycznej logiki i struktury przestrzennej.', 'Łatwe dzielenie się z graczami jako stały punkt wyjścia dla kampanii.'] },
127
+ { type: 'title', text: 'Skala od Przysiółka do Gwarnego Miasteczka', level: 2 },
128
+ { type: 'paragraph', html: 'Wybieraj od małych przysiółków po duże miasteczka o zmiennej gęstości zabudowy i zróżnicowanych wzorach ulic dostosowanych do rozmiaru osady. Każdy typ osady charakteryzuje się własną logiką budowania i zakresem domów, tworząc odpowiednią skalę dla przygody i dopasowując się do liczby mieszkańców.' },
129
+ { type: 'table', headers: ['Rozmiar', 'Domy', 'Charakter', 'Zastosowanie'], rows: [['Przysiółek', '3 do 18', 'Mały i cichy', 'Postój w trasie lub odosobniona osada'], ['Wioska', '4 do 28', 'Centrum lokalne', 'Baza wypadowa i punkt startowy graczy'], ['Miasteczko', '6 do 42', 'Gęsty układ z wieloma usługami', 'Węzeł handlowy i miejsce śledztwa']] },
130
+ { type: 'title', text: 'Siedem Stylów Architektury dla Klimatu', level: 2 },
131
+ { type: 'paragraph', html: 'Nadasz każdej osadzie niepowtarzalny klimat i tożsamość wizualną. Średniowieczny, Edo, Sahel, Mur pruski, Kamień, Nadmorski i Górski zmieniają pokrycie dachu, kolorystykę ścian, materiały budowlane i otaczającą roślinność, aby odzwierciedlić kulturę i geografię danego regionu świata fantasy. Każdy styl pozwala wczuć się w lokalną atmosferę.' },
132
+ { type: 'list', items: ['Średniowieczny i Mur pruski do klasycznego fantasy i osad leśnych.', 'Kamień i Górski do rejonów górskich, warowni i klimatu surowego.', 'Nadmorski na wybrzeża z palmami i klimatem morskim.', 'Edo do klimatu orientalnego, konstrukcji drewnianych i unikalnych dachów.', 'Sahel na tereny suche, budowle z gliny i pustynne oazy.'] },
133
+ { type: 'title', text: 'Inteligentne Rozmieszczenie Budynków i Szyldów', level: 2 },
134
+ { type: 'paragraph', html: 'Usługi takie jak karczmy, kuźnie, świątynie i ratusze są rozmieszczane sensownie z podziałem na centrum i obrzeża na podstawie ważonych priorytetów. Własne nazwane lokacje pojawiają się bezpośrednio jako czytelne szyldy nad dachami budynków, ułatwiając szybką orientację w terenie podczas rozgrywki.' },
135
+ { type: 'title', text: 'Dopasowanie do Krajobrazu Świata', level: 2 },
136
+ { type: 'paragraph', html: 'Osadź wioskę w lesie, na równinie, wybrzeżu, nad rzeką lub w górach, aby naturalnie wpasować ją w otaczającą dzicz i pola krajobrazowe na Twojej mapie świata. Roślinność i ukształtowanie wody dostosowują się automatycznie do otoczenia.' },
137
+ { type: 'title', text: 'Edycja Pole po Polu w Przeglądarce', level: 2 },
138
+ { type: 'paragraph', html: 'Modyfikuj budynki, drogi, wodę i drzewa bezpośrednio prawym przyciskiem myszy lub długim naciśnięciem na urządzeniach mobilnych. Dostosuj wygenerowaną mapę do konkretnych potrzeb swojego scenariusza, dodając kluczowe miejsca dla fabuły przygody. Dzięki temu każda osada zyskuje swój unikalny charakter i idealnie wpisuje się w historię opowiadaną przy stole.' },
139
+ { type: 'list', items: ['Dodawanie własnych punktów, wież strażniczych czy palisad.', 'Szybka zmiana układu bez zewnętrznych programów graficznych.', 'Zapis wszystkich zmian ręcznych bezpośrednio w stanie mapy.', 'Płynna obsługa myszy na PC oraz ekranów dotykowych.'] },
140
+ { type: 'title', text: 'Dynamiczne Drogi i Połączenia Wodne', level: 2 },
141
+ { type: 'paragraph', html: 'Skrzyżowania dróg i sąsiadujące pola akwenów wodnych łączą się automatycznie w płynne, estetyczne i naturalne kształty bez nierównych krawędzi, tworząc spójny i profesjonalnie wyglądający plan osady.' },
142
+ { type: 'title', text: 'Zapis i Udostępnianie na Kolejne Sesje', level: 2 },
143
+ { type: 'paragraph', html: 'Kopiuj bezpośrednie linki do udostępniania lub zapisuj pełny stan mapy w pliku JSON, aby łatwo wczytać go ponownie i kontynuować edycję podczas kolejnych spotkań przy stole lub w środowisku VTT.' },
144
+ { type: 'title', text: 'Formaty Eksportu dla Każdego Zastosowania', level: 2 },
145
+ { type: 'table', headers: ['Format', 'Zastosowanie', 'Zawartość'], rows: [['PNG', 'Wirtualne stoły i szybkie notatki', 'Obraz wysokiej rozdzielczości gotowy do wyświetlenia'], ['SVG', 'Wydruk i edycja wektorowa', 'Ostre grafiki wektorowe bez utraty jakości'], ['JSON', 'Dalsza edycja i archiwizacja', 'Pełne dane mapy i wszystkich pól']] },
146
+ { type: 'tip', title: 'Rekomendowany Sposób Pracy', html: 'Ustaw styl, wielkość i krajobraz, dodaj kluczowe budynki i dopracuj szczegóły za pomocą edycji pól przed rozpoczęciem sesji.' },
147
+ ],
148
+ faq,
149
+ bibliography,
150
+ howTo,
151
+ schemas,
152
+ };
@@ -0,0 +1,152 @@
1
+ import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
3
+ import type { SettlementMapLocaleContent, SettlementMapUI } from '../entry';
4
+
5
+ const ui: SettlementMapUI = {
6
+ intro: 'Gere e edite mapas de assentamentos para sessões de RPG. Escolha a paisagem, o tamanho do povoado, o estilo arquitetônico e edite as células via clique direito ou toque longo.',
7
+ seedLabel: 'Semente e Nome do Assentamento',
8
+ seedHint: 'Determina o padrão aleatório mas reproduzível de caminhos e edifícios.',
9
+ randomSeed: 'Gerar Novo Nome',
10
+ environmentLabel: 'Ambiente Circundante',
11
+ forest: 'Floresta',
12
+ plains: 'Planície',
13
+ coast: 'Costa',
14
+ river: 'Rio',
15
+ mountain: 'Montanha',
16
+ styleLabel: 'Estilo Arquitetônico',
17
+ styleHint: 'Altera telhados, paredes, materiais e vegetação do assentamento.',
18
+ styleTimber: 'Enxaimel',
19
+ styleStone: 'Pedra',
20
+ styleCoastal: 'Litorâneo',
21
+ styleHighland: 'Montanhoso',
22
+ styleMedieval: 'Medieval',
23
+ styleEdo: 'Edo',
24
+ styleSahelian: 'Saheliano',
25
+ sizeLabel: 'Tamanho do Assentamento',
26
+ hamlet: 'Povoado',
27
+ hamletHint: 'Pequena parada',
28
+ village: 'Aldeia',
29
+ villageHint: 'Centro local',
30
+ town: 'Vila',
31
+ townHint: 'Nó movimentado',
32
+ homesLabel: 'Número de Casas',
33
+ homesHint: 'Ajusta a quantidade de casas dentro do tamanho escolhido.',
34
+ servicesLabel: 'Serviços e Pontos de Interesse',
35
+ serviceListHint: 'Escolha serviços padrão ou adicione locais personalizados.',
36
+ newServicePlaceholder: 'Digite um novo local',
37
+ addService: 'Adicionar',
38
+ removeService: 'Remover',
39
+ serviceTavern: 'Taverna',
40
+ serviceSmithy: 'Forjaria',
41
+ serviceTemple: 'Templo',
42
+ serviceMarket: 'Mercado',
43
+ serviceStable: 'Estábulo',
44
+ serviceHall: 'Sede Comunitária',
45
+ generate: 'Gerar Mapa Novamente',
46
+ mapRegionLabel: 'Mapa de Assentamento RPG Editável',
47
+ mapSummary: 'Planta do Povoado',
48
+ buildings: 'Edifícios',
49
+ paths: 'Caminhos',
50
+ services: 'Serviços',
51
+ terrain: 'Água',
52
+ legendLabel: 'Legenda',
53
+ legendHome: 'Casa',
54
+ legendService: 'Serviço',
55
+ legendPath: 'Estrada',
56
+ legendWater: 'Água',
57
+ legendWild: 'Floresta',
58
+ editLabel: 'Edição Direta da Célula',
59
+ toolSelect: 'Inspecionar',
60
+ toolBuilding: 'Edifício',
61
+ toolPath: 'Estrada',
62
+ toolWater: 'Água',
63
+ toolTree: 'Árvore',
64
+ toolErase: 'Apagar',
65
+ serviceSelectLabel: 'Nova Marcação de Serviço',
66
+ clickHint: 'Clique com o botão direito ou mantenha pressionado numa célula para abrir o menu contextual.',
67
+ selectedHint: 'Célula selecionada:',
68
+ shareLink: 'Copiar Link de Compartilhamento',
69
+ linkCopied: 'Link copiado para a área de transferência',
70
+ exportPng: 'PNG',
71
+ exportSvg: 'SVG',
72
+ exportJson: 'Salvar JSON',
73
+ importJson: 'Abrir JSON',
74
+ importError: 'Arquivo de mapa de assentamento inválido.',
75
+ mapData: 'Dados do Mapa',
76
+ readyBadge: 'Pronto para Exploração',
77
+ serviceNone: 'Sem Marcação',
78
+ contextMenuLabel: 'Menu de Ações da Célula',
79
+ contextInspect: 'Inspecionar Célula',
80
+ contextBuilding: 'Adicionar Edifício',
81
+ contextPath: 'Adicionar Estrada',
82
+ contextWater: 'Adicionar Água',
83
+ contextTree: 'Adicionar Árvore',
84
+ contextErase: 'Apagar Célula',
85
+ };
86
+
87
+ const faq = [
88
+ { question: 'O que posso criar com este Gerador de Mapas de Assentamento e Exploração RPG?', answer: 'Você pode gerar plantas detalhadas e claras de vilas, aldeias e povoados para suas sessões de RPG e construção de mundo. Casas, estradas, água e vegetação são dispostos automaticamente de forma lógica.' },
89
+ { question: 'O layout muda ao alterar a semente?', answer: 'Sim. A mesma semente e configurações recriam exatamente o mesmo mapa inicial. Isso facilita salvar mapas nas suas anotações e compartilhá-los com os jogadores.' },
90
+ { question: 'Quais tamanhos de assentamento estão disponíveis?', answer: 'Você pode escolher entre três tamanhos: povoado, aldeia e vila. A densidade de casas, caminhos e distribuição de serviços escalam automaticamente.' },
91
+ { question: 'Posso personalizar o estilo arquitetônico?', answer: 'Sim, há 7 estilos disponíveis: Medieval, Edo, Saheliano, Enxaimel, Pedra, Litorâneo e Montanhoso. O estilo altera telhados, mures e vegetação.' },
92
+ { question: 'Estão disponíveis diferentes tipos de paisagem?', answer: 'Você pode situar o povoado em floresta, planície, costa, rio ou montanha para integrá-lo naturally ao mapa do mundo.' },
93
+ { question: 'Como os serviços como tavernas são posicionados?', answer: 'Serviços como tavernas, forjarias e mercados são posicionados com base em pesos lógicos no centro ou nas margens da vila.' },
94
+ { question: 'Posso adicionar meus próprios pontos de interesse?', answer: 'Sim, você pode adicionar locais personalizados que aparecem como placas visíveis acima dos edifícios e são salvos no estado do mapa.' },
95
+ { question: 'Posso editar o mapa gerado manualmente?', answer: 'Com certeza. Usando o menu contextual em qualquer célula, você pode adicionar ou apagar edifícios, caminhos, água e árvores diretamente.' },
96
+ { question: 'Como funcionam as conexões de caminhos e água ao editar?', answer: 'Cruzamentos de estradas e células de água adjacentes conectam-se automaticamente em formas suaves sem bordas irregular.' },
97
+ { question: 'Como salvar ou compartilhar meu mapa?', answer: 'Você pode copiar um link editável direto ou salvar o arquivo JSON completo para carregar novamente mais tarde.' },
98
+ { question: 'Quais formatos de exportação são suportados?', answer: 'PNG para uso em VTT, SVG para impressão e edição vetorial, e JSON para preservar todos os dados editáveis.' },
99
+ ];
100
+
101
+ const howTo = [
102
+ { name: 'Escolha uma semente', text: 'Use o nome gerado ou digite sua própria palavra para definir o padrão base.' },
103
+ { name: 'Selecione a paisagem e o estilo', text: 'Ajuste o ambiente e a arquitetura para combinar com o tom da sua campanha.' },
104
+ { name: 'Defina o tamanho do assentamento', text: 'Escolha entre povoado, aldeia ou vila e ajuste a quantidade de casas.' },
105
+ { name: 'Adicione serviços', text: 'Ative edifícios padrão ou adicione pontos de interesse personalizados.' },
106
+ { name: 'Edite célula por célula', text: 'Use o menu contextual para modificar diretamente estradas, casas ou água.' },
107
+ { name: 'Exporte e compartilhe', text: 'Copie o link ou salve o mapa como PNG, SVG ou JSON.' },
108
+ ];
109
+
110
+ const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
111
+ const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Gerador de Mapas de Assentamento e Exploração RPG', operatingSystem: 'All', applicationCategory: 'GameApplication', description: 'Gerador web de mapas de assentamentos RPG com sementes determinísticas e edição por célula.' };
112
+ const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Como criar um mapa de assentamento RPG', step: howTo.map((item) => ({ '@type': 'HowToStep', name: item.name, text: item.text })) };
113
+
114
+ const schemas: WithContext<SoftwareApplication | FAQPage | HowTo>[] = [faqSchema, appSchema, howToSchema];
115
+
116
+ export const content: SettlementMapLocaleContent = {
117
+ slug: 'gerador-de-mapas-de-assentamento-e-exploracao-rpg',
118
+ title: 'Gerador de Mapas de Assentamento e Exploração RPG',
119
+ description: 'Gere mapas de exploração para aldeias e vilas RPG com sementes determinísticas, 7 estilos e edição de células.',
120
+ ui,
121
+ seo: [
122
+ { type: 'title', text: 'Crie Assentamentos Vivos para suas Sessões RPG', level: 2 },
123
+ { type: 'paragraph', html: 'Desenhe povoados completos, aldeias e vilas com redes de estradas, praças e pontos de interesse para suas aventuras e campanhas de fantasia. Este gerador no navegador cria mapas vistos de cima onde casas, caminhos, praças centrais, corpos d\'água e vegetação formam um local coerente, rico em detalhes e pronto para ser explorado pelos jogadores. Ideal para uma pausa na viagem, uma vila cheia de facções rivais, a base principal da aventura ou um centro regional repleto de segredos, oportunidades e missões para seu grupo de RPG. Tudo isso de forma rápida, intuitiva e sem complicações.' },
124
+ { type: 'title', text: 'Sementes Determinísticas e Reproduzíveis', level: 2 },
125
+ { type: 'paragraph', html: 'Cada assentamento gerado baseia-se em uma semente memorável de palavras. A mesma semente e configurações recriam exatamente o mesmo mapa inicial sempre. Isso é perfeito para Mestres do Jogo que desejam salvar suas anotações para sessões futuras ou compartilhar mapas com jogadores sem que haja diferenças na estrutura básica do povoado. Ao trocar a semente, você descobre instantaneamente um traçado urbano inédito, mantendo controle total sobre a criação do mapa e suas variações.' },
126
+ { type: 'list', items: ['Nova semente gera um padrão único dentro do tamanho escolhido.', 'Totalmente reproduzível para o Mestre do Jogo e notas de campanha.', 'Mantém a lógica urbanística e as proporções espaciais.', 'Fácil de compartilhar com jogadores como ponto de partida da campanha.'] },
127
+ { type: 'title', text: 'Escala do Povoado à Vila Movimentada', level: 2 },
128
+ { type: 'paragraph', html: 'Escolha entre pequenos povoados, aldeias estruturadas ou vilas movimentadas com densidade e padrões de ruas ajustados ao tamanho do assentamento. Cada tamanho tem sua própria lógica de construção e intervalo de moradias, criando o cenário ideal para o nível e objetivos da sua aventura.' },
129
+ { type: 'table', headers: ['Tamanho', 'Casas', 'Caráter', 'Uso em campanha'], rows: [['Povoado', '3 a 18', 'Pequeno e isolado', 'Parada de viagem ou comunidade distante'], ['Aldeia', '4 a 28', 'Centro local', 'Base principal e ponto de partida'], ['Vila', '6 a 42', 'Denso e comercial', 'Hub regional ou local de investigação']] },
130
+ { type: 'title', text: 'Sete Estilos Arquitetônicos para Atmosfera', level: 2 },
131
+ { type: 'paragraph', html: 'Dê a cada assentamento uma identidade visual única e marcante. Medieval, Edo, Saheliano, Enxaimel, Pedra, Litorâneo e Montanhoso alteram os telhados, cores de parede, materiais e vegetação ao redor para refletir a cultura e geografia da região no mundo de fantasia. Cada estilo adiciona autenticidade e riqueza visual à exploração dos jogadores durante as sessões.' },
132
+ { type: 'list', items: ['Medieval e Enxaimel para vilas de fantasia clássica e vilarejos florestais.', 'Pedra e Montanhoso para áreas elevadas, fortalezas e locais rochosos.', 'Litorâneo para a costa com vegetação praiana e clima marítimo.', 'Edo para inspiração oriental, construções em madeira e telhados distintos.', 'Saheliano para clima árido, estruturas de barro e oásis do deserto.'] },
133
+ { type: 'title', text: 'Posicionamento Inteligente de Serviços e Placas', level: 2 },
134
+ { type: 'paragraph', html: 'Tavernas, forjarias, templos e sedes comunitárias são distribuídos com lógica urbanística entre o centro e as vias de saída com base em pesos ponderados. Locais personalizados adicionados por você aparecem diretamente como placas claras acima dos telhados dos edifícios, facilitando a orientação e a imersão na partida.' },
135
+ { type: 'title', text: 'Integração com a Paisagem do Mundo', level: 2 },
136
+ { type: 'paragraph', html: 'Situe a vila em áreas de floresta, planície, costa, rio ou montanha para integrá-la naturalmente à natureza circundante e aos blocos do mapa do seu mundo. A vegetação e os cursos d\'água ajustam-se automaticamente ao ambiente escolhido.' },
137
+ { type: 'title', text: 'Edição Direta por Célula no Navegador', level: 2 },
138
+ { type: 'paragraph', html: 'Altere caminhos, casas, água e árvores diretamente clicando com o botão direito ou toque longo em dispositivos móveis. Modifique o mapa gerado para atender às necessidades específicas do seu cenário de aventura, adicionando pontos essenciais para a história. Isso garante total flexibilidade sem depender de outros programas.' },
139
+ { type: 'list', items: ['Adicione locais importantes, torres de vigia ou empalissadas.', 'Edite sem programas extras ou software complexo.', 'Salva todas as alterações manuais diretamente no estado do mapa.', 'Funciona perfeitamente em PC, laptops, tablets e telas sensíveis ao toque.'] },
140
+ { type: 'title', text: 'Caminhos e Água Dinâmicos e Conectados', level: 2 },
141
+ { type: 'paragraph', html: 'Cruzamentos e corpos d\'água conectam-se automaticamente em formas suaves, estéticas e naturais sem bordas irregulares, gerando um mapa com acabamento profissional para seus jogos.' },
142
+ { type: 'title', text: 'Salvar e Compartilhar para Próximas Sessões', level: 2 },
143
+ { type: 'paragraph', html: 'Copie facilmente o link editável ou salve o estado completo em arquivo JSON para carregar novamente mais tarde e continuar editando em partidas futuras sem perder nenhum detalhe importante.' },
144
+ { type: 'title', text: 'Formatos de Exportação para Cada Necessidade', level: 2 },
145
+ { type: 'table', headers: ['Formato', 'Uso', 'Conteúdo'], rows: [['PNG', 'Mesa virtual e notas rápidas', 'Imagem em alta resolução pronta para exibição'], ['SVG', 'Impressão e edição vetorial', 'Vetores nítidos sem perda de qualidade'], ['JSON', 'Edição futura e backup', 'Dados completos editáveis de todas as células']] },
146
+ { type: 'tip', title: 'Dica de Preparação para o Mestre', html: 'Ajuste o estilo, tamanho e ambiente, adicione pontos de interesse principais e finalize com o editor direto antes do início da partida.' },
147
+ ],
148
+ faq,
149
+ bibliography,
150
+ howTo,
151
+ schemas,
152
+ };
@@ -0,0 +1,152 @@
1
+ import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
3
+ import type { SettlementMapLocaleContent, SettlementMapUI } from '../entry';
4
+
5
+ const ui: SettlementMapUI = {
6
+ intro: 'Генерируйте и редактируйте карты поселений для исследований в НРИ. Выберите ландшафт, размер, архитектурный стиль и изменяйте клетки через контекстное меню.',
7
+ seedLabel: 'Сид генерации и название поселения',
8
+ seedHint: 'Определяет случайный, но воспроизводимый узор улиц и зданий.',
9
+ randomSeed: 'Сгенерировать новое имя',
10
+ environmentLabel: 'Окружающий ландшафт',
11
+ forest: 'Лес',
12
+ plains: 'Равнина',
13
+ coast: 'Побережье',
14
+ river: 'Река',
15
+ mountain: 'Горы',
16
+ styleLabel: 'Архитектурный стиль',
17
+ styleHint: 'Меняет вид крыш, стен, материалов и растительности поселения.',
18
+ styleTimber: 'Фахверк',
19
+ styleStone: 'Камень',
20
+ styleCoastal: 'Прибрежный',
21
+ styleHighland: 'Горный',
22
+ styleMedieval: 'Средневековый',
23
+ styleEdo: 'Эдо',
24
+ styleSahelian: 'Сахельский',
25
+ sizeLabel: 'Размер поселения',
26
+ hamlet: 'Деревушка',
27
+ hamletHint: 'Малый привал',
28
+ village: 'Деревня',
29
+ villageHint: 'Местный центр',
30
+ town: 'Городок',
31
+ townHint: 'Оживленный узел',
32
+ homesLabel: 'Количество домов',
33
+ homesHint: 'Настраивает число жилых домов в пределах выбранного размера.',
34
+ servicesLabel: 'Заведения и достопримечательности',
35
+ serviceListHint: 'Выберите базовые здания или добавьте собственные именованные объекты.',
36
+ newServicePlaceholder: 'Введите название объекта',
37
+ addService: 'Добавить',
38
+ removeService: 'Удалить',
39
+ serviceTavern: 'Таверна',
40
+ serviceSmithy: 'Кузница',
41
+ serviceTemple: 'Храм',
42
+ serviceMarket: 'Рынок',
43
+ serviceStable: 'Конюшня',
44
+ serviceHall: 'Ратуша',
45
+ generate: 'Перегенерировать карту',
46
+ mapRegionLabel: 'Редактируемая карта поселения НРИ',
47
+ mapSummary: 'План поселения',
48
+ buildings: 'Здания',
49
+ paths: 'Дороги',
50
+ services: 'Заведения',
51
+ terrain: 'Вода',
52
+ legendLabel: 'Легенда карты',
53
+ legendHome: 'Дом',
54
+ legendService: 'Заведение',
55
+ legendPath: 'Дорога',
56
+ legendWater: 'Вода',
57
+ legendWild: 'Лес',
58
+ editLabel: 'Прямое редактирование клеток',
59
+ toolSelect: 'Осмотреть',
60
+ toolBuilding: 'Здание',
61
+ toolPath: 'Дорога',
62
+ toolWater: 'Вода',
63
+ toolTree: 'Дерево',
64
+ toolErase: 'Стереть',
65
+ serviceSelectLabel: 'Новая метка заведения',
66
+ clickHint: 'Нажмите правой кнопкой мыши или удерживайте клетку для вызова меню.',
67
+ selectedHint: 'Выбранная клетка:',
68
+ shareLink: 'Скопировать ссылку',
69
+ linkCopied: 'Ссылка скопирована в буфер обмена',
70
+ exportPng: 'PNG',
71
+ exportSvg: 'SVG',
72
+ exportJson: 'Сохранить JSON',
73
+ importJson: 'Открыть JSON',
74
+ importError: 'Недействительный файл карты поселения.',
75
+ mapData: 'Данные карты',
76
+ readyBadge: 'Готово к исследованию',
77
+ serviceNone: 'Без метки',
78
+ contextMenuLabel: 'Меню действий с клеткой',
79
+ contextInspect: 'Осмотреть клетку',
80
+ contextBuilding: 'Добавить здание',
81
+ contextPath: 'Добавить дорогу',
82
+ contextWater: 'Добавить воду',
83
+ contextTree: 'Добавить дерево',
84
+ contextErase: 'Стереть клетку',
85
+ };
86
+
87
+ const faq = [
88
+ { question: 'Что позволяет создать этот генератор карт поселений и исследований НРИ?', answer: 'Вы можете генерировать подробные и наглядные планы деревень, поселков и городков для ваших игр и миростроения. Здания, дороги, водоемы и растительность автоматически размещаются по логичным правилам.' },
89
+ { question: 'Меняется ли план при смене сида генерации?', answer: 'Да. Один и тот же сид и настройки дают точно такую же исходную карту. Это позволяет легко сохранять карты в заметках и делиться ими с игроками.' },
90
+ { question: 'Какие размеры поселений доступны?', answer: 'Вы можете выбрать один из трех размеров: деревушка, деревня и городок. Плотность застройки, сеть дорог и инфраструктура масштабируются автоматически.' },
91
+ { question: 'Можно ли настраивать архитектурный стиль?', answer: 'Да, доступно 7 стилей: Средневековый, Эдо, Сахельский, Фахверк, Камень, Прибрежный и Горный. Стиль меняет крыши, стены и тип растительности.' },
92
+ { question: 'Доступны ли разные варианты ландшафта?', answer: 'Вы можете разместить поселение в лесу, на равнине, побережье, у реки или в горах для органичной интеграции в карту мира.' },
93
+ { question: 'Как размещаются заведения вроде таверн?', answer: 'Таверны, кузницы и рынки распределяются с учетом инфраструктурных весов в центре или на окраинах поселения.' },
94
+ { question: 'Можно ли добавлять свои уникальные объекты?', answer: 'Да, вы можете добавлять собственные именованные места, которые отображаются как читаемые вывески над зданиями и сохраняются в карте.' },
95
+ { question: 'Можно ли редактировать карту вручную?', answer: 'Конечно. Через контекстное меню на любой клетке вы можете напрямую добавлять или удалять здания, дороги, воду и деревья.' },
96
+ { question: 'Как соединяются дороги и вода при редактировании?', answer: 'Перекрестки дорог и соседние клетки воды автоматически объединяются в гладкие формы без неровных краев.' },
97
+ { question: 'Как сохранить карту или поделиться ей?', answer: 'Вы можете скопировать прямую ссылку или сохранить полный файл JSON для последующей загрузки.' },
98
+ { question: 'Какие форматы экспорта поддерживаются?', answer: 'PNG для виртуальных столов VTT, SVG для печати и векторной графики, и JSON для сохранения всех редактируемых данных.' },
99
+ ];
100
+
101
+ const howTo = [
102
+ { name: 'Выберите сид генерации', text: 'Используйте сгенерированное имя или введите свое слово для создания начального узора.' },
103
+ { name: 'Выберите ландшафт и стиль', text: 'Настройте окружение и архитектуру под атмосферу вашей кампании.' },
104
+ { name: 'Задайте размер поселения', text: 'Выберите деревушку, деревню или городок и при необходимости скорректируйте число домов.' },
105
+ { name: 'Добавьте заведения', text: 'Включите базовые здания или добавьте уникальные именованные объекты.' },
106
+ { name: 'Редактируйте клетки', text: 'Используйте контекстное меню для прямого изменения дорог, зданий или воды.' },
107
+ { name: 'Экспортируйте и поделитесь', text: 'Скопируйте ссылку или сохраните карту в формате PNG, SVG или JSON.' },
108
+ ];
109
+
110
+ const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
111
+ const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: 'Генератор карт поселений и исследований НРИ', operatingSystem: 'All', applicationCategory: 'GameApplication', description: 'Браузерный генератор карт поселений НРИ с воспроизводимыми сидами и точечным редактированием.' };
112
+ const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: 'Как создать карту поселения НРИ', step: howTo.map((item) => ({ '@type': 'HowToStep', name: item.name, text: item.text })) };
113
+
114
+ const schemas: WithContext<SoftwareApplication | FAQPage | HowTo>[] = [faqSchema, appSchema, howToSchema];
115
+
116
+ export const content: SettlementMapLocaleContent = {
117
+ slug: 'generator-kart-poselenij-i-issledovanij-rpg',
118
+ title: 'Генератор карт поселений и исследований НРИ',
119
+ description: 'Генерируйте карты деревень и городков для НРИ с воспроводимыми сидами, 7 стилями и точечным редактированием.',
120
+ ui,
121
+ seo: [
122
+ { type: 'title', text: 'Создавайте живые поселения для НРИ', level: 2 },
123
+ { type: 'paragraph', html: 'Проектируйте полноценные деревни, хутора и городки с продуманными сетями улиц, центральными площадями и ключевыми объектами для ваших настольных ролевых игр и миростроения. Этот браузерный генератор создает наглядные карты вида сверху, где жилые дома, дороги, рыночные площади, водоемы и зеленые насаждения объединяются в единое, богатое деталями и убедительное пространство. Это идеальный инструмент для быстрой остановки на тракте, стартовой деревни персонажей, резиденции гильдии или крупного торгового центра, наполненного конкурирующими фракциями, тайнами, интригами и увлекательными квестами. Каждая сгенерированная локация выглядит естественно, гармонично и полностью готовой к проведению захватывающей игры.' },
124
+ { type: 'title', text: 'Воспроизводимые сиды генерации', level: 2 },
125
+ { type: 'paragraph', html: 'Каждое сгенерированное поселение строится на основе запоминаемого текстового сида. Один и тот же сид и настройки гарантируют точное воссоздание исходной карты каждый раз. Это невероятно удобно для ведущих и игроков, которые хотят сохранить свои подробные заметки для будущих сессий или поделиться готовой картой с другими ведущими без риска появления любых расхождений в базовой планировке. Меняя сид, вы мгновенно открываете совершенно новый, уникальный узор улиц и застройки, сохраняя полный контроль над процессом создания своего фантастического мира.' },
126
+ { type: 'list', items: ['Новый сид создает уникальный узор улиц и домов в рамках выбранного размера.', 'Полная воспроизводимость для заметок ведущего и материалов кампании.', 'Сохранение логики градостроительства и пространственных пропорций.', 'Удобный обмен с игроками как стабильная отправная точка.'] },
127
+ { type: 'title', text: 'Масштаб от деревушки до людного городка', level: 2 },
128
+ { type: 'paragraph', html: 'Выбирайте от небольших придорожных хуторов до крупных городков с переменной плотностью застройки и узорами улиц, соответствующими масштабу поселения. Каждый размер обладает собственной логикой строительства и диапазоном жилых зданий, формируя идеальную сцену для приключений.' },
129
+ { type: 'table', headers: ['Размер', 'Дома', 'Характер', 'Применение в кампании'], rows: [['Деревушка', '3-18', 'Малая и тихая', 'Привал на дороге или изолированное поселение'], ['Деревня', '4-28', 'Местный центр', 'База игроков и стартовая локация'], ['Городок', '6-42', 'Плотный и людный', 'Региональный торговый узел и место расследований']] },
130
+ { type: 'title', text: 'Семь архитектурных стилей для атмосферы', level: 2 },
131
+ { type: 'paragraph', html: 'Придайте каждому поселению уникальную визуальную идентичность и атмосферу. Средневековый, Эдо, Сахельский, Фахверк, Камень, Прибрежный и Горный стили меняют крыши, материалы стен, цветовые акценты и окружающую растительность, чтобы точно отразить культуру и географию региона вашего фэнтези-мира. Каждая архитектурная деталь подчеркивает уникальность пространства.' },
132
+ { type: 'list', items: ['Средневековый и Фахверк для классического фэнтези и лесных деревень.', 'Камень и Горный для суровых горных районов, крепостей и застав.', 'Прибрежный для портовых поселков с характерной прибрежной флорой.', 'Эдо для восточных сеттингов, деревянных конструкций и узнаваемых крыш.', 'Сахельский для жарких регионов, глинобитных построек и пустынных оазисов.'] },
133
+ { type: 'title', text: 'Умное размещение заведений и вывесок', level: 2 },
134
+ { type: 'paragraph', html: 'Таверны, кузницы, храмы и ратуши распределяются с учетом логики застройки между центром и окраинами на основе весовых алгоритмов. Добавленные вами уникальные объекты отображаются в виде четких и крупно напечатанных вывесок прямо над крышами зданий, облегчая ориентацию в ходе игры и усиливая погружение игроков.' },
135
+ { type: 'title', text: 'Интеграция с ландшафтом мира', level: 2 },
136
+ { type: 'paragraph', html: 'Размещайте поселения в лесу, на равнине, побережье, у реки или в горах для органичного вписывания в окружающую дикую природу вашей карты мира. Растительность и речной рельеф автоматически подстраиваются под выбранную природную зону.' },
137
+ { type: 'title', text: 'Прямое редактирование клеток в браузере', level: 2 },
138
+ { type: 'paragraph', html: 'Добавляйте и удаляйте дома, дороги, воду и деревья по клику правой кнопкой мыши или долгому нажатию на мобильных устройствах. Настраивайте карту под специфические нужды сюжетного сценария, добавляя ключевые элементы прямо на ходу без сторонних редакторов и сложных инструментов.' },
139
+ { type: 'list', items: ['Добавление ключевых мест, сторожевых башен или палисадов.', 'Быстрая правка без сторонних графических программ.', 'Сохранение всех ручных изменений прямо в данных карты.', 'Плавная работа на ПК, планшетах и смартфонах.'] },
140
+ { type: 'title', text: 'Динамические дороги и соединения воды', level: 2 },
141
+ { type: 'paragraph', html: 'Перекрестки улиц и соседние клетки водоемов объединяются автоматически в плавные, эстетичные и естественные формы без рваных краев, формируя аккуратный и профессиональный план поселения.' },
142
+ { type: 'title', text: 'Сохранение и обмен для будущих сессий', level: 2 },
143
+ { type: 'paragraph', html: 'Легко копируйте прямую ссылку для редактирования или сохраняйте полный файл JSON, чтобы продолжить работу над поселением на следующих играх без потери важных деталей.' },
144
+ { type: 'title', text: 'Форматы экспорта для любых задач', level: 2 },
145
+ { type: 'table', headers: ['Формат', 'Назначение', 'Содержимое'], rows: [['PNG', 'Онлайн-столы VTT и заметки', 'Изображение высокого разрешения'], ['SVG', 'Печать и векторная графика', 'Четкий вектор без потери качества'], ['JSON', 'Дальнейшее редактирование', 'Полные данные всех клеток карты']] },
146
+ { type: 'tip', title: 'Совет по подготовке для ведущего', html: 'Задайте сид, размер и ландшафт, добавьте ключевые объекты и внесите точечные правки перед началом сессии.' },
147
+ ],
148
+ faq,
149
+ bibliography,
150
+ howTo,
151
+ schemas,
152
+ };