|
|
| (не показано 236 промежуточных версий 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: 6px;
| | * удобного доступа к данным из JSON (как простыми значениями, так и готовыми вызовами шаблонов). |
| ">
| |
|
| |
|
| {{GradientHeaderFrame/Sub
| | Ниже описан общий принцип работы и отдельные режимы. |
| |title = Ведомственные СРП
| |
| |margin = 0
| |
| |content =
| |
| <div style="
| |
| display: grid;
| |
| grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
| |
| gap: 10px;
| |
| margin: 4px;
| |
| ">
| |
| {{ModernButton
| |
| |link = Стандартные рабочие процедуры (Командование)
| |
| |img = Cmd dep.png
| |
| |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>) и т. п.; |
| |text = Отдел службы безопасности
| | ** '''мета‑информация''' о том, какие ключи доступны для <code>card</code> / <code>title</code> и в каком порядке. |
| |subtext = Лишь стражи порядка сдерживают жестокость и кровопролития.
| | * {{tl|Модуль:Сущность}} по ID сущности: |
| }}
| | ** находит связанные с ней компоненты и прототипы по 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
| |
| |text = Научный отдел
| |
| |subtext = Придет время, когда наука опередит фантазию.
| |
| }}
| |
|
| |
|
| {{ModernButton
| | Пример шаблона компонента: |
| |link = Стандартные рабочие процедуры (Медицинский отдел)
| |
| |img = Med dep.png
| |
| |text = Медицинский отдел
| |
| |subtext = Защитники жизни, вооруженные орудием сострадания.
| |
| }}
| |
|
| |
|
| {{ModernButton
| | <pre> |
| |link = Стандартные рабочие процедуры (Отдел снабжения)
| | {{#invoke:Сущность/поля|main |
| |img = Cargo dep.png
| | |cardLabel_Стоимость = [[Стоимость]] |
| |text = Отдел снабжения
| | |cardContent_Стоимость = '''{{{price}}}''' |
| |subtext = Логистика - основа корпорации.
| | }} |
| }}
| | </pre> |
|
| |
|
| {{ModernButton
| | Другой компонент может добавлять тот же ключ: |
| |link = Стандартные рабочие процедуры (Инженерный отдел)
| |
| |img = Eng dep.png
| |
| |text = Инженерный отдел
| |
| |subtext = Симфония металла, ума и духа.
| |
| }}
| |
|
| |
|
| {{ModernButton
| | <pre> |
| |link = Стандартные рабочие процедуры (Сервисный отдел)
| | {{#invoke:Сущность/поля|main |
| |img = Serv dep.png
| | |cardContent_Стоимость = '''{{{superPrice}}}''' |
| |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: repeat(auto-fill, minmax(350px, 1fr));
| |
| gap: 10px;
| |
| margin: 4px;
| |
| ">
| |
| {{ModernButton
| |
| |link = Стандартные рабочие процедуры (ДСО)
| |
| |img = DarkCentcom_dep.png
| |
| |text = Департамент Специальных Операций
| |
| |subtext = Semper fidelis!
| |
| }}
| |
|
| |
|
| {{ModernButton
| | <pre> |
| |link = Стандартные рабочие процедуры (Юридический департамент)
| | {{#invoke:Сущность|get |
| |img = Law dep.png
| | | <ID или список ID> |
| |text = Юридический департамент NT
| | | blacklist=... |
| |subtext = Да свершится справедливость, даже если мир погибнет.
| | | whitelist=... |
| }}
| | | ignoreComponents=... |
|
| | | ignorePrototypes=... |
| {{ModernButton
| |
| |link = Стандартные рабочие процедуры (ЦК)
| |
| |img = Centcom_dep.png
| |
| |text = Центральное Командование
| |
| |subtext = Слава NanoTrasen!
| |
| }} | | }} |
| </div> | | </pre> |
| | |
| | * '''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}} — аналогично для прототипов. |
| | |
| | Пример простой сборки (через шаблон‑обёртку): |
| | |
| | <pre> |
| | {{Сущность/карточка|MyEntityId}} |
| | </pre> |
| | |
| | где в шаблоне <code>Сущность/карточка</code> внутри: |
| | |
| | <pre> |
| | {{#invoke:Сущность|get|{{{1}}}}} |
| | </pre> |
| | |
| | === p.preview: предпросмотр полей конкретного шаблона === |
| | Используется для проверки, что компонент/прототип правильно описал свои поля. |
| | |
| | <pre> |
| | {{#invoke:Сущность|preview |
| | | Component/meleeWeapon |
| }} | | }} |
| </div> | | </pre> |
| | |
| | * Показывает, какие <code>card</code> / <code>title</code>‑поля объявлены в <code>Template:Component/meleeWeapon</code>. |
| | * Удобно при разработке шаблонов компонентов. |
|
| |
|
| {{GradientHeaderFrame
| | === p.jsonList: вывод JSON в виде списка === |
| |title = Уровни угроз
| | Режим похож на стандартный <code>arraymap</code>, но работает с JSON. |
| |content =
| |
|
| |
|
| {{infobox|1|margin=0|info=Весь персонал станции, вне зависимости от должности, обязан следовать нормам экипажа в зависимости от кода угрозы.<br> Нарушение норм экипажа соответствующего кода является нарушением статьи [[Корпоративный Закон#112|'''Сопротивление представителям власти''']] Корпоративного Закона. Код угрозы распространяется на: станцию, космическое пространство станции, объекты, находящиеся в собственности станции, а также на торговый пост станции. На эвакуационный шаттл и шаттл прибытия установленный на станции уровень угрозы не распространяется, при условии, что те покинули космическое пространство станции.}} | | <pre> |
| | {{#invoke:Сущность|jsonList |
| | | <json или {{{...}}}> |
| | | type = list / enum |
| | | prefix = * |
| | | sep = : |
| | | key_pattern = (.*) |
| | | key_replace = \1 |
| | | value_pattern = (.*) |
| | | value_replace = \1 |
| | }} |
| | </pre> |
|
| |
|
| {{ModernFrame/Сollapsible
| | Примеры JSON: |
| | title = Уровень угрозы Зеленый — Статус: Все чисто; нет угроз на борту/возле станции
| |
| | background-color = #215f21
| |
| | border-color = #277127
| |
| | sub-title = ''«Внимание! Уровень угрозы станции теперь зелёный! Можно безопасно возвращаться на свои рабочие места.»''
| |
| | content = '''Устанавливается: [[Командование | Капитаном]].'''
| |
| ==Условия==
| |
| * Начальный уровень тревоги на станции.
| |
| * Прошло 15 минут с последней опасной активности при '''<span style="color: blue">Синем коде</span>'''.
| |
| ==Нормы экипажа==
| |
| * Экипаж может свободно передвигаться по станции в зависимости от доступа.<br><br>
| |
| *Хранилище может быть открыто если:
| |
| **Требуется его ремонт.
| |
| **Требуется золото для Научного Отдела.
| |
| **Чрезвычайно важный предмет должен быть спрятан в сейфе.<br><br>
| |
| * [[Бумажная работа|Бюрократия]] должна иметь приоритет при работе отделов.<br><br>
| |
| }}<!--
| |
|
| |
|
| --> | | <pre> <!-- <syntaxhighlight lang=json> --> |
| {{ModernFrame/Сollapsible
| | { |
| | title = Уровень угрозы Синий — Статус: Есть подозрение на угрозу внутри/снаружи станции
| | "Blunt": 10, |
| | background-color = #273689
| | "Slash": 5 |
| | border-color = #2c3d9b
| | } |
| | sub-title = ''«Внимание! Уровень угрозы станции теперь синий! На станции присутствует неизвестная угроза. Службе безопасности разрешено проводить выборочные обыски. Членам экипажа рекомендуется выполнять указания, отдаваемые действующей властью. Для ускорения процедур, просим сотрудников проверить наличие ID-карт в своих КПК.»''
| | </pre> <!-- </syntaxhighlight> --> |
| | content = '''Устанавливается: [[Капитан | Капитаном]] или [[Глава Службы Безопасности|Главой Службы Безопасности]]'''.
| |
| ==Условия==
| |
| * Есть подозрение на угрозу на борту станции, или в ближнем космосе. Это включает в себя любые признаки враждебной деятельности, которые не причинили никакого ущерба станции или экипажу, но, тем не менее, кажутся действительной угрозой.
| |
| * Прошло 15 минут с последней опасной активности при '''<span style="color: darkred">Красном коде</span>'''.
| |
| ==Нормы экипажа==
| |
| * Экипаж может свободно передвигаться по станции в зависимости от доступа.<br><br>
| |
| * Весь персонал обязан носить свои ID-карты в своих КПК.<br><br>
| |
| * Экипаж должен докладывать о любой подозрительной активности [[Отдел Службы Безопасности | Службе Безопасности]] лично, или, в крайнем случае, в общий голосовой канал.<br><br>
| |
| *[[Бумажная работа|Бюрократия]] должна иметь приоритет при работе отделов.<br><br>
| |
| }}<!--
| |
|
| |
|
| -->
| | или |
| {{ModernFrame/Сollapsible
| |
| | title = Уровень угрозы Красный — Статус: Наличие угрозы на станции/около станции подтверждено
| |
| | background-color = #630a0a
| |
| | border-color = #750c0c
| |
| | sub-title = ''«Внимание! Уровень угрозы станции теперь красный! На станции присутствует известная угроза. Служба безопасности имеет право применять летальную силу по необходимости. Все члены экипажа, за исключением должностных лиц, обязаны проследовать в свои отделы и ожидать дальнейших инструкций до отмены кода. Нарушители подлежат наказанию.»''
| |
| | content = '''Устанавливается:''' [[Командование | Капитаном]] или [[Глава Службы Безопасности|Главой Службы Безопасности]].
| |
| ==Условия==
| |
| * На станции или поблизости от станции существует подтвержденная открыто враждебная угроза. Эта угроза представляет очевидную опасность для станции и/или экипажа в целом.<br><br>
| |
| ==Нормы экипажа==
| |
| * Весь экипаж, за исключением должностных лиц, обязан находиться в своих отделах на протяжении действия '''<span style="color: darkred">Красного кода</span>''', если не получены иные указания от [[Отдел Службы Безопасности | Службы Безопасности]] и/или [[Командование | Командования]].<br><br>
| |
| * Посетители и гости станции обязаны находиться в баре, библиотеке или жилых отсеках.<br><br>
| |
| * Экипаж обязан подчиняться правомерным приказам[[Отдел Службы Безопасности | сотрудников Службы Безопасности]].<br><br>
| |
| * Весь экипаж обязан переключить датчики костюмов в режим координат.<br><br>
| |
| * Весь экипаж обязан носить свои ID-карты в своих КПК.<br><br>
| |
| *Скорость работы должна иметь приоритет над [[Бумажная работа|бюрократией]].<br><br>
| |
| }}<!--
| |
|
| |
|
| --> | | <pre> <!-- <syntaxhighlight lang=json> --> |
| {{ModernFrame/Сollapsible
| | ["Knife", "Sword", "Bat"] |
| | title = Уровень угрозы Гамма — Статус: Существует огромная угроза безопасности станции и экипажа.
| | </pre> <!-- </syntaxhighlight> --> |
| | background-color = #756203
| |
| | border-color = #877104
| |
| | sub-title = ''«Центральное Командование объявило на станции уровень угрозы "Гамма". Центральное командование объявило на станции уровень угрозы "Гамма". Служба безопасности должна постоянно иметь при себе оружие, гражданский персонал обязан немедленно обратиться к главам отделов для получения указаний к эвакуации. Службе Безопасности разрешено применение летальной силы в случае неповиновения.»''
| |
| | content = '''Устанавливается:''' [[Центральное Командование | Центральным Командованием]].
| |
| ==Условия==
| |
| * Существует огромная угроза для станции и экипажа, под угрозой само существование станции.<br><br>
| |
| ==Нормы экипажа==
| |
| * '''Установлено военное положение.''' Служба Безопасности уполномочена принудить сотрудника к соблюдению закона и норм экипажа '''<span style="color:#C6A500">Гамма Кода</span>''' любыми способами, '''вплоть до применения летального оружия.<br><br>
| |
| * Весь экипаж, за исключением должностных лиц, обязан находиться в своих отделах на протяжении действия '''<span style="color:#C6A500">Гамма Кода</span>''', если не получены иные указания от [[Отдел Службы Безопасности | Службы Безопасности]] и/или [[Командование | Командования]].<br><br>
| |
| * Посетители и гости станции (любой с гражданским уровнем доступа) обязаны находиться в баре, библиотеке или жилом отсеке.<br><br>
| |
| * Экипаж обязан подчиняться правомерным приказам[[Отдел Службы Безопасности | сотрудников Службы Безопасности]].<br><br>
| |
| * Весь экипаж обязан переключить датчики костюмов в режим координат.<br><br>
| |
| * Весь экипаж обязан носить свои ID-карты в своих КПК.<br><br>
| |
| * Скорость работы должна иметь приоритет над [[Бумажная работа|бюрократией]].<br><br>
| |
| }}<!--
| |
|
| |
|
| -->
| | Основные опции: |
| ==Дополнительные коды==
| | * {{пм|type}}: |
| {{ModernFrame/Сollapsible | | ** <code>list</code> — список строк (с префиксом, например <code>* </code>); |
| | title = Уровень угрозы Желтый — Статус: Наличие атмосферной/структурной угрозы на станции | | ** <code>enum</code> — перечисление через запятую (<code>A, B, C</code> без префикса). |
| | background-color = #5c5c00
| | * {{пм|prefix}} — префикс строки списка (по умолчанию <code>* </code>). |
| | border-color = #6e6e00
| | * {{пм|sep}} — разделитель для <code>ключ: значение</code> (по умолчанию <code>: </code>). |
| | sub-title = ''«Внимание! Уровень угрозы станции теперь желтый! На станции присутствует структурная или атмосферная угроза. Инженерно-техническому персоналу требуется немедленно предпринять меры по устранению угрозы. Всем остальным сотрудникам запрещено находиться в опасном участке. Сотрудники Службы Безопасности продолжают выполнение своих обязанностей по предыдущему коду.»''
| | * {{пм|key_pattern}} / {{пм|key_replace}} — regex и замена для ключей. |
| | content = '''Устанавливается: [[Капитан|Капитаном]] или [[Старший Инженер|Старшим Инженером]]'''
| | * {{пм|value_pattern}} / {{пм|value_replace}} — regex и замена для значений. |
| ==Условия==
| |
| * На станции присутствуют серьезные структурные или атмосферные повреждения.<br><br> | |
| ==Нормы работы Инженерного Отдела:==
| |
| * Сотрудникам инженерного отдела следует незамедлительно обратиться к [[Старший Инженер|Старшему Инженеру]] за получением приказов.<br><br> | |
| * [[Инженер|Инженеры]] и [[Атмосферный Техник|Атмосферные Техники]] должны проследовать к зоне и вернуть её в рабочее и безопасное для здоровья экипажа состояние.<br><br>
| |
| * Экипаж должен быть проинформирован о местонахождении структурных и/или атмосферных повреждений в отсеках станции.<br><br> | |
| ==Нормы экипажа==
| |
| * Всему экипажу следует подчиняться правомерным требованиям сотрудников инженерного отдела.<br><br> | |
| * Экипажу '''запрещено''' находиться в местах, где ведутся технические работы по восстановлению станции.<br><br>
| |
| * За Сотрудниками Службы Безопасности закреплены все привилегии предыдущего кода.<br><br> | |
| }}<!-- | |
|
| |
|
| -->
| | Дополнительно: |
| {{ModernFrame/Сollapsible
| | * в шаблоне замены поддерживаются: |
| | title = Уровень угрозы Фиолетовый — Статус: Наличие угрозы вируса на станции
| | ** <code>\1</code> — собственное значение (ключ или значение); |
| | background-color = #501b6b
| | ** <code>\2</code> в <code>value_replace</code> — '''сырой ключ''' (после <code>key_pattern</code>, но до <code>key_replace</code>); |
| | border-color = #602081
| | ** <code>\2</code> в <code>key_replace</code> — итоговое отформатированное значение (после <code>value_replace</code>). |
| | sub-title = ''«Внимание! Уровень угрозы станции теперь фиолетовый! На станции присутствует угроза вируса. Медицинскому персоналу необходимо изолировать членов экипажа с любыми симптомами. Членам экипажа рекомендуется дистанцироваться друг от друга и соблюдать меры безопасности по предотвращению дальнейшего распространения вируса, следовать иным указаниям Главного Врача смены. На время действия Фиолетового Кода любые стыковки станции с другими объектами категорически запрещены. Сотрудники Службы Безопасности продолжают выполнение своих обязанностей по предыдущему коду.»''
| |
| | content = '''Устанавливается: [[Капитан | Капитаном]] или [[Главный врач| Главврачом]].'''
| |
| ==Условия==
| |
| * На станции существует подтвержденная опасная вспышка вируса, которая требует введения карантинных мер.<br><br> | |
| ==Нормы работы Медицинского Отдела==
| |
| * Сотрудникам Медицинского отдела следует незамедлительно обратиться к [[Главный врач| Главврачу]] за получением приказов.<br><br> | |
| * Весь медицинский персонал обязан работать над устранением вспышки вируса, если нет пациентов в критическом состоянии, нуждающихся в помощи.<br><br>
| |
| * Экипаж станции должен быть проинформирован об известных симптомах.<br><br>
| |
| * Весь инфицированный экипаж должен быть помещен в изолятор.<br><br>
| |
| ==Нормы экипажа==
| |
| * Весь экипаж обязан переключить датчики костюмов в режим координат.<br><br> | |
| * При возникновении симптомов вируса, персонал обязан незамедлительно пройти в медицинский отдел.<br><br>
| |
| * Немедицинский персонал обязан подчиняться инструкциям медицинского персонала, в том числе просьбам покинуть зону, оставаться в карантине, или оказать помощь в спасении больных/раненых.<br><br>
| |
| * Стыковка всех кораблей и шаттлов должна быть приостановлена.<br><br>
| |
| * За Сотрудниками Службы Безопасности закреплены все привилегии предыдущего кода.<br><br>
| |
| }}<!--
| |
|
| |
|
| -->
| | Пример, где сначала форматируем тип урона, а затем подставляем его в описание: |
| {{ModernFrame/Сollapsible
| |
| | title = Уровень угрозы Дельта — Статус: Станция находится под угрозой неминуемого уничтожения.
| |
| | background-color = #570809
| |
| | border-color = #690a0b
| |
| | sub-title = ''«Внимание! Уровень угрозы станции теперь Дельта! Станция находится под угрозой неминуемого уничтожения. Членам экипажа рекомендуется слушать глав отделов для получения дополнительной информации. Службе Безопасности приказано работать по протоколу Дельта.»''
| |
| | content = '''Устанавливается: [[Центральное Командование | Центральным Командованием]].'''
| |
| ==Условия:==
| |
| * Механизм Самоуничтожения Станции был запущен [[Центральное Командование | Центральным Командованием]], либо саботирован врагами NanoTrasen.
| |
| * Существует подтвержденная неминуемая ситуация полного уничтожения станции.
| |
| ==Нормы работы Отдела Службы Безопасности==
| |
| *Процедуры не имеют значения.<br><br>
| |
| *В случае, если МСС '''не''' был запущен [[Центральное Командование | Центральным Командованием]]:
| |
| **Обезвреживание бомбы не рекомендуется. Служба Безопасности должна обеспечить эвакуацию экипажа.
| |
| **При невозможности эвакуации, всеми силами обезвредить ядерную боеголовку.<br><br>
| |
| *В случае запуска МСС [[Центральное Командование | Центральным Командованием]]:
| |
| **Служба Безопасности обязана сохранять порядок и не допускать распространение угрозы со станции.
| |
| **Служба Безопасности имеет право применить летальное оружие в отношении любого, кто попытается обезвредить ядерную боеголовку.<br><br>
| |
| *В случае иных ситуаций неминуемого уничтожения станции:
| |
| **Служба Безопасности обязана обеспечить эвакуацию экипажа.<br><br>
| |
| ==Нормы Экипажа:==
| |
| * В случае, если МСС '''не''' был запущен [[Центральное Командование | Центральным Командованием]]:
| |
| **Обезвреживание бомбы не рекомендуется. Первоочередной задачей стоит эвакуация с объекта.
| |
| **При невозможности эвакуации, рекомендуется всеми силами обезвредить ядерную боеголовку.<br><br>
| |
| * В случае запуска МСС [[Центральное Командование | Центральным Командованием]]:
| |
| **Экипаж должен сохранять спокойствие и следовать указаниям Центрального Командования.<br><br>
| |
| *В случае иных ситуаций неминуемого уничтожения станции:
| |
| **Первоочередной задачей стоит эвакуация с объекта.
| |
| **Командованию разрешается запустить досрочную эвакуацию шаттла с объекта.<br><br>
| |
| }}<!--
| |
|
| |
|
| -->
| | <pre> |
| {{ModernFrame/Сollapsible | | {{#invoke:Сущность|jsonList |
| | title = Уровень угрозы ЗАСЕКРЕЧЕНО | | | {{{damage.types}}} |
| | background-color = #2d2d37 | | | type = enum |
| | border-color = #3c3c49 | | | key_replace = <nowiki>\1</nowiki> <!-- "Blunt" --> |
| | sub-title = ''Никому на станции не известно о других уровнях угрозы.'' | | | value_replace = <nowiki>'''\1''' \2</nowiki> <!-- "'''10''' Blunt" --> |
| | content =
| |
| }} | | }} |
| | </pre> |
| | |
| | === p.json: превращение JSON в вызовы шаблонов === |
| | Режим для случаев, когда в JSON лежит список эффектов/объектов, и нужно по каждому вызвать отдельный шаблон. |
|
| |
|
| | <pre> |
| | {{#invoke:Сущность|json |
| | | <json или {{{...}}}> |
| | | <путь_к_шаблону> |
| }} | | }} |
| | </pre> |
| | |
| | * '''1‑й параметр / <code>json=</code>''' — строка JSON. |
| | * '''2‑й параметр / <code>template=</code>''' — путь к шаблону, например <code>Component/adjustPlant</code>. |
|
| |
|
| ==Дополнительные СРП==
| | Ожидаемый формат JSON‑массива: |
|
| |
|
| {{RulesBox | | <pre> <!-- <syntaxhighlight lang=json> --> |
| |title = Чрезвычайные Ситуации
| | [ |
| |content = <p></p>
| | { |
| '''Список Чрезвычайных Ситуаций включает в себя:'''
| | "!type:PlantAdjustNutrition": { |
| *Введение '''<span style="color:#C6A500">Гамма кода</span>'''.
| | "amount": 0.1 |
| *Введение '''<span style="color:purple">Дельта кода</span>''', если ядерная боеголовка не была запущена Центральным Командованием.
| | } |
| *Критические повреждения станции.
| | }, |
| *Нападение космического дракона, создавшего второй активный разлом.
| | { |
| *Пребывание ревенанта на объекте, которое продолжается больше 15-ти минут.
| | "!type:PlantAdjustWeeds": { |
| *Вспышка зомби вируса, поразившая более 10% экипажа.
| | "amount": 2 |
| *Выход сингулярности.
| | } |
| *Нападение Ядерных Оперативников Синдиката.
| | }, |
| *Попытка насильственного свержения власти на территории объекта корпорации NanoTrasen, крупномасштабные бунты.
| | { |
| | "!type:PlantAdjustPests": { |
| | "amount": 2 |
| | } |
| | } |
| | ] |
| | </pre> <!-- </syntaxhighlight> --> |
| | |
| | Для каждого элемента создаётся вызов: |
| | |
| | <pre> |
| | {{Component/adjustPlant |
| | |id=!type:PlantAdjustNutrition |
| | |amount=0.1 |
| }} | | }} |
| | {{Component/adjustPlant |
| | |id=!type:PlantAdjustWeeds |
| | |amount=2 |
| | }} |
| | {{Component/adjustPlant |
| | |id=!type:PlantAdjustPests |
| | |amount=2 |
| | }} |
| | </pre> |
|
| |
|
| {{RulesBox | | Особенности: |
| |title = СРП при нарушении условий содержания Сингулярности
| | * Если JSON — объект вида <code>{ "id1": {...}, "id2": {...} }</code>, происходит аналогичный проход по парам <code>ключ → объект</code>. |
| |content = <p></p>
| | * Все вызовы склеиваются через перевод строки и прогоняются через <code>frame:preprocess</code>, поэтому внутри шаблона можно использовать любую вики‑разметку. |
| *Гравитационную Сингулярность должна отслеживаться любой ценой. | | |
| **Если Гравитационная Сингулярность направляется к станции, то должен быть вызван шаттл.
| | == Модуль: GetField == |
| **Если Гравитационная Сингулярность движется в сторону от станции, следует учесть ущерб, нанесенный станции.
| | Модуль <code>GetField</code> используется для доступа к тем же JSON‑данным <code>.../data</code>, но на более низком уровне. |
| *В случае серьезного повреждения станции вызвать шаттл эвакуации.
| | |
| *В зависимости от степени небольших повреждений, следует вызвать ОБР или восстановить повреждения своими силами.
| | === p.flattenField: расплющивание записи в параметры === |
| | <pre> |
| | {{#invoke:GetField|flattenField |
| | | <id> |
| | | <путь_к_json_странице> |
| }} | | }} |
| | </pre> |
| | |
| | Например: |
|
| |
|
| {{RulesBox | | <pre> |
| |title = СРП при объявлении войны Синдикатом | | {{#invoke:GetField|flattenField |
| |content = <p></p> | | | MyEntityId |
| *Все ограничения на вооружение сняты.
| | | component/item.json |
| *[[Отдел Снабжения]] должен начать заказ как можно большего количества оружия.
| |
| **[[Отдел Службы Безопасности]] является приоритетом при распределении вооружения среди экипажа.
| |
| *Возведение баррикад в критически важных местах рекомендуется.
| |
| *Диск ядерной аутентификации '''запрещено''' выносить за пределы станции.
| |
| }} | | }} |
| | </pre> |
| | |
| | Возвращает строку вида: |
| | |
| | <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> и других обёрток. |
| | |
| | === p.get: получение значения по пути === |
| | <pre> |
| | {{#invoke:GetField|get |
| | | <id или пусто для "default"> |
| | | <путь_к_json_странице> |
| | | <ключ.с.точками> |
| | }} |
| | </pre> |
| | |
| | Примеры: |
| | |
| | <pre> |
| | {{#invoke:GetField|get |
| | | MyEntityId |
| | | component/item.json |
| | | damage.types |
| | }} |
| | </pre> |
| | |
| | Если в JSON: |
| | |
| | <pre> <!-- <syntaxhighlight lang=json> --> |
| | "damage": { |
| | "types": { |
| | "Blunt": 10 |
| | } |
| | } |
| | </pre> <!-- </syntaxhighlight> --> |
| | |
| | то результатом будет: |
| | |
| | <pre> |
| | {"Blunt":10} |
| | </pre> |
| | |
| | то есть: |
| | * для таблиц модуль пытается сделать <code>mw.text.jsonEncode(v)</code> и вернуть JSON‑строку; |
| | * для простых значений возвращается строка <code>tostring(v)</code>. |
| | |
| | Если <code>keyPath</code> пуст, возвращается весь объект (как JSON). |
| | |
| | === p.getTpl: вызов шаблона по данным JSON === |
| | <pre> |
| | {{#invoke:GetField|getTpl |
| | | <id> |
| | | <путь_к_json_странице> |
| | | <путь_к_шаблону> |
| | }} |
| | </pre> |
| | |
| | Пример: |
| | |
| | <pre> |
| | {{#invoke:GetField|getTpl |
| | | MyEntityId |
| | | component/item.json |
| | | Component/meleeWeapon |
| | }} |
| | </pre> |
| | |
| | Работа: |
| | * внутри вызывает <code>flattenField</code>, получая строку <code>key=value|...</code>; |
| | * формирует строку вида: |
| | |
| | <pre> |
| | {{Component/meleeWeapon |
| | |id=MyEntityId |
| | |damage.types=... |
| | |... |
| | }} |
| | </pre> |
| | |
| | * и прогоняет её через <code>frame:preprocess</code>, возвращая итоговый рендер. |
| | |
| | Это удобный способ «подключить» шаблон компонента к данным из 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 автоматически. |