|
|
| (не показано 226 промежуточных версий 4 участников) |
| Строка 1: |
Строка 1: |
| __NOTOC__{{verify}}
| | {{docpage}}{{TOC hidden}} |
| {{СРП/CO/Info/Main}} | | {{OnLua|Сущность|module1=Сущность|module2=Сущность/поля|module3=GetField}} |
| '''Стандартные Рабочие Процедуры (СРП)''' представляют собой набор руководящих принципов, которым необходимо следовать в соответствующих им обстоятельствах. Нарушение СРП без уважительной причины может являться основанием для понижения в должности, увольнения или даже заключения под стражу, в зависимости от тяжести нарушения и мнения главы соответствующего отдела.
| |
|
| |
|
| <div class="grid-adaptive" style="
| | Модульный набор {{tl|Модуль:Сущность}} + {{tl|Модуль:Сущность/поля}} + {{tl|Модуль:GetField}} предназначен для: |
| display: grid;
| | * автоматической сборки карточек сущностей (компонентов и прототипов) по их ID; |
| grid-template-columns: 1fr 0.5fr;
| | * описания полей в шаблонах компонентов (какие поля идут в карточку, как подписаны); |
| gap: 8px;
| | * удобного доступа к данным из JSON (как простыми значениями, так и готовыми вызовами шаблонов). |
| ">
| |
|
| |
|
| {{GradientHeaderFrame/Sub
| | Ниже описан общий принцип работы и отдельные режимы. |
| |title = Ведомственные СРП
| |
| |margin = 0
| |
| |content =
| |
| <div class="grid-adaptive" style="
| |
| display: grid;
| |
| grid-template-columns: 1fr 1fr;
| |
| gap: 10px;
| |
| margin: 4px;
| |
| ">
| |
| {{ModernButton
| |
| |link = Стандартные рабочие процедуры (Командование)
| |
| |img = Cmd dep.png
| |
| |pixel = 60px
| |
| |text = Командование станции
| |
| |subtext = Слава NanoTrasen!
| |
| }}
| |
|
| |
|
| {{ModernButton
| | == Общий принцип работы == |
| |link = Стандартные рабочие процедуры (Служба безопасности)
| | * В шаблонах компонентов/прототипов (<code>Template:Component/...</code>, <code>Template:prototype/...</code>) через {{tl|Модуль:Сущность/поля}} описываются поля: |
| |img = sec_dep.png
| | ** '''лейблы''' (<code>cardLabel_*</code>) и '''содержимое''' (<code>cardContent_*</code>), заголовки (<code>title_*</code>) и т. п.; |
| |pixel = 60px
| | ** '''мета‑информация''' о том, какие ключи доступны для <code>card</code> / <code>title</code> и в каком порядке. |
| |text = Отдел службы безопасности
| | * {{tl|Модуль:Сущность}} по ID сущности: |
| |subtext = Лишь стражи порядка сдерживают жестокость и кровопролития.
| | ** находит связанные с ней компоненты и прототипы по JSON‑данным; |
| }}
| | ** для каждого компонента/прототипа читает шаблоны и метаданные; |
| | ** собирает все поля в единую структуру; |
| | ** формирует один вызов карточки <code><nowiki>{{карточка/сущность|...}}</nowiki></code> (и блоки заголовков). |
| | * Внутри полей можно писать вики‑параметры <code>{{{...}}}</code> и вызывать дополнительные модули. |
| | * {{tl|Модуль:GetField}} даёт доступ к JSON‑данным на низком уровне: |
| | ** как «расплющенный» набор параметров (<code>flattenField</code>); |
| | ** как отдельные значения (<code>get</code>); |
| | ** как готовые вызовы шаблонов с нужными параметрами (<code>getTpl</code>, <code>getTplProto</code>). |
|
| |
|
| {{ModernButton
| | == Модуль: Сущность/поля == |
| |link = Стандартные рабочие процедуры (Научный отдел)
| | Шаблоны компонентов используют модуль <code>Сущность/поля</code> для объявления полей, которые будут собираться в карточку. |
| |img = Sci dep.png
| |
| |pixel = 60px
| |
| |text = Научный отдел
| |
| |subtext = Придет время, когда наука опередит фантазию.
| |
| }}
| |
|
| |
|
| {{ModernButton
| | Пример шаблона компонента: |
| |link = Стандартные рабочие процедуры (Медицинский отдел)
| |
| |img = Med dep.png
| |
| |pixel = 60px
| |
| |text = Медицинский отдел
| |
| |subtext = Защитники жизни, вооруженные орудием сострадания.
| |
| }}
| |
|
| |
|
| {{ModernButton
| | <pre> |
| |link = Стандартные рабочие процедуры (Отдел снабжения)
| | {{#invoke:Сущность/поля|main |
| |img = Cargo dep.png
| | |cardLabel_Стоимость = [[Стоимость]] |
| |pixel = 60px
| | |cardContent_Стоимость = '''{{{price}}}''' |
| |text = Отдел снабжения
| | }} |
| |subtext = Логистика - основа корпорации.
| | </pre> |
| }}
| |
|
| |
|
| {{ModernButton
| | Другой компонент может добавлять тот же ключ: |
| |link = Стандартные рабочие процедуры (Инженерный отдел)
| |
| |img = Eng dep.png
| |
| |pixel = 60px
| |
| |text = Инженерный отдел
| |
| |subtext = Симфония металла, ума и духа.
| |
| }}
| |
|
| |
|
| {{ModernButton
| | <pre> |
| |link = Стандартные рабочие процедуры (Сервисный отдел)
| | {{#invoke:Сущность/поля|main |
| |img = Serv dep.png
| | |cardContent_Стоимость = '''{{{superPrice}}}''' |
| |pixel = 60px
| |
| |text = Сервисный отдел
| |
| |subtext = Душа космической станции.
| |
| }}
| |
| </div>
| |
| }} | | }} |
| | </pre> |
| | |
| | Особенности: |
| | * Пара <code>cardLabel_<Ключ></code> / <code>cardContent_<Ключ></code> описывает одну строку карточки (лейбл и содержимое). |
| | * Если несколько шаблонов дают один и тот же <code>cardContent_Ключ</code>, содержимое '''объединяется''', а лейбл берётся первый непустой. |
| | * То же относится к другим режимам, перечисленным в мета‑JSON шаблона (разделы <code>card</code>, <code>title</code> и т. п.), которые читает {{tl|Модуль:Сущность}}. |
| | |
| | == Модуль: Сущность == |
|
| |
|
| {{GradientHeaderFrame/Sub
| | === p.get: основная сборка карточки === |
| |title = СРП Департаментов
| | Вызов: |
| |margin = 0
| |
| |content =
| |
| <div style="
| |
| display: grid;
| |
| grid-template-columns: 1fr;
| |
| gap: 10px;
| |
| margin: 4px;
| |
| ">
| |
| {{ModernButton
| |
| |link = Стандартные рабочие процедуры (ДСО)
| |
| |img = DarkCentcom_dep.png
| |
| |pixel = 60px
| |
| |text = Департамент Специальных Операций
| |
| |subtext = Semper fidelis!
| |
| }}
| |
|
| |
|
| {{ModernButton
| | <pre> |
| |link = Стандартные рабочие процедуры (Юридический департамент)
| | {{#invoke:Сущность|get |
| |img = Law dep.png
| | | <ID или список ID> |
| |pixel = 60px
| | | blacklist=... |
| |text = Юридический департамент NT
| | | whitelist=... |
| |subtext = Да свершится справедливость, даже если мир погибнет.
| | | ignoreComponents=... |
| }}
| | | ignorePrototypes=... |
|
| |
| {{ModernButton
| |
| |link = Стандартные рабочие процедуры (ЦК)
| |
| |img = Centcom_dep.png
| |
| |pixel = 60px
| |
| |text = Центральное Командование
| |
| |subtext = Слава NanoTrasen!
| |
| }} | | }} |
| </div> | | </pre> |
| }} | | |
| </div> | | * '''1‑й параметр''' — <code>id</code> или список <code>id</code> через запятую. |
| | * По этому ID модуль находит: |
| | ** '''компоненты''' из <code>component.json</code>; |
| | ** '''прототипы''' из <code>prototype.json</code>; |
| | и для каждого — соответствующие шаблоны <code>Template:component/...</code> / <code>Template:prototype/...</code>. |
| | * Шаблоны описывают свои поля через <code>Сущность/поля</code>. |
| | |
| | После сборки модуль: |
| | * формирует один вызов <code><nowiki>{{карточка/сущность|...}}</nowiki></code> со всеми разделами и полями; |
| | * дополняет выход при необходимости (блоки title и т. п.); |
| | * прогоняет результат через <code>frame:preprocess</code>, чтобы отрендерить разметку. |
| | |
| | Параметры фильтрации: |
| | * {{пм|blacklist}} — список <code>режим_Ключ</code> через запятую, чтобы исключить поле: |
| | ** пример: <code>blacklist=card_Наносит повреждения,title_Что‑то</code>; |
| | * {{пм|whitelist}} — наоборот, список разрешённых <code>режим_Ключ</code>, остальные игнорируются; |
| | * {{пм|ignoreComponents}} / {{пм|ignoreComponent}} — список имён компонентов через запятую, которые полностью игнорируются для этого вызова; |
| | * {{пм|ignorePrototypes}} / {{пм|ignorePrototype}} — аналогично для прототипов. |
|
| |
|
| {{GradientHeaderFrame
| | Пример простой сборки (через шаблон‑обёртку): |
| |title = Уровни угроз
| |
| |padding = 10px 12px
| |
| |content =
| |
|
| |
|
| {{RulesBox
| | <pre> |
| |title = Протоколы уровней угроз
| | {{Сущность/карточка|MyEntityId}} |
| |margin = 0
| | </pre> |
| |background-color = #2a2a33
| |
| |border-color = #434353
| |
| |content = <p></p>
| |
| * Капитан '''обязан''' понизить код угрозы или обеспечить его снижение спустя 15 минут после {{Tooltip|последней активности|Последняя активность|Событие, которое изначально оправдывает выставление кода, но дальнейшая угроза от него не была подтверждена. Потенциальная оставшаяся угроза при этом не учитывается.<br><br>Пример: агент украл карту капитана, но его не поймали, и в течение 15 минут никто не проявлял оправданную данным кодом активность — код должен быть понижен.}}, соответствующей условиям текущего кода.
| |
| * Весь персонал станции, вне зависимости от должности, обязан следовать нормам экипажа в зависимости от кода угрозы. Нарушение норм экипажа соответствующего кода является нарушением статьи «Сопротивление представителям власти» [[Корпоративный Закон#112|Корпоративного Закона]].
| |
| * Код угрозы распространяется на: станцию, космическое пространство станции, объекты, находящиеся в собственности станции, а также на торговый пост станции. На эвакуационный шаттл и шаттл прибытия установленный на станции уровень угрозы не распространяется, при условии, что те покинули космическое пространство станции.
| |
| }}
| |
|
| |
|
| ==Коды угроз==
| | где в шаблоне <code>Сущность/карточка</code> внутри: |
|
| |
|
| {{ModernFrame/Сollapsible | | <pre> |
| |title = Уровень угрозы Зеленый: все чисто; нет угроз на борту/возле станции
| | {{#invoke:Сущность|get|{{{1}}}}} |
| |background-color = #215f21 | | </pre> |
| |border-color = #277127 | |
| |sub-title = ''«Внимание! Уровень угрозы станции теперь зелёный! Можно безопасно возвращаться на свои рабочие места.»''
| |
| |content = '''Устанавливается:''' [[Командование | Капитаном]].
| |
|
| |
|
| {{ColoredTextFrame/ColorPalette
| | === p.preview: предпросмотр полей конкретного шаблона === |
| |title = Условия
| | Используется для проверки, что компонент/прототип правильно описал свои поля. |
| |content = <p></p>
| |
| * Начальный уровень тревоги на станции.
| |
| }}
| |
|
| |
|
| {{ColoredTextFrame/ColorPalette|Синий | | <pre> |
| |title = Нормы экипажа | | {{#invoke:Сущность|preview |
| |content = <p></p> | | | Component/meleeWeapon |
| * Экипаж может свободно передвигаться по станции в зависимости от доступа.
| |
| * Хранилище может быть открыто если:
| |
| ** Требуется его ремонт.
| |
| ** Требуется золото для Научного Отдела.
| |
| ** Чрезвычайно важный предмет должен быть спрятан в сейфе.
| |
| * [[Бумажная работа|Бюрократия]] должна иметь приоритет при работе отделов.
| |
| }} | | }} |
| | </pre> |
|
| |
|
| }}<!--
| | * Показывает, какие <code>card</code> / <code>title</code>‑поля объявлены в <code>Template:Component/meleeWeapon</code>. |
| | * Удобно при разработке шаблонов компонентов. |
|
| |
|
| -->
| | === p.jsonList: вывод JSON в виде списка === |
| {{ModernFrame/Сollapsible
| | Режим похож на стандартный <code>arraymap</code>, но работает с JSON. |
| |title = Уровень угрозы Синий: есть подозрение на угрозу внутри/снаружи станции
| |
| |background-color = #273689
| |
| |border-color = #2c3d9b
| |
| |sub-title = ''«Внимание! Уровень угрозы станции теперь синий! На станции присутствует неизвестная угроза. Службе безопасности разрешено проводить выборочные обыски. Членам экипажа рекомендуется выполнять указания, отдаваемые действующей властью. Для ускорения процедур, просим сотрудников проверить наличие ID-карт в своих КПК.»''
| |
| |content = '''Устанавливается:''' [[Капитан | Капитаном]] или [[Глава Службы Безопасности|Главой Службы Безопасности]].
| |
|
| |
|
| {{ColoredTextFrame/ColorPalette | | <pre> |
| |title = Устанавливается только в таких случаях | | {{#invoke:Сущность|jsonList |
| |content = <p></p> | | | <json или {{{...}}}> |
| * Подтвержденном взломе защищенной стратегической точки. | | | type = list / enum |
| * Потере [[Особо ценные предметы|особо ценного предмета]].
| | | prefix = * |
| * Подрыве отсека станции, который не является защищенной стратегической точкой. | | | sep = : |
| * Найденном вражеском снаряжении.
| | | key_pattern = (.*) |
| | | key_replace = \1 |
| | | value_pattern = (.*) |
| | | value_replace = \1 |
| }} | | }} |
| | </pre> |
|
| |
|
| {{ColoredTextFrame/ColorPalette|Синий
| | Примеры JSON: |
| |title = Нормы экипажа
| |
| |content = <p></p>
| |
| * Экипаж может свободно передвигаться по станции в зависимости от доступа.
| |
| * Весь персонал обязан носить свои ID-карты в своих КПК.
| |
| * Экипаж должен докладывать о любой подозрительной активности [[Отдел Службы Безопасности | Службе Безопасности]] лично, или, в крайнем случае, в общий голосовой канал.
| |
| * [[Бумажная работа|Бюрократия]] должна иметь приоритет при работе отделов.
| |
| }}
| |
|
| |
|
| }}<!-- | | <pre> <!-- <syntaxhighlight lang=json> --> |
| | { |
| | "Blunt": 10, |
| | "Slash": 5 |
| | } |
| | </pre> <!-- </syntaxhighlight> --> |
|
| |
|
| -->
| | или |
| {{ModernFrame/Сollapsible
| |
| |title = Уровень угрозы Красный: наличие угрозы на станции/около станции подтверждено
| |
| |background-color = #630a0a
| |
| |border-color = #750c0c
| |
| |sub-title = ''«Внимание! Уровень угрозы станции теперь красный! На станции присутствует известная угроза. Служба безопасности имеет право применять летальную силу по необходимости. Все члены экипажа, за исключением должностных лиц, обязаны проследовать в свои отделы и ожидать дальнейших инструкций до отмены кода. Нарушители подлежат наказанию.»''
| |
| |content = '''Устанавливается:''' [[Командование | Капитаном]] или [[Глава Службы Безопасности|Главой Службы Безопасности]].
| |
|
| |
|
| {{ColoredTextFrame/ColorPalette
| | <pre> <!-- <syntaxhighlight lang=json> --> |
| |title = Устанавливается только в таких случаях
| | ["Knife", "Sword", "Bat"] |
| |content = <p></p>
| | </pre> <!-- </syntaxhighlight> --> |
| * Нарушении условий содержания сингулярности.
| |
| * Потере диска ядерной аутентификации.
| |
| * Подтвержденном случае смерти должностного лица от рук разумного существа.
| |
| * Подрыве защищенной стратегической точки.
| |
| * Вспышке зомби-вируса на станции.
| |
| * Нападении [[Космический дракон|Космического дракона]].
| |
| * Нападении лиц, владеющих огнестрельным оружием.
| |
| }}
| |
|
| |
|
| {{ColoredTextFrame/ColorPalette|Синий | | Основные опции: |
| |title = Нормы экипажа
| | * {{пм|type}}: |
| |content = <p></p>
| | ** <code>list</code> — список строк (с префиксом, например <code>* </code>); |
| * Весь экипаж, за исключением должностных лиц, обязан находиться в своих отделах на протяжении действия '''<span style="color:#b10202">Красного кода</span>''', если не получены иные указания от [[Отдел Службы Безопасности | Службы Безопасности]] и/или [[Командование | Командования]]. | | ** <code>enum</code> — перечисление через запятую (<code>A, B, C</code> без префикса). |
| * Посетители и гости станции обязаны находиться в баре, библиотеке или жилых отсеках. | | * {{пм|prefix}} — префикс строки списка (по умолчанию <code>* </code>). |
| * Экипаж обязан подчиняться правомерным приказам[[Отдел Службы Безопасности | сотрудников Службы Безопасности]]. | | * {{пм|sep}} — разделитель для <code>ключ: значение</code> (по умолчанию <code>: </code>). |
| * Весь экипаж обязан переключить датчики костюмов в режим координат. | | * {{пм|key_pattern}} / {{пм|key_replace}} — regex и замена для ключей. |
| * Весь экипаж обязан носить свои ID-карты в своих КПК. | | * {{пм|value_pattern}} / {{пм|value_replace}} — regex и замена для значений. |
| * Скорость работы должна иметь приоритет над [[Бумажная работа|бюрократией]].
| |
| }} | |
|
| |
|
| }}<!--
| | Дополнительно: |
| | * в шаблоне замены поддерживаются: |
| | ** <code>\1</code> — собственное значение (ключ или значение); |
| | ** <code>\2</code> в <code>value_replace</code> — '''сырой ключ''' (после <code>key_pattern</code>, но до <code>key_replace</code>); |
| | ** <code>\2</code> в <code>key_replace</code> — итоговое отформатированное значение (после <code>value_replace</code>). |
|
| |
|
| -->
| | Пример, где сначала форматируем тип урона, а затем подставляем его в описание: |
| {{ModernFrame/Сollapsible
| |
| |title = Уровень угрозы Гамма: существует огромная угроза безопасности станции и экипажа.
| |
| |background-color = #756203
| |
| |border-color = #877104
| |
| |sub-title = ''«Центральное Командование объявило на станции уровень угрозы "Гамма". Центральное командование объявило на станции уровень угрозы "Гамма". Служба безопасности должна постоянно иметь при себе оружие, гражданский персонал обязан немедленно обратиться к главам отделов для получения указаний к эвакуации. Службе Безопасности разрешено применение летальной силы в случае неповиновения.»''
| |
| |content = '''Устанавливается:''' [[Центральное Командование | Центральным Командованием]].
| |
|
| |
|
| {{ColoredTextFrame/ColorPalette | | <pre> |
| |title = Условия | | {{#invoke:Сущность|jsonList |
| |content = <p></p> | | | {{{damage.types}}} |
| * Существует огромная угроза для станции и экипажа, под угрозой само существование станции.
| | | type = enum |
| | | key_replace = <nowiki>\1</nowiki> <!-- "Blunt" --> |
| | | value_replace = <nowiki>'''\1''' \2</nowiki> <!-- "'''10''' Blunt" --> |
| }} | | }} |
| | </pre> |
|
| |
|
| {{ColoredTextFrame/ColorPalette|Синий
| | === p.json: превращение JSON в вызовы шаблонов === |
| |title = Нормы экипажа
| | Режим для случаев, когда в JSON лежит список эффектов/объектов, и нужно по каждому вызвать отдельный шаблон. |
| |content = <p></p>
| | |
| * '''Установлено военное положение.''' Служба Безопасности уполномочена принудить сотрудника к соблюдению закона и норм экипажа '''<span style="color:#C6A500">Гамма Кода</span>''' любыми способами, '''вплоть до применения летального оружия.
| | <pre> |
| * Весь экипаж, за исключением должностных лиц, обязан находиться в своих отделах на протяжении действия '''<span style="color:#C6A500">Гамма Кода</span>''', если не получены иные указания от [[Отдел Службы Безопасности | Службы Безопасности]] и/или [[Командование | Командования]].
| | {{#invoke:Сущность|json |
| * Посетители и гости станции (любой с гражданским уровнем доступа) обязаны находиться в баре, библиотеке или жилом отсеке.
| | | <json или {{{...}}}> |
| * Экипаж обязан подчиняться правомерным приказам[[Отдел Службы Безопасности | сотрудников Службы Безопасности]].
| | | <путь_к_шаблону> |
| * Весь экипаж обязан переключить датчики костюмов в режим координат.
| |
| * Весь экипаж обязан носить свои ID-карты в своих КПК.
| |
| * Скорость работы должна иметь приоритет над [[Бумажная работа|бюрократией]].
| |
| }} | | }} |
| | </pre> |
|
| |
|
| }}
| | * '''1‑й параметр / <code>json=</code>''' — строка JSON. |
| | * '''2‑й параметр / <code>template=</code>''' — путь к шаблону, например <code>Component/adjustPlant</code>. |
| | |
| | Ожидаемый формат JSON‑массива: |
|
| |
|
| ==Дополнительные коды угроз== | | <pre> <!-- <syntaxhighlight lang=json> --> |
| | [ |
| | { |
| | "!type:PlantAdjustNutrition": { |
| | "amount": 0.1 |
| | } |
| | }, |
| | { |
| | "!type:PlantAdjustWeeds": { |
| | "amount": 2 |
| | } |
| | }, |
| | { |
| | "!type:PlantAdjustPests": { |
| | "amount": 2 |
| | } |
| | } |
| | ] |
| | </pre> <!-- </syntaxhighlight> --> |
|
| |
|
| {{ModernFrame/Сollapsible
| | Для каждого элемента создаётся вызов: |
| |title = Уровень угрозы Желтый: наличие атмосферной/структурной угрозы на станции
| |
| |background-color = #5c5c00
| |
| |border-color = #6e6e00
| |
| |sub-title = ''«Внимание! Уровень угрозы станции теперь желтый! На станции присутствует структурная или атмосферная угроза. Инженерно-техническому персоналу требуется немедленно предпринять меры по устранению угрозы. Всем остальным сотрудникам запрещено находиться в опасном участке. Сотрудники Службы Безопасности продолжают выполнение своих обязанностей по предыдущему коду.»''
| |
| |content = '''Устанавливается:''' [[Капитан|Капитаном]] или [[Старший Инженер|Старшим Инженером]]
| |
|
| |
|
| {{ColoredTextFrame/ColorPalette | | <pre> |
| |title = Условия | | {{Component/adjustPlant |
| |content = <p></p> | | |id=!type:PlantAdjustNutrition |
| * На станции присутствуют серьезные структурные или атмосферные повреждения.
| | |amount=0.1 |
| }} | | }} |
| | | {{Component/adjustPlant |
| {{ColoredTextFrame/ColorPalette|Синий | | |id=!type:PlantAdjustWeeds |
| |title = Нормы работы Инженерного Отдела | | |amount=2 |
| |content = <p></p> | |
| * Сотрудникам инженерного отдела следует незамедлительно обратиться к [[Старший Инженер|Старшему Инженеру]] за получением приказов.
| |
| * [[Инженер|Инженеры]] и [[Атмосферный Техник|Атмосферные Техники]] должны проследовать к зоне и вернуть её в рабочее и безопасное для здоровья экипажа состояние.
| |
| * Экипаж должен быть проинформирован о местонахождении структурных и/или атмосферных повреждений в отсеках станции.
| |
| }} | | }} |
| | | {{Component/adjustPlant |
| {{ColoredTextFrame/ColorPalette|Синий | | |id=!type:PlantAdjustPests |
| |title = Нормы экипажа | | |amount=2 |
| |content = <p></p> | |
| * Всему экипажу следует подчиняться правомерным требованиям сотрудников инженерного отдела.
| |
| * Экипажу '''запрещено''' находиться в местах, где ведутся технические работы по восстановлению станции.
| |
| * За Сотрудниками Службы Безопасности закреплены все привилегии предыдущего кода.
| |
| }} | | }} |
| | </pre> |
|
| |
|
| }}<!-- | | Особенности: |
| | * Если JSON — объект вида <code>{ "id1": {...}, "id2": {...} }</code>, происходит аналогичный проход по парам <code>ключ → объект</code>. |
| | * Все вызовы склеиваются через перевод строки и прогоняются через <code>frame:preprocess</code>, поэтому внутри шаблона можно использовать любую вики‑разметку. |
|
| |
|
| -->
| | == Модуль: GetField == |
| {{ModernFrame/Сollapsible
| | Модуль <code>GetField</code> используется для доступа к тем же JSON‑данным <code>.../data</code>, но на более низком уровне. |
| |title = Уровень угрозы Фиолетовый: наличие угрозы вируса на станции
| |
| |background-color = #501b6b
| |
| |border-color = #602081
| |
| |sub-title = ''«Внимание! Уровень угрозы станции теперь фиолетовый! На станции присутствует угроза вируса. Медицинскому персоналу необходимо изолировать членов экипажа с любыми симптомами. Членам экипажа рекомендуется дистанцироваться друг от друга и соблюдать меры безопасности по предотвращению дальнейшего распространения вируса, следовать иным указаниям Главного Врача смены. На время действия Фиолетового Кода любые стыковки станции с другими объектами категорически запрещены. Сотрудники Службы Безопасности продолжают выполнение своих обязанностей по предыдущему коду.»''
| |
| |content = '''Устанавливается:''' [[Капитан | Капитаном]] или [[Главный врач| Главврачом]].
| |
|
| |
|
| {{ColoredTextFrame/ColorPalette | | === p.flattenField: расплющивание записи в параметры === |
| |title = Условия | | <pre> |
| |content = <p></p> | | {{#invoke:GetField|flattenField |
| * На станции существует подтвержденная опасная вспышка вируса, которая требует введения карантинных мер.
| | | <id> |
| | | <путь_к_json_странице> |
| }} | | }} |
| | </pre> |
| | |
| | Например: |
|
| |
|
| {{ColoredTextFrame/ColorPalette|Синий | | <pre> |
| |title = Нормы работы Медицинского Отдела | | {{#invoke:GetField|flattenField |
| |content = <p></p> | | | MyEntityId |
| * Сотрудникам Медицинского отдела следует незамедлительно обратиться к [[Главный врач| Главврачу]] за получением приказов.
| | | component/item.json |
| * Весь медицинский персонал обязан работать над устранением вспышки вируса, если нет пациентов в критическом состоянии, нуждающихся в помощи.
| |
| * Экипаж станции должен быть проинформирован об известных симптомах.
| |
| * Весь инфицированный экипаж должен быть помещен в изолятор.
| |
| }} | | }} |
| | </pre> |
|
| |
|
| {{ColoredTextFrame/ColorPalette|Синий
| | Возвращает строку вида: |
| |title = Нормы экипажа
| | |
| |content = <p></p>
| | <pre> |
| * Весь экипаж обязан переключить датчики костюмов в режим координат.
| | damage.types={"Blunt":10}|wieldSound=someSound|... |
| * При возникновении симптомов вируса, персонал обязан незамедлительно пройти в медицинский отдел.
| | </pre> |
| * Немедицинский персонал обязан подчиняться инструкциям медицинского персонала, в том числе просьбам покинуть зону, оставаться в карантине, или оказать помощь в спасении больных/раненых.
| |
| * Стыковка всех кораблей и шаттлов должна быть приостановлена.
| |
| * За Сотрудниками Службы Безопасности закреплены все привилегии предыдущего кода.
| |
| }}
| |
|
| |
|
| }}<!--
| | Особенности: |
| | * Вложенные объекты кодируются в JSON и заворачиваются в <code><nowiki><nowiki></nowiki></code>, чтобы их можно было безопасно передавать как параметр. |
| | * Массивы кодируются в JSON без <code><nowiki><nowiki></nowiki></code>, чтобы удобно обрабатывать их модулями вроде <code>Сущность.jsonList</code>. |
|
| |
|
| -->
| | Этот режим используется внутри <code>GetField.getTpl</code> и других обёрток. |
| {{ModernFrame/Сollapsible
| |
| |title = Уровень угрозы Дельта: станция находится под угрозой неминуемого уничтожения.
| |
| |background-color = #570809
| |
| |border-color = #690a0b
| |
| |sub-title = ''«Внимание! Уровень угрозы станции теперь Дельта! Станция находится под угрозой неминуемого уничтожения. Членам экипажа рекомендуется слушать глав отделов для получения дополнительной информации. Службе Безопасности приказано работать по протоколу Дельта.»''
| |
| |content = '''Устанавливается:''' [[Центральное Командование | Центральным Командованием]].
| |
|
| |
|
| {{ColoredTextFrame/ColorPalette | | === p.get: получение значения по пути === |
| |title = Условия | | <pre> |
| |content = <p></p> | | {{#invoke:GetField|get |
| * Механизм Самоуничтожения Станции был запущен [[Центральное Командование | Центральным Командованием]], либо саботирован врагами NanoTrasen.
| | | <id или пусто для "default"> |
| * Существует подтвержденная неминуемая ситуация полного уничтожения станции.
| | | <путь_к_json_странице> |
| | | <ключ.с.точками> |
| }} | | }} |
| | </pre> |
|
| |
|
| {{ColoredTextFrame/ColorPalette|Синий | | Примеры: |
| |title = Нормы работы Отдела Службы Безопасности | | |
| |content = <p></p> | | <pre> |
| * Процедуры не имеют значения.
| | {{#invoke:GetField|get |
| * В случае, если МСС '''не''' был запущен [[Центральное Командование | Центральным Командованием]]:
| | | MyEntityId |
| ** Обезвреживание бомбы не рекомендуется. Служба Безопасности должна обеспечить эвакуацию экипажа.
| | | component/item.json |
| ** При невозможности эвакуации, всеми силами обезвредить ядерную боеголовку.
| | | damage.types |
| * В случае запуска МСС [[Центральное Командование | Центральным Командованием]]:
| |
| ** Служба Безопасности обязана сохранять порядок и не допускать распространение угрозы со станции.
| |
| ** Служба Безопасности имеет право применить летальное оружие в отношении любого, кто попытается обезвредить ядерную боеголовку.
| |
| * В случае иных ситуаций неминуемого уничтожения станции:
| |
| ** Служба Безопасности обязана обеспечить эвакуацию экипажа.
| |
| }} | | }} |
| | </pre> |
| | |
| | Если в JSON: |
| | |
| | <pre> <!-- <syntaxhighlight lang=json> --> |
| | "damage": { |
| | "types": { |
| | "Blunt": 10 |
| | } |
| | } |
| | </pre> <!-- </syntaxhighlight> --> |
| | |
| | то результатом будет: |
|
| |
|
| {{ColoredTextFrame/ColorPalette|Синий | | <pre> |
| |title = Нормы экипажа
| | {"Blunt":10} |
| |content = <p></p>
| | </pre> |
| * В случае, если МСС '''не''' был запущен [[Центральное Командование | Центральным Командованием]]:
| |
| ** Обезвреживание бомбы не рекомендуется. Первоочередной задачей стоит эвакуация с объекта.
| |
| ** При невозможности эвакуации, рекомендуется всеми силами обезвредить ядерную боеголовку.
| |
| * В случае запуска МСС [[Центральное Командование | Центральным Командованием]]:
| |
| ** Экипаж должен сохранять спокойствие и следовать указаниям Центрального Командования.
| |
| * В случае иных ситуаций неминуемого уничтожения станции:
| |
| ** Первоочередной задачей стоит эвакуация с объекта.
| |
| ** Командованию разрешается запустить досрочную эвакуацию шаттла с объекта.
| |
| }}
| |
|
| |
|
| }}<!--
| | то есть: |
| | * для таблиц модуль пытается сделать <code>mw.text.jsonEncode(v)</code> и вернуть JSON‑строку; |
| | * для простых значений возвращается строка <code>tostring(v)</code>. |
|
| |
|
| --><!--
| | Если <code>keyPath</code> пуст, возвращается весь объект (как JSON). |
| {{ModernFrame/Сollapsible
| |
| |title = Уровень угрозы ЗАСЕКРЕЧЕНО
| |
| |background-color = #2d2d37
| |
| |border-color = #3c3c49
| |
| |sub-title = ''Никому на станции не известно о других уровнях угрозы.''
| |
| |content =
| |
| }}-->
| |
|
| |
|
| | === p.getTpl: вызов шаблона по данным JSON === |
| | <pre> |
| | {{#invoke:GetField|getTpl |
| | | <id> |
| | | <путь_к_json_странице> |
| | | <путь_к_шаблону> |
| }} | | }} |
| | </pre> |
|
| |
|
| ==Дополнительные СРП==
| | Пример: |
|
| |
|
| {{RulesBox | | <pre> |
| |title = Чрезвычайные Ситуации | | {{#invoke:GetField|getTpl |
| |content = <p></p> | | | MyEntityId |
| '''Список Чрезвычайных Ситуаций включает в себя:'''
| | | component/item.json |
| * Введение '''<span style="color:#C6A500">Гамма кода</span>'''.
| | | Component/meleeWeapon |
| * Введение '''<span style="color:#990f10">Дельта кода</span>''', если ядерная боеголовка не была запущена Центральным Командованием.
| |
| * Критические повреждения станции.
| |
| * Нападение космического дракона, создавшего второй активный разлом.
| |
| * Пребывание ревенанта на объекте, которое продолжается больше 15-ти минут.
| |
| * Вспышка зомби вируса, поразившая более 10% экипажа.
| |
| * Выход сингулярности.
| |
| * Нападение Ядерных Оперативников Синдиката.
| |
| * Попытка насильственного свержения власти на территории объекта корпорации NanoTrasen, крупномасштабные бунты.
| |
| }} | | }} |
| | </pre> |
|
| |
|
| {{RulesBox | | Работа: |
| |title = СРП при нарушении условий содержания Сингулярности | | * внутри вызывает <code>flattenField</code>, получая строку <code>key=value|...</code>; |
| |content = <p></p> | | * формирует строку вида: |
| * Гравитационную Сингулярность должна отслеживаться любой ценой.
| | |
| ** Если Гравитационная Сингулярность направляется к станции, то должен быть вызван шаттл.
| | <pre> |
| ** Если Гравитационная Сингулярность движется в сторону от станции, следует учесть ущерб, нанесенный станции.
| | {{Component/meleeWeapon |
| * В случае серьезного повреждения станции вызвать шаттл эвакуации.
| | |id=MyEntityId |
| * В зависимости от степени небольших повреждений, следует вызвать ОБР или восстановить повреждения своими силами.
| | |damage.types=... |
| | |... |
| }} | | }} |
| | </pre> |
|
| |
|
| {{RulesBox
| | * и прогоняет её через <code>frame:preprocess</code>, возвращая итоговый рендер. |
| |title = СРП при объявлении войны Синдикатом
| | |
| |content = <p></p>
| | Это удобный способ «подключить» шаблон компонента к данным из JSON без ручного перечисления параметров. |
| * Все ограничения на вооружение сняты.
| | |
| * [[Отдел Снабжения]] должен начать заказ как можно большего количества оружия.
| | === p.getTplProto: вызов шаблона по прототипам === |
| ** [[Отдел Службы Безопасности]] является приоритетом при распределении вооружения среди экипажа.
| | <pre> |
| * Возведение баррикад в критически важных местах рекомендуется.
| | {{#invoke:GetField|getTplProto |
| * Диск ядерной аутентификации '''запрещено''' выносить за пределы станции.
| | | <searchId> |
| | | <protoId> |
| | | <путь_к_шаблону> |
| }} | | }} |
| | </pre> |
| | |
| | * Ищет в <code>prototype.json</code> все записи, где <code>protoId</code> встречается у <code>searchId</code>. |
| | * Для каждого найденного ID вызывает <code>getTpl</code> и возвращает все вызовы, склеенные через перевод строки и отрендеренные. |
|
| |
|
| {{NavBox/CO/СРП}}
| | Используется для случаев, когда сущность использует '''несколько''' прототипов одного типа, и нужно вывести по одному шаблону на каждый прототип. |
|
| |
|
| [[Категория:Стандартные рабочие процедуры (Corvax)]]
| | == Типичный рабочий поток == |
| | # В JSON‑файлах (<code>component.json</code>, <code>prototype.json</code> и др.) описываются сущности и связи компонент/прототипов. |
| | # Для каждого компонента/прототипа создаются шаблоны <code>Template:Component/...</code>, <code>Template:prototype/...</code>, которые: |
| | #* вызывают <code><nowiki>{{#invoke:Сущность/поля|main ...}}</nowiki></code> для описания полей карточки; |
| | #* при необходимости используют <code>GetField</code> / <code>Сущность.jsonList</code> / <code>Сущность.json</code> для форматирования сложных JSON‑полей. |
| | # Для вывода карточки на странице сущности используется: |
| | #* либо прямой <code><nowiki>{{#invoke:Сущность|get|MyEntityId}}</nowiki></code>, |
| | #* либо шаблон‑обёртка <code><nowiki>{{Сущность/карточка|MyEntityId}}</nowiki></code>. |
| | # Для специализированных списков/таблиц: |
| | #* <code>Сущность.jsonList</code> — если нужно красиво показать массив/словарь из JSON; |
| | #* <code>Сущность.json</code> — если нужно превратить список эффектов в набор вызовов шаблона; |
| | #* <code>GetField.get</code> — если нужно точечно вытащить одно поле; |
| | #* <code>GetField.getTpl</code> / <code>getTplProto</code> — если нужно строить шаблоны по данным JSON автоматически. |