|
|
| (не показано 14 промежуточных версий 2 участников) |
| Строка 1: |
Строка 1: |
| {{#seo: | | {{docpage}}{{TOC hidden}} |
| |description=Добро пожаловать в Справочник Ролей на Space Station 14 корпорации Nanotrasen! Здесь вы узнаете про роли в SS14 и найдете ответы на вопросы по игре.
| | {{OnLua|Сущность|module1=Сущность|module2=Сущность/поля|module3=GetField}} |
| |keywords=роли сс14, роли space station 14, роли ss14, сс14 роли, space station 14 профессии, space station 14 роли, ss14 профессии, ss14 роли
| |
| |type=article
| |
| |image=Logo-tall.png
| |
| |locale=ru_RU
| |
| }} | |
| <!--------------------------- Командование --------------------------->
| |
| {{таблица ролей | |
| |цвет = blue | |
| |ссылка = Командование | |
| |иконка = cmd_dep.png | |
| |заголовок = Командование | |
| |руководитель = Капитан
| |
| |канал = к
| |
| |сотрудник = Да
| |
| |руководства = [[Стандартные рабочие процедуры (Командование)]] • [[Задачи станции]]
| |
| |содержание =
| |
|
| |
|
| {{таблица ролей/содержание | | Модульный набор {{tl|Модуль:Сущность}} + {{tl|Модуль:Сущность/поля}} + {{tl|Модуль:GetField}} предназначен для: |
| |цвет = blue | | * автоматической сборки карточек сущностей (компонентов и прототипов) по их ID; |
| |ссылка = Капитан
| | * описания полей в шаблонах компонентов (какие поля идут в карточку, как подписаны); |
| |заголовок = Капитан
| | * удобного доступа к данным из JSON (как простыми значениями, так и готовыми вызовами шаблонов). |
| |иконка = Капитан.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | Ниже описан общий принцип работы и отдельные режимы. |
| |цвет = blue
| |
| |ссылка = Глава персонала
| |
| |заголовок = Глава персонала
| |
| |иконка = Глава персонала.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | == Общий принцип работы == |
| |цвет = blue | | * В шаблонах компонентов/прототипов (<code>Template:Component/...</code>, <code>Template:prototype/...</code>) через {{tl|Модуль:Сущность/поля}} описываются поля: |
| |ссылка = Глава службы безопасности
| | ** '''лейблы''' (<code>cardLabel_*</code>) и '''содержимое''' (<code>cardContent_*</code>), заголовки (<code>title_*</code>) и т. п.; |
| |заголовок = Глава СБ | | ** '''мета‑информация''' о том, какие ключи доступны для <code>card</code> / <code>title</code> и в каком порядке. |
| |иконка = Глава службы безопасности.png
| | * {{tl|Модуль:Сущность}} по ID сущности: |
| }} | | ** находит связанные с ней компоненты и прототипы по JSON‑данным; |
| | ** для каждого компонента/прототипа читает шаблоны и метаданные; |
| | ** собирает все поля в единую структуру; |
| | ** формирует один вызов карточки <code><nowiki>{{карточка/сущность|...}}</nowiki></code> (и блоки заголовков). |
| | * Внутри полей можно писать вики‑параметры <code>{{{...}}}</code> и вызывать дополнительные модули. |
| | * {{tl|Модуль:GetField}} даёт доступ к JSON‑данным на низком уровне: |
| | ** как «расплющенный» набор параметров (<code>flattenField</code>); |
| | ** как отдельные значения (<code>get</code>); |
| | ** как готовые вызовы шаблонов с нужными параметрами (<code>getTpl</code>, <code>getTplProto</code>). |
|
| |
|
| {{таблица ролей/содержание
| | == Модуль: Сущность/поля == |
| |цвет = blue
| | Шаблоны компонентов используют модуль <code>Сущность/поля</code> для объявления полей, которые будут собираться в карточку. |
| |ссылка = Старший инженер
| |
| |заголовок = Старший инженер
| |
| |иконка = Старший инженер.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | Пример шаблона компонента: |
| |цвет = blue
| |
| |ссылка = Научный руководитель
| |
| |заголовок = Научный руководитель
| |
| |иконка = Научный руководитель.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | <pre> |
| |цвет = blue | | {{#invoke:Сущность/поля|main |
| |ссылка = Главный врач | | |cardLabel_Стоимость = [[Стоимость]] |
| |заголовок = Главный врач | | |cardContent_Стоимость = '''{{{price}}}''' |
| |иконка = Главный врач.png
| |
| }} | | }} |
| | </pre> |
|
| |
|
| {{таблица ролей/содержание
| | Другой компонент может добавлять тот же ключ: |
| |цвет = blue
| |
| |ссылка = Квартирмейстер
| |
| |заголовок = Квартирмейстер
| |
| |иконка = Квартирмейстер.png
| |
| }}
| |
|
| |
|
| | <pre> |
| | {{#invoke:Сущность/поля|main |
| | |cardContent_Стоимость = '''{{{superPrice}}}''' |
| }} | | }} |
| <!--------------------------- Юридический Департамент ---------------------------> | | </pre> |
| {{таблица ролей
| |
| |цвет = turquoise
| |
| |ссылка = Юридический департамент
| |
| |иконка = law_dep.png
| |
| |заголовок = Юридический департамент
| |
| |руководитель = Магистрат
| |
| |канал = о
| |
| |сотрудник = Да
| |
| |руководства = [[Корпоративный Закон]] • [[Стандартные рабочие процедуры (Юридический департамент)]] • [[СРП|Стандартные рабочие процедуры]]
| |
| |содержание =
| |
|
| |
|
| {{таблица ролей/содержание
| | Особенности: |
| |цвет = turquoise
| | * Пара <code>cardLabel_<Ключ></code> / <code>cardContent_<Ключ></code> описывает одну строку карточки (лейбл и содержимое). |
| |ссылка = Магистрат | | * Если несколько шаблонов дают один и тот же <code>cardContent_Ключ</code>, содержимое '''объединяется''', а лейбл берётся первый непустой. |
| |заголовок = Магистрат
| | * То же относится к другим режимам, перечисленным в мета‑JSON шаблона (разделы <code>card</code>, <code>title</code> и т. п.), которые читает {{tl|Модуль:Сущность}}. |
| |иконка = Магистрат.png
| |
| }} | |
|
| |
|
| {{таблица ролей/содержание
| | == Модуль: Сущность == |
| |цвет = turquoise
| |
| |ссылка = Агент внутренних дел
| |
| |заголовок = Агент внутренних дел
| |
| |иконка = Агент внутренних дел.png
| |
| }}
| |
|
| |
|
| }}
| | === p.get: основная сборка карточки === |
| <!--------------------------- Отдел Службы Безопасности --------------------------->
| | Вызов: |
| {{таблица ролей
| |
| |цвет = red
| |
| |ссылка = Служба безопасности
| |
| |иконка = sec_dep.png
| |
| |заголовок = Служба безопасности
| |
| |руководитель = Глава службы безопасности
| |
| |канал = о
| |
| |сотрудник = Да
| |
| |руководства = [[Корпоративный Закон]] • [[Стандартные рабочие процедуры (Служба безопасности)]] • [[Контрабанда | Контрабанда]] • [[Инвентарь службы безопасности]]
| |
| |содержание =
| |
|
| |
|
| {{таблица ролей/содержание | | <pre> |
| |цвет = red | | {{#invoke:Сущность|get |
| |ссылка = Глава службы безопасности | | | <ID или список ID> |
| |заголовок = Глава СБ | | | blacklist=... |
| |иконка = Глава Службы Безопасности.png | | | whitelist=... |
| | | ignoreComponents=... |
| | | ignorePrototypes=... |
| }} | | }} |
| | </pre> |
|
| |
|
| {{таблица ролей/содержание
| | * '''1‑й параметр''' — <code>id</code> или список <code>id</code> через запятую. |
| |цвет = red
| | * По этому ID модуль находит: |
| |ссылка = Смотритель
| | ** '''компоненты''' из <code>component.json</code>; |
| |заголовок = Смотритель
| | ** '''прототипы''' из <code>prototype.json</code>; |
| |иконка = Смотритель.png
| | и для каждого — соответствующие шаблоны <code>Template:component/...</code> / <code>Template:prototype/...</code>. |
| }}
| | * Шаблоны описывают свои поля через <code>Сущность/поля</code>. |
|
| |
|
| {{таблица ролей/содержание | | После сборки модуль: |
| |цвет = red | | * формирует один вызов <code><nowiki>{{карточка/сущность|...}}</nowiki></code> со всеми разделами и полями; |
| |ссылка = Офицер СБ
| | * дополняет выход при необходимости (блоки title и т. п.); |
| |заголовок = Офицер СБ
| | * прогоняет результат через <code>frame:preprocess</code>, чтобы отрендерить разметку. |
| |иконка = Офицер службы безопасности.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | Параметры фильтрации: |
| |цвет = red
| | * {{пм|blacklist}} — список <code>режим_Ключ</code> через запятую, чтобы исключить поле: |
| |ссылка = Детектив | | ** пример: <code>blacklist=card_Наносит повреждения,title_Что‑то</code>; |
| |заголовок = Детектив | | * {{пм|whitelist}} — наоборот, список разрешённых <code>режим_Ключ</code>, остальные игнорируются; |
| |иконка = Детектив.png | | * {{пм|ignoreComponents}} / {{пм|ignoreComponent}} — список имён компонентов через запятую, которые полностью игнорируются для этого вызова; |
| }} | | * {{пм|ignorePrototypes}} / {{пм|ignorePrototype}} — аналогично для прототипов. |
|
| |
|
| {{таблица ролей/содержание
| | Пример простой сборки (через шаблон‑обёртку): |
| |цвет = red
| |
| |ссылка = Пилот
| |
| |заголовок = Пилот
| |
| |иконка = Пилот службы безопасности.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | <pre> |
| |цвет = red
| | {{Сущность/карточка|MyEntityId}} |
| |ссылка = Кадет СБ | | </pre> |
| |заголовок = Кадет СБ
| |
| |иконка = Кадет службы безопасности.png
| |
| }} | |
|
| |
|
| }}
| | где в шаблоне <code>Сущность/карточка</code> внутри: |
| <!--------------------------- Медицинский отдел ---------------------------> | |
| {{таблица ролей
| |
| |цвет = skyblue
| |
| |ссылка = Медицинский отдел
| |
| |иконка = med_dep.png
| |
| |заголовок = Медицинский отдел
| |
| |руководитель = Главный врач
| |
| |канал = м
| |
| |сотрудник = Да
| |
| |руководства = [[Медицина]] • [[Химия]] • [[Стандартные рабочие процедуры (Медицинский отдел)]] • [[Медицинский инвентарь]] • [[Таблица психических заболеваний]]
| |
| |содержание =
| |
|
| |
|
| {{таблица ролей/содержание | | <pre> |
| |цвет = skyblue | | {{#invoke:Сущность|get|{{{1}}}}} |
| |ссылка = Главный врач | | </pre> |
| |заголовок = Главный врач
| |
| |иконка = Главный врач.png
| |
| }} | |
|
| |
|
| {{таблица ролей/содержание
| | === p.preview: предпросмотр полей конкретного шаблона === |
| |цвет = skyblue
| | Используется для проверки, что компонент/прототип правильно описал свои поля. |
| |ссылка = Химик
| |
| |заголовок = Химик
| |
| |иконка = Химик.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | <pre> |
| |цвет = skyblue | | {{#invoke:Сущность|preview |
| |ссылка = Врач | | | Component/meleeWeapon |
| |заголовок = Врач
| |
| |иконка = Врач.png
| |
| }} | | }} |
| | </pre> |
|
| |
|
| {{таблица ролей/содержание
| | * Показывает, какие <code>card</code> / <code>title</code>‑поля объявлены в <code>Template:Component/meleeWeapon</code>. |
| |цвет = skyblue
| | * Удобно при разработке шаблонов компонентов. |
| |ссылка = Парамедик
| |
| |заголовок = Парамедик
| |
| |иконка = Парамедик.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | === p.jsonList: вывод JSON в виде списка === |
| |цвет = skyblue
| | Режим похож на стандартный <code>arraymap</code>, но работает с JSON. |
| |ссылка = Психолог
| |
| |заголовок = Психолог
| |
| |иконка = Психолог.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | <pre> |
| |цвет = skyblue | | {{#invoke:Сущность|jsonList |
| |ссылка = Интерн | | | <json или {{{...}}}> |
| |заголовок = Интерн | | | type = list / enum |
| |иконка = Интерн.png | | | prefix = * |
| | | sep = : |
| | | key_pattern = (.*) |
| | | key_replace = \1 |
| | | value_pattern = (.*) |
| | | value_replace = \1 |
| }} | | }} |
| | </pre> |
|
| |
|
| }}
| | Примеры JSON: |
| <!--------------------------- Научный Отдел --------------------------->
| |
| {{таблица ролей
| |
| |цвет = purple
| |
| |ссылка = Научный отдел
| |
| |иконка = sci_dep.png
| |
| |заголовок = Научный отдел
| |
| |руководитель = Научный руководитель
| |
| |канал = н
| |
| |сотрудник = Да
| |
| |руководства = [[Стандартные рабочие процедуры (Научный отдел)]] • [[Руководство по исследованию и разработке]] • [[Постройка компьютеров и машинерии]] • [[Робототехника|Руководство по робототехнике]] • [[Руководство по ксеноархеологии]] • [[Аномалистика|Руководство по аномалиям]]
| |
| |содержание =
| |
|
| |
|
| {{таблица ролей/содержание
| | <pre> <!-- <syntaxhighlight lang=json> --> |
| |цвет = purple
| | { |
| |ссылка = Научный руководитель
| | "Blunt": 10, |
| |заголовок = Научный руководитель
| | "Slash": 5 |
| |иконка = Научный руководитель.png
| | } |
| }} | | </pre> <!-- </syntaxhighlight> --> |
|
| |
|
| {{таблица ролей/содержание
| | или |
| |цвет = purple
| |
| |ссылка = Учёный
| |
| |заголовок = Учёный
| |
| |иконка = Учёный.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | <pre> <!-- <syntaxhighlight lang=json> --> |
| |цвет = purple
| | ["Knife", "Sword", "Bat"] |
| |ссылка = Научный ассистент
| | </pre> <!-- </syntaxhighlight> --> |
| |заголовок = Научный ассистент
| |
| |иконка = Научный ассистент.png
| |
| }}
| |
|
| |
|
| }} | | Основные опции: |
| <!--------------------------- Инженерный Отдел ---------------------------> | | * {{пм|type}}: |
| {{таблица ролей | | ** <code>list</code> — список строк (с префиксом, например <code>* </code>); |
| |цвет = yellow | | ** <code>enum</code> — перечисление через запятую (<code>A, B, C</code> без префикса). |
| |ссылка = Инженерный отдел | | * {{пм|prefix}} — префикс строки списка (по умолчанию <code>* </code>). |
| |иконка = eng_dep.png
| | * {{пм|sep}} — разделитель для <code>ключ: значение</code> (по умолчанию <code>: </code>). |
| |заголовок = Инженерный отдел | | * {{пм|key_pattern}} / {{пм|key_replace}} — regex и замена для ключей. |
| |руководитель = Старший инженер | | * {{пм|value_pattern}} / {{пм|value_replace}} — regex и замена для значений. |
| |канал = и
| |
| |сотрудник = Да | |
| |руководства = [[Стандартные рабочие процедуры (Инженерный отдел)|СРП Инженерии]] • [[Электроэнергия]] • [[Строительство]] • [[Руководство по взлому]] • [[Инженерный инвентарь]] • [[Руководство по атмосфере]] • [[Настройка камеры смешивания]] • [[Смешивание газов]] | |
| |содержание =
| |
|
| |
|
| {{таблица ролей/содержание
| | Дополнительно: |
| |цвет = yellow
| | * в шаблоне замены поддерживаются: |
| |ссылка = Старший инженер
| | ** <code>\1</code> — собственное значение (ключ или значение); |
| |заголовок = Старший инженер
| | ** <code>\2</code> в <code>value_replace</code> — '''сырой ключ''' (после <code>key_pattern</code>, но до <code>key_replace</code>); |
| |иконка = Старший инженер.png
| | ** <code>\2</code> в <code>key_replace</code> — итоговое отформатированное значение (после <code>value_replace</code>). |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | Пример, где сначала форматируем тип урона, а затем подставляем его в описание: |
| |цвет = yellow
| |
| |ссылка = Атмосферный техник
| |
| |заголовок = Атмосферный техник
| |
| |иконка = Атмосферный техник.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | <pre> |
| |цвет = yellow | | {{#invoke:Сущность|jsonList |
| |ссылка = Инженер | | | {{{damage.types}}} |
| |заголовок = Инженер | | | type = enum |
| |иконка = Инженер.png | | | key_replace = <nowiki>\1</nowiki> <!-- "Blunt" --> |
| | | value_replace = <nowiki>'''\1''' \2</nowiki> <!-- "'''10''' Blunt" --> |
| }} | | }} |
| | </pre> |
|
| |
|
| {{таблица ролей/содержание
| | === p.json: превращение JSON в вызовы шаблонов === |
| |цвет = yellow
| | Режим для случаев, когда в JSON лежит список эффектов/объектов, и нужно по каждому вызвать отдельный шаблон. |
| |ссылка = Технический ассистент
| |
| |заголовок = Технический ассистент
| |
| |иконка = Технический ассистент.png
| |
| }}
| |
|
| |
|
| | <pre> |
| | {{#invoke:Сущность|json |
| | | <json или {{{...}}}> |
| | | <путь_к_шаблону> |
| }} | | }} |
| <!--------------------------- Отдел Снабжения ---------------------------> | | </pre> |
| {{таблица ролей
| |
| |цвет = brown
| |
| |ссылка = Отдел снабжения
| |
| |иконка = cargo_dep.png
| |
| |заголовок = Отдел снабжения
| |
| |руководитель = Квартирмейстер
| |
| |канал = п
| |
| |сотрудник = Да
| |
| |руководства = [[Стандартные рабочие процедуры (Отдел снабжения)]]
| |
| |содержание =
| |
|
| |
|
| {{таблица ролей/содержание
| | * '''1‑й параметр / <code>json=</code>''' — строка JSON. |
| |цвет = brown
| | * '''2‑й параметр / <code>template=</code>''' — путь к шаблону, например <code>Component/adjustPlant</code>. |
| |ссылка = Квартирмейстер
| |
| |заголовок = Квартирмейстер
| |
| |иконка = Квартирмейстер.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | Ожидаемый формат JSON‑массива: |
| |цвет = brown
| |
| |ссылка = Утилизатор
| |
| |заголовок = Утилизатор
| |
| |иконка = Утилизатор.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | <pre> <!-- <syntaxhighlight lang=json> --> |
| |цвет = brown
| | [ |
| |ссылка = Грузчик
| | { |
| |заголовок = Грузчик
| | "!type:PlantAdjustNutrition": { |
| |иконка = Грузчик.png
| | "amount": 0.1 |
| }} | | } |
| | }, |
| | { |
| | "!type:PlantAdjustWeeds": { |
| | "amount": 2 |
| | } |
| | }, |
| | { |
| | "!type:PlantAdjustPests": { |
| | "amount": 2 |
| | } |
| | } |
| | ] |
| | </pre> <!-- </syntaxhighlight> --> |
|
| |
|
| }}
| | Для каждого элемента создаётся вызов: |
| <!--------------------------- Сервисный отдел --------------------------->
| |
| {{таблица ролей
| |
| |цвет = green
| |
| |ссылка = Сервисный отдел
| |
| |иконка = serv_dep.png
| |
| |заголовок = Сервисный отдел
| |
| |руководитель = Глава персонала
| |
| |канал = с
| |
| |сотрудник = Да
| |
| |руководства = [[Стандартные рабочие процедуры (Сервисный отдел)]] • [[Инвентарь сервисного отдела]] • [[Гидропоника]] • [[Напитки]] • [[Готовка]]
| |
| |содержание =
| |
|
| |
|
| {{таблица ролей/содержание | | <pre> |
| |цвет = green
| | {{Component/adjustPlant |
| |ссылка = Глава персонала
| | |id=!type:PlantAdjustNutrition |
| |заголовок = Глава персонала | | |amount=0.1 |
| |иконка = Глава Персонала.png | |
| }} | | }} |
| | | {{Component/adjustPlant |
| {{таблица ролей/содержание | | |id=!type:PlantAdjustWeeds |
| |цвет = green
| | |amount=2 |
| |ссылка = Шеф-повар
| |
| |заголовок = Шеф-повар | |
| |иконка = Шеф-повар.png | |
| }} | | }} |
| | | {{Component/adjustPlant |
| {{таблица ролей/содержание | | |id=!type:PlantAdjustPests |
| |цвет = green
| | |amount=2 |
| |ссылка = Ботаник
| |
| |заголовок = Ботаник | |
| |иконка = Ботаник.png | |
| }} | | }} |
| | </pre> |
|
| |
|
| {{таблица ролей/содержание | | Особенности: |
| |цвет = green
| | * Если JSON — объект вида <code>{ "id1": {...}, "id2": {...} }</code>, происходит аналогичный проход по парам <code>ключ → объект</code>. |
| |ссылка = Бармен
| | * Все вызовы склеиваются через перевод строки и прогоняются через <code>frame:preprocess</code>, поэтому внутри шаблона можно использовать любую вики‑разметку. |
| |заголовок = Бармен
| |
| |иконка = Бармен.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | == Модуль: GetField == |
| |цвет = green
| | Модуль <code>GetField</code> используется для доступа к тем же JSON‑данным <code>.../data</code>, но на более низком уровне. |
| |ссылка = Сервисный работник
| |
| |заголовок = Сервисный работник
| |
| |иконка = Сервисный работник.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | === p.flattenField: расплющивание записи в параметры === |
| |цвет = green
| | <pre> |
| |ссылка = Боксер | | {{#invoke:GetField|flattenField |
| |заголовок = Боксер | | | <id> |
| |иконка = Боксер.png | | | <путь_к_json_странице> |
| }} | | }} |
| | </pre> |
|
| |
|
| {{таблица ролей/содержание
| | Например: |
| |цвет = green
| |
| |ссылка = Уборщик
| |
| |заголовок = Уборщик
| |
| |иконка = Уборщик.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | <pre> |
| |цвет = green | | {{#invoke:GetField|flattenField |
| |ссылка = Библиотекарь | | | MyEntityId |
| |заголовок = Библиотекарь | | | component/item.json |
| |иконка = Библиотекарь.png
| |
| }} | | }} |
| | </pre> |
|
| |
|
| {{таблица ролей/содержание
| | Возвращает строку вида: |
| |цвет = green
| |
| |ссылка = Священник
| |
| |заголовок = Священник
| |
| |иконка = Священник.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | <pre> |
| |цвет = green
| | damage.types={"Blunt":10}|wieldSound=someSound|... |
| |ссылка = Зоотехник
| | </pre> |
| |заголовок = Зоотехник | |
| |иконка = Зоотехник.png | |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | Особенности: |
| |цвет = green
| | * Вложенные объекты кодируются в JSON и заворачиваются в <code><nowiki><nowiki></nowiki></code>, чтобы их можно было безопасно передавать как параметр. |
| |ссылка = Репортёр
| | * Массивы кодируются в JSON без <code><nowiki><nowiki></nowiki></code>, чтобы удобно обрабатывать их модулями вроде <code>Сущность.jsonList</code>. |
| |заголовок = Репортёр
| |
| |иконка = Репортёр.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | Этот режим используется внутри <code>GetField.getTpl</code> и других обёрток. |
| |цвет = green
| |
| |ссылка = Музыкант
| |
| |заголовок = Музыкант
| |
| |иконка = Музыкант.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | === p.get: получение значения по пути === |
| |цвет = green | | <pre> |
| |ссылка = Пассажир | | {{#invoke:GetField|get |
| |заголовок = Пассажир | | | <id или пусто для "default"> |
| |иконка = Пассажир.png | | | <путь_к_json_странице> |
| | | <ключ.с.точками> |
| }} | | }} |
| | </pre> |
|
| |
|
| {{таблица ролей/содержание
| | Примеры: |
| |цвет = green
| |
| |ссылка = Мим
| |
| |заголовок = Мим
| |
| |иконка = Мим.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | <pre> |
| |цвет = green | | {{#invoke:GetField|get |
| |ссылка = Клоун | | | MyEntityId |
| |заголовок = Клоун | | | component/item.json |
| |иконка = Клоун.png | | | damage.types |
| }} | | }} |
| | </pre> |
|
| |
|
| }}
| | Если в JSON: |
| <!--------------------------- Антагонисты --------------------------->
| |
| {{таблица ролей
| |
| |цвет = pastel-red
| |
| |ссылка = Антагонисты
| |
| |иконка = Antag_dep.png
| |
| |заголовок = Антагонисты
| |
| |руководитель =
| |
| |канал =
| |
| |сотрудник = Нет
| |
| |руководства = [[Контрабанда]] • [[Руководство по взлому]] • [[Взламываемые криптографическим секвенсором предметы|Емаг]] • [[Аплинк]]
| |
| |содержание =
| |
|
| |
|
| {{таблица ролей/содержание
| | <pre> <!-- <syntaxhighlight lang=json> --> |
| |цвет = pastel-red
| | "damage": { |
| |ссылка = Предатель
| | "types": { |
| |заголовок = Предатели
| | "Blunt": 10 |
| |иконка = Предатель Адольф.png
| | } |
| }} | | } |
| | </pre> <!-- </syntaxhighlight> --> |
|
| |
|
| {{таблица ролей/содержание
| | то результатом будет: |
| |цвет = pastel-red
| |
| |ссылка = Ядерный оперативник
| |
| |заголовок = Ядерные оперативники
| |
| |иконка = Ядерный оперативник.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | <pre> |
| |цвет = pastel-red
| | {"Blunt":10} |
| |ссылка = Революционер
| | </pre> |
| |заголовок = Революционеры
| |
| |иконка = Revhead.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | то есть: |
| |цвет = pastel-red
| | * для таблиц модуль пытается сделать <code>mw.text.jsonEncode(v)</code> и вернуть JSON‑строку; |
| |ссылка = Нулевой пациент
| | * для простых значений возвращается строка <code>tostring(v)</code>. |
| |заголовок = Нулевые пациенты
| |
| |иконка = Zombie-turnFullHD.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | Если <code>keyPath</code> пуст, возвращается весь объект (как JSON). |
| |цвет = pastel-red
| |
| |ссылка = Вор
| |
| |заголовок = Воры
| |
| |иконка = Вор.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | === p.getTpl: вызов шаблона по данным JSON === |
| |цвет = pastel-red | | <pre> |
| |ссылка = Пираты | | {{#invoke:GetField|getTpl |
| |заголовок = Пираты | | | <id> |
| |иконка = Pirate.gif | | | <путь_к_json_странице> |
| | | <путь_к_шаблону> |
| }} | | }} |
| | </pre> |
|
| |
|
| {{таблица ролей/содержание
| | Пример: |
| |цвет = pastel-red
| |
| |ссылка = Маг
| |
| |заголовок = Маг
| |
| |иконка = mag.png
| |
| }}
| |
|
| |
|
| | <pre> |
| | {{#invoke:GetField|getTpl |
| | | MyEntityId |
| | | component/item.json |
| | | Component/meleeWeapon |
| }} | | }} |
| <!--------------------------- Антагонисты NEXT ---------------------------> | | </pre> |
| {{таблица ролей
| |
| |цвет = pastel-red
| |
| |ссылка = Антагонисты
| |
| |иконка = Antag Next dep.png
| |
| |заголовок = Антагонисты NEXT
| |
| |руководитель =
| |
| |канал =
| |
| |сотрудник = Нет
| |
| |руководства = [[Блоб (NEXT)]] • [[Еретик (NEXT)]] • [[Воксы рейдеры (NEXT)]]
| |
| |содержание =
| |
|
| |
|
| {{таблица ролей/содержание
| | Работа: |
| |цвет = pastel-red
| | * внутри вызывает <code>flattenField</code>, получая строку <code>key=value|...</code>; |
| |ссылка = Блоб (NEXT) | | * формирует строку вида: |
| |заголовок = Блоб
| |
| |иконка = CoreBlobTile.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание | | <pre> |
| |цвет = pastel-red | | {{Component/meleeWeapon |
| |ссылка = Еретик (NEXT) | | |id=MyEntityId |
| |заголовок = Еретик | | |damage.types=... |
| |иконка = Heretic.png
| | |... |
| }} | | }} |
| | </pre> |
|
| |
|
| {{таблица ролей/содержание
| | * и прогоняет её через <code>frame:preprocess</code>, возвращая итоговый рендер. |
| |цвет = pastel-red
| |
| |ссылка = Воксы рейдеры (NEXT)
| |
| |заголовок = Воксы рейдеры
| |
| |иконка = VoxRaider.png
| |
| }}
| |
|
| |
|
| }}
| | Это удобный способ «подключить» шаблон компонента к данным из JSON без ручного перечисления параметров. |
| <!--------------------------- Центральное Командование --------------------------->
| |
| {{таблица ролей
| |
| |цвет = emerald
| |
| |ссылка = Центральное командование
| |
| |иконка = centcom_dep.png
| |
| |заголовок = Центральное командование
| |
| |руководитель =
| |
| |канал = ц
| |
| |сотрудник = Да
| |
| |руководства = [[Специальные Рабочие Процедуры Эскадрона смерти]] • [[Руководство для начинающих ОЦК]]
| |
| |содержание =
| |
|
| |
|
| {{таблица ролей/содержание | | === p.getTplProto: вызов шаблона по прототипам === |
| |цвет = emerald | | <pre> |
| |ссылка = Представитель ЦК | | {{#invoke:GetField|getTplProto |
| |заголовок = Представитель ЦК | | | <searchId> |
| |иконка = Пцк.png | | | <protoId> |
| | | <путь_к_шаблону> |
| }} | | }} |
| | </pre> |
|
| |
|
| {{таблица ролей/содержание
| | * Ищет в <code>prototype.json</code> все записи, где <code>protoId</code> встречается у <code>searchId</code>. |
| |цвет = emerald
| | * Для каждого найденного ID вызывает <code>getTpl</code> и возвращает все вызовы, склеенные через перевод строки и отрендеренные. |
| |ссылка = Оператор ЦК
| |
| |заголовок = Оператор ЦК
| |
| |иконка = Operator.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | Используется для случаев, когда сущность использует '''несколько''' прототипов одного типа, и нужно вывести по одному шаблону на каждый прототип. |
| |цвет = emerald
| |
| |ссылка = РХБЗЗ
| |
| |заголовок = РХБЗЗ
| |
| |иконка = CQO-commander.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = emerald
| |
| |ссылка = ОБР
| |
| |заголовок = ОБР
| |
| |иконка = obr-leader.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = emerald
| |
| |ссылка = Эскадрон смерти
| |
| |заголовок = Эскадрон смерти
| |
| |иконка = CCdeath.png
| |
| }}
| |
| | |
| }}
| |
| <!--------------------------- Призрачные роли. Антагонисты --------------------------->
| |
| {{таблица ролей
| |
| |цвет = red
| |
| |ссылка = Антагонисты
| |
| |иконка = Antagghost.png
| |
| |заголовок = Призрачные роли антагонистов
| |
| |руководитель =
| |
| |канал =
| |
| |сотрудник = Нет
| |
| |руководства =
| |
| |содержание =
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Ядерный оперативник
| |
| |заголовок = Одинокий ядерный оперативник
| |
| |иконка = Ядерный оперативник.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Агент подкрепления
| |
| |заголовок = Агент подкрепления
| |
| |иконка = Reinforcementsyn.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Агент подкрепления#Обезьяна подкрепления
| |
| |заголовок = Обезьяна подкрепления
| |
| |иконка = Syndiemonkeyagent.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Скелет из шкафа
| |
| |заголовок = Скелет из шкафа
| |
| |иконка = Skelet.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Голопаразит
| |
| |заголовок = Голопаразит
| |
| |иконка = Holoparasite.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Синтетики
| |
| |заголовок = Синтетики
| |
| |иконка = Spai.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Крысиный король
| |
| |заголовок = Крысы
| |
| |иконка = Regalrat.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Ревенант
| |
| |заголовок = Ревенант
| |
| |иконка = MobRevenant.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Космический дракон
| |
| |заголовок = Космический дракон
| |
| |иконка = MobDragon.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Тарантул
| |
| |заголовок = Тарантулы
| |
| |иконка = Tarantula anim.gif
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Клоун-Паук
| |
| |заголовок = Тарантулы-клоуны
| |
| |иконка = Clown_spider.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Животные#Слаймы
| |
| |заголовок = Слаймы
| |
| |иконка = Yellow_adult_slime.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Животные#Обитатели обломков
| |
| |заголовок = Обитатели обломков
| |
| |иконка = Space Carp.gif
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Космический ниндзя
| |
| |заголовок = Космический ниндзя
| |
| |иконка = Space ninja.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Ксеносы
| |
| |заголовок = Ксеносы
| |
| |иконка = Queen.png
| |
| }}
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = red
| |
| |ссылка = Блоб
| |
| |заголовок = Блоб {{пометка проекта|next}}
| |
| |иконка = CoreBlobTile.png
| |
| }}
| |
| | |
| }}
| |
| <!--------------------------- Призрачные роли --------------------------->
| |
| {{таблица ролей
| |
| |цвет = pastel-grey
| |
| |ссылка = Призрачные роли
| |
| |иконка = Призраки.png
| |
| |заголовок = Призрачные роли
| |
| |руководитель =
| |
| |канал =
| |
| |сотрудник = Нет
| |
| |руководства =
| |
| |содержание =
| |
| | |
| {{таблица ролей/содержание
| |
| |цвет = pastel-grey
| |
| |ссылка = Животные
| |
| |заголовок = Животные
| |
| |иконка = MobCorgiIan.png
| |
| }}
| |
|
| |
|
| {{таблица ролей/содержание
| | == Типичный рабочий поток == |
| |цвет = pastel-grey
| | # В JSON‑файлах (<code>component.json</code>, <code>prototype.json</code> и др.) описываются сущности и связи компонент/прототипов. |
| |ссылка = Призрак
| | # Для каждого компонента/прототипа создаются шаблоны <code>Template:Component/...</code>, <code>Template:prototype/...</code>, которые: |
| |заголовок = Призрак
| | #* вызывают <code><nowiki>{{#invoke:Сущность/поля|main ...}}</nowiki></code> для описания полей карточки; |
| |иконка = Призрак.png
| | #* при необходимости используют <code>GetField</code> / <code>Сущность.jsonList</code> / <code>Сущность.json</code> для форматирования сложных JSON‑полей. |
| }}
| | # Для вывода карточки на странице сущности используется: |
| | | #* либо прямой <code><nowiki>{{#invoke:Сущность|get|MyEntityId}}</nowiki></code>, |
| {{таблица ролей/содержание | | #* либо шаблон‑обёртка <code><nowiki>{{Сущность/карточка|MyEntityId}}</nowiki></code>. |
| |цвет = pastel-grey | | # Для специализированных списков/таблиц: |
| |ссылка = Синтетики
| | #* <code>Сущность.jsonList</code> — если нужно красиво показать массив/словарь из JSON; |
| |заголовок = Синтетики
| | #* <code>Сущность.json</code> — если нужно превратить список эффектов в набор вызовов шаблона; |
| |иконка = PersonalAI.png
| | #* <code>GetField.get</code> — если нужно точечно вытащить одно поле; |
| }} | | #* <code>GetField.getTpl</code> / <code>getTplProto</code> — если нужно строить шаблоны по данным JSON автоматически. |
| | |
| {{таблица ролей/содержание | |
| |цвет = pastel-grey
| |
| |ссылка = Киборг
| |
| |заголовок = Киборг | |
| |иконка = Robots.gif | |
| }} | |
| | |
| {{таблица ролей/содержание | |
| |цвет = pastel-grey | |
| |ссылка = Неизвестный шаттл
| |
| |заголовок = Неизвестный шаттл
| |
| |иконка = Doppelganger.png
| |
| }}
| |
| | |
| }}
| |