|
|
| (не показано 218 промежуточных версий 4 участников) |
| Строка 1: |
Строка 1: |
| {{СРП/CO/Info/Main}}__NOTOC__ | | {{docpage}}{{TOC hidden}} |
| | {{OnLua|Сущность|module1=Сущность|module2=Сущность/поля|module3=GetField}} |
|
| |
|
| {{GradientHeaderFrame | | Модульный набор {{tl|Модуль:Сущность}} + {{tl|Модуль:Сущность/поля}} + {{tl|Модуль:GetField}} предназначен для: |
| |title = Общие СРП
| | * автоматической сборки карточек сущностей (компонентов и прототипов) по их ID; |
| |padding = 10px
| | * описания полей в шаблонах компонентов (какие поля идут в карточку, как подписаны); |
| |content =
| | * удобного доступа к данным из JSON (как простыми значениями, так и готовыми вызовами шаблонов). |
|
| |
|
| {{Шаблон:СРП/CO/Научный отдел/Общие СРП}}
| | Ниже описан общий принцип работы и отдельные режимы. |
|
| |
|
| | == Общий принцип работы == |
| | * В шаблонах компонентов/прототипов (<code>Template:Component/...</code>, <code>Template:prototype/...</code>) через {{tl|Модуль:Сущность/поля}} описываются поля: |
| | ** '''лейблы''' (<code>cardLabel_*</code>) и '''содержимое''' (<code>cardContent_*</code>), заголовки (<code>title_*</code>) и т. п.; |
| | ** '''мета‑информация''' о том, какие ключи доступны для <code>card</code> / <code>title</code> и в каком порядке. |
| | * {{tl|Модуль:Сущность}} по ID сущности: |
| | ** находит связанные с ней компоненты и прототипы по JSON‑данным; |
| | ** для каждого компонента/прототипа читает шаблоны и метаданные; |
| | ** собирает все поля в единую структуру; |
| | ** формирует один вызов карточки <code><nowiki>{{карточка/сущность|...}}</nowiki></code> (и блоки заголовков). |
| | * Внутри полей можно писать вики‑параметры <code>{{{...}}}</code> и вызывать дополнительные модули. |
| | * {{tl|Модуль:GetField}} даёт доступ к JSON‑данным на низком уровне: |
| | ** как «расплющенный» набор параметров (<code>flattenField</code>); |
| | ** как отдельные значения (<code>get</code>); |
| | ** как готовые вызовы шаблонов с нужными параметрами (<code>getTpl</code>, <code>getTplProto</code>). |
| | |
| | == Модуль: Сущность/поля == |
| | Шаблоны компонентов используют модуль <code>Сущность/поля</code> для объявления полей, которые будут собираться в карточку. |
| | |
| | Пример шаблона компонента: |
| | |
| | <pre> |
| | {{#invoke:Сущность/поля|main |
| | |cardLabel_Стоимость = [[Стоимость]] |
| | |cardContent_Стоимость = '''{{{price}}}''' |
| }} | | }} |
| | </pre> |
| | |
| | Другой компонент может добавлять тот же ключ: |
|
| |
|
| {{GradientHeaderFrame | | <pre> |
| |title = Ведомственные СРП | | {{#invoke:Сущность/поля|main |
| |padding = 10px
| | |cardContent_Стоимость = '''{{{superPrice}}}''' |
| |content =
| | }} |
| | </pre> |
|
| |
|
| {{Шаблон:СРП/CO/Научный отдел/Научный руководитель}}<!--
| | Особенности: |
| | * Пара <code>cardLabel_<Ключ></code> / <code>cardContent_<Ключ></code> описывает одну строку карточки (лейбл и содержимое). |
| | * Если несколько шаблонов дают один и тот же <code>cardContent_Ключ</code>, содержимое '''объединяется''', а лейбл берётся первый непустой. |
| | * То же относится к другим режимам, перечисленным в мета‑JSON шаблона (разделы <code>card</code>, <code>title</code> и т. п.), которые читает {{tl|Модуль:Сущность}}. |
|
| |
|
| -->
| | == Модуль: Сущность == |
| {{Шаблон:СРП/CO/Научный отдел/Учёный}}<!--
| |
|
| |
|
| -->
| | === p.get: основная сборка карточки === |
| {{Шаблон:СРП/CO/Научный отдел/Научный ассистент}}
| | Вызов: |
|
| |
|
| | <pre> |
| | {{#invoke:Сущность|get |
| | | <ID или список ID> |
| | | blacklist=... |
| | | whitelist=... |
| | | ignoreComponents=... |
| | | ignorePrototypes=... |
| }} | | }} |
| | </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>, чтобы отрендерить разметку. |
|
| |
|
| {{GradientHeaderFrame | | Параметры фильтрации: |
| |title = Процедуры и протоколы | | * {{пм|blacklist}} — список <code>режим_Ключ</code> через запятую, чтобы исключить поле: |
| |padding = 10px | | ** пример: <code>blacklist=card_Наносит повреждения,title_Что‑то</code>; |
| |content = | | * {{пм|whitelist}} — наоборот, список разрешённых <code>режим_Ключ</code>, остальные игнорируются; |
| | * {{пм|ignoreComponents}} / {{пм|ignoreComponent}} — список имён компонентов через запятую, которые полностью игнорируются для этого вызова; |
| | * {{пм|ignorePrototypes}} / {{пм|ignorePrototype}} — аналогично для прототипов. |
|
| |
|
| Данные процедуры регламентируют правила работы сотрудников научного отдела и являются обязательными к исполнению.<br>
| | Пример простой сборки (через шаблон‑обёртку): |
|
| |
|
| {{RulesBox
| | <pre> |
| |title = Процедура контроля аномалий
| | {{Сущность/карточка|MyEntityId}} |
| |content = <p></p>
| | </pre> |
| Выполнение данных процедур обязательно при работе с аномалиями стандартного типа, вызываемыми {{#invoke:Entity Lookup|createtexttooltip|генератором аномалий|MachineAnomalyGenerator|img=Anomaly generator.png}} или [[Список случайных событий#Гиперэнергетический волновой поток|гиперэнергетическими волновыми потоками]].
| |
| # Использование генератора для вызова аномалий должно быть одобрено научным руководителем. Если руководитель отсутствует, то требуется разрешение капитана.
| |
| # Вызов аномалий '''запрещён''' во время [[СРП#Чрезвычайные_ситуации|чрезвычайных ситуаций]].
| |
| # Перед вызовом аномалии сотрудник обязан предупредить об этом в общий канал связи.
| |
| # Сотрудник, вызвавшийся работать с аномалией, становится ответственным за её контроль.
| |
| ## При обнаружении [[Список случайных событий#Гиперэнергетический волновой поток|гиперэнергетического волнового потока]] среди свободных научных сотрудников должен быть выбран ответственный за поиск и контроль возможных аномалий.
| |
| ## Научный руководитель имеет право самостоятельно назначать и переназначать ответственных за аномалии.
| |
| ## Передача ответственности за аномалию происходит при обоюдном согласии сторон, уведомлении об этом научного руководителя и передаче оборудования для работы с аномалией, сведений о её местоположении.
| |
| # Ответственный за аномалию сотрудник обязан в срочном порядке узнать её местоположение и начать работу с ней.
| |
| # Сотрудник должен оценить обстановку вокруг аномалии и возможные риски, связанные с её влиянием на окружение, для принятия решения о содержании, перемещении или уничтожении объекта.
| |
| ## Содержание аномалии:
| |
| ##* в закрытом отделе согласуется с главой этого отдела;
| |
| ##* допускается в общественных и многолюдных местах, если это несильно препятствует работе и перемещению персонала;
| |
| ##* допускается в технических помещениях и отдалённых местах станции, куда у сотрудника есть доступ, если зона её воздействия не охватывает многолюдные коридоры и рабочие помещения.
| |
| ## Если аномалия находится в месте с повышенным трафиком или способна разрушить/покинуть зону содержания, то сотрудник обязан вести прямое наблюдение за объектом.
| |
| ## Научный руководитель может потребовать ликвидацию или перемещение аномалии, независимо от её месторасположения, если посчитает это нужным.
| |
| ## Аномалия должна быть ликвидирована или перемещена по первому требованию главы отдела, в котором она содержится.
| |
| # Зона для долговременного содержания аномалии должна быть обустроена так, чтобы был минимизирован потенциальный вред от её воздействия имуществу и экипажу станции с учётом местоположения, вида, дальности воздействия, поведения и иных факторов.
| |
| # '''Запрещено''' намеренно повышать показатель опасности аномалии выше '''80%''' при её долговременном содержании.
| |
| #* Аномалия с уровнем опасности выше '''85%''' должна быть ликвидирована любым из способов.
| |
| # Разрешается проводить умышленный коллапс аномалий с целью получения продуктов коллапса, если предварительно были предприняты меры по минимизации ущерба от возможного опасного воздействия.
| |
| }}<!--
| |
|
| |
|
| -->
| | где в шаблоне <code>Сущность/карточка</code> внутри: |
| {{RulesBox
| |
| |title = Процедура признания разумности существа
| |
| |content = <p></p>
| |
| ''Данная процедура направлена на выявление разумности существ. Её проведение обязательно в случае возникновения потребности наделить [[Корпоративный Закон#Основные Права Разумных Существ на территории объектов корпорации NanoTrasen|ОПРС]] любого существа, которое ранее не считалось разумным.''
| |
| # К процедуре допускаются существа, не несущие угрозу экипажу или имуществу станции.
| |
| # Процедуру может проводить любой сотрудник научного отдела.
| |
| # Сотрудник должен подготовить и провести тестирование в форме опроса или эксперимента, направленное на выявление у существа следующих признаков:
| |
| #* способность к речи и логическому мышлению;
| |
| #* неинстинктивное поведение;
| |
| #* умение обучаться;
| |
| #* способность к сознательной творческой деятельности.
| |
| # Если тестирование проводится рядовым сотрудником, то
| |
| #* его ход должен быть описан в форме [[Бумажная работа|отчёта об эксперименте]];
| |
| #* научный руководитель имеет право провести дополнительную проверку для подтверждения результатов.
| |
| # В случае успешного прохождения существом этой процедуры, научный руководитель или капитан могут издать [[Бумажная работа|приказ]] о наделении его [[Корпоративный Закон#Основные Права Разумных Существ на территории объектов корпорации NanoTrasen|Основными Правами Разумных Существ]].
| |
| }}<!--
| |
|
| |
|
| -->
| | <pre> |
| | {{#invoke:Сущность|get|{{{1}}}}} |
| | </pre> |
|
| |
|
| == Техника безопасности научного отдела == | | === p.preview: предпросмотр полей конкретного шаблона === |
| ''Техника безопасности должна соблюдаться в полном объеме, пока наличие ЧС сделает невозможным ее соблюдение.''
| | Используется для проверки, что компонент/прототип правильно описал свои поля. |
| <tabs>
| | |
| <tab name="Общие положения">
| | <pre> |
| == Общие положения ==
| | {{#invoke:Сущность|preview |
| # Любые ксеноархеологические находки, аномальные объекты и ксенобиологические организмы, подлежащие изучению и представляющие угрозу, либо уровень угрозы которых известен не до конца, должны храниться в {{#invoke:Entity Lookup|createtexttooltip|защищённых контейнерах|CrateScienceSecure|img=Crate_secure_sci.png}}/{{#invoke:Entity Lookup|createtexttooltip|контейнерах артефактов|CrateArtifactContainer|img=CrateArtifactContainer.png}} или изучаться в специальных отсеках научного отдела.<br>
| | | Component/meleeWeapon |
| ## Если безопасная транспортировка объекта в научный отдел невозможна, то зона вокруг него должна быть закрыта от постороннего персонала и изолирована от воздействия объекта.<br><br>
| |
| # Сотрудник обязан оценивать исходящую от объекта угрозу и носить защитное снаряжение при работе.
| |
| ## Это включает в себя следующие средства, но не ограничивается ими:<br>
| |
| ### {{#invoke:Entity Lookup|createtexttooltip|Лабораторный халат|ClothingOuterCoatLab|img=LabCoat.png}} при любой работе в пределах отдела и работе с аномалиями, если не предусматривается использование иных средств защиты.<br>
| |
| ### {{#invoke:Entity Lookup|createtexttooltip|Латексные|ClothingHandsGlovesLatex|img=Latex Gloves.png}}/{{#invoke:Entity Lookup|createtexttooltip|нитриловые|ClothingHandsGlovesNitrile|img=Nitrile Gloves.png}} перчатки при работе с химическими веществами, ксенофауной, а также при непосредственном контакте с ксеноартефактами и прочими объектами, подлежащими изучению.<br>
| |
| ### {{#invoke:Entity Lookup|createtexttooltip|Противогаз|ClothingMaskGas|img=ClothingMaskGas.png}}/{{#invoke:Entity Lookup|createtexttooltip|дыхательная маска|ClothingMaskBreath|img=Breath mask.png}} с баллоном при работе с летучими химикатами, а также при входе в камеру смешивания или камеру содержания объекта, выделяющего токсичные газы.<br>
| |
| ### {{#invoke:Entity Lookup|createtexttooltip|Противорадиационный костюм|ClothingOuterSuitRad|img=Radsuit.png}} при работе с радиоактивными объектами.<br>
| |
| ### {{#invoke:Entity Lookup|createtexttooltip|Пожарный костюм|ClothingOuterSuitFire|img=Fire.png}} при работе с воспламеняющими объектами.<br>
| |
| ### {{#invoke:Entity Lookup|createtexttooltip|Биозащитный костюм|ClothingOuterBioScientist|img=Bio_scientist.png}} при работе с объектами, оказывающими пагубное биохимическое воздействие на окружение.<br><br>
| |
| ## По окончании работы с опасным объектом и/или истечении угрозы защитные костюмы должны быть помещены обратно в хранилище, из которого были взяты.<br><br>
| |
| # Научный персонал обязан поддерживать порядок и чистоту в рабочих помещениях отдела.<br><br>
| |
| # Научному сотруднику запрещено экспериментировать над самим собой, если эксперимент может принести вред здоровью.<br><br>
| |
| # Сотрудникам научного отдела '''запрещено''' как-либо изменять структуру энергопитания станции, в том числе и внутри своего отдела, без разрешения [[Старший Инженер|старшего инженера]].<br><br>
| |
| # Установка и использование гиперконвекционного оборудования не допускается без заранее подготовленной системы охлаждения.<br><br>
| |
| </tab>
| |
| <tab name="Ксеноархеология">
| |
| == Ксеноархеологические положения ==
| |
| # Намеренная активация неизученных или опасных артефактов, находящихся на борту станции за пределами камеры исследования, '''запрещена'''.<br><br>
| |
| # Транспортировка и хранение неизученных или опасных артефактов за пределами камеры исследования должна производиться с использованием {{#invoke:Entity Lookup|createtexttooltip|специального контейнера|CrateArtifactContainer|img=CrateArtifactContainer.png}}.<br><br>
| |
| # При исследовании артефактов обязательно наличие заполненного водой огнетушителя в ксеноархеологической лаборатории.<br><br>
| |
| # При активации артефакта сотрудник должен находиться за пределами камеры исследований, если возможно активировать артефакт вне её.<br><br>
| |
| </tab>
| |
| <tab name="Работа с химией и газами">
| |
| == Нормы безопасности при работе с химией и газами ==
| |
| # Испытание взрывчатки должно проходить на специальном полигоне или за пределами станции.<br><br>
| |
| # Если планируется синтез огнеопасных веществ, то лаборатория должна быть оборудована огнетушителем, заполненным водой.<br><br>
| |
| # Уборка веществ, бурно реагирующих с водой, должна происходить после их обезвреживания с использованием безопасных химических реакций, либо "сухим" методом.<br><br>
| |
| # Сотрудникам научного отдела '''запрещено''' как-либо изменять структуру системы дистрибьюции воздуха и фильтрации отходов станции без разрешения [[Старший Инженер|старшего инженера]].<br><br>
| |
| </tab>
| |
| </tabs>
| |
| }} | | }} |
| | </pre> |
| | |
| | * Показывает, какие <code>card</code> / <code>title</code>‑поля объявлены в <code>Template:Component/meleeWeapon</code>. |
| | * Удобно при разработке шаблонов компонентов. |
| | |
| | === p.jsonList: вывод JSON в виде списка === |
| | Режим похож на стандартный <code>arraymap</code>, но работает с JSON. |
| | |
| | <pre> |
| | {{#invoke:Сущность|jsonList |
| | | <json или {{{...}}}> |
| | | type = list / enum |
| | | prefix = * |
| | | sep = : |
| | | key_pattern = (.*) |
| | | key_replace = \1 |
| | | value_pattern = (.*) |
| | | value_replace = \1 |
| | }} |
| | </pre> |
| | |
| | Примеры JSON: |
| | |
| | <pre> <!-- <syntaxhighlight lang=json> --> |
| | { |
| | "Blunt": 10, |
| | "Slash": 5 |
| | } |
| | </pre> <!-- </syntaxhighlight> --> |
| | |
| | или |
|
| |
|
| {{NavBox/CO/СРП}}
| | <pre> <!-- <syntaxhighlight lang=json> --> |
| | ["Knife", "Sword", "Bat"] |
| | </pre> <!-- </syntaxhighlight> --> |
|
| |
|
| [[Категория:Стандартные рабочие процедуры (Corvax)]]
| | Основные опции: |
| | * {{пм|type}}: |
| | ** <code>list</code> — список строк (с префиксом, например <code>* </code>); |
| | ** <code>enum</code> — перечисление через запятую (<code>A, B, C</code> без префикса). |
| | * {{пм|prefix}} — префикс строки списка (по умолчанию <code>* </code>). |
| | * {{пм|sep}} — разделитель для <code>ключ: значение</code> (по умолчанию <code>: </code>). |
| | * {{пм|key_pattern}} / {{пм|key_replace}} — regex и замена для ключей. |
| | * {{пм|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>). |
|
| |
|
| | Пример, где сначала форматируем тип урона, а затем подставляем его в описание: |
|
| |
|
| | <pre> |
| | {{#invoke:Сущность|jsonList |
| | | {{{damage.types}}} |
| | | type = enum |
| | | key_replace = <nowiki>\1</nowiki> <!-- "Blunt" --> |
| | | value_replace = <nowiki>'''\1''' \2</nowiki> <!-- "'''10''' Blunt" --> |
| | }} |
| | </pre> |
|
| |
|
| {{СРП/CO/Info/Main}}{{СРП/CO/Info/WarnCMD}}__NOTOC__
| | === p.json: превращение JSON в вызовы шаблонов === |
| | Режим для случаев, когда в JSON лежит список эффектов/объектов, и нужно по каждому вызвать отдельный шаблон. |
|
| |
|
| {{GradientHeaderFrame | | <pre> |
| |title = Иерархия командования | | {{#invoke:Сущность|json |
| |padding = 10px | | | <json или {{{...}}}> |
| |content =
| | | <путь_к_шаблону> |
| [[Файл:Новая иерархия командования.png|class=noSprite]]
| |
| }} | | }} |
| | </pre> |
|
| |
|
| {{GradientHeaderFrame
| | * '''1‑й параметр / <code>json=</code>''' — строка JSON. |
| |title = Общие СРП
| | * '''2‑й параметр / <code>template=</code>''' — путь к шаблону, например <code>Component/adjustPlant</code>. |
| |padding = 10px
| |
| |content = <p></p>
| |
|
| |
|
| * Все СРП командования должны исполнятся наравне с ведомственными СРП.
| | Ожидаемый формат JSON‑массива: |
| * СРП главы отдела распространяются на всех глав отделов и на капитана.
| |
| * СРП главы персонала распространяются на главу персонала и на капитана, в случае исполнения им обязанностей главы персонала.
| |
| * СРП капитана распространяются на капитана.
| |
|
| |
|
| {{Шаблон:СРП/CO/Командование/Общие СРП}}<!-- | | <pre> <!-- <syntaxhighlight lang=json> --> |
| | [ |
| | { |
| | "!type:PlantAdjustNutrition": { |
| | "amount": 0.1 |
| | } |
| | }, |
| | { |
| | "!type:PlantAdjustWeeds": { |
| | "amount": 2 |
| | } |
| | }, |
| | { |
| | "!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> |
| | |
| | Особенности: |
| | * Если JSON — объект вида <code>{ "id1": {...}, "id2": {...} }</code>, происходит аналогичный проход по парам <code>ключ → объект</code>. |
| | * Все вызовы склеиваются через перевод строки и прогоняются через <code>frame:preprocess</code>, поэтому внутри шаблона можно использовать любую вики‑разметку. |
|
| |
|
| {{GradientHeaderFrame
| | == Модуль: GetField == |
| |title = Ведомственные СРП
| | Модуль <code>GetField</code> используется для доступа к тем же JSON‑данным <code>.../data</code>, но на более низком уровне. |
| |padding = 10px
| |
| |content =
| |
|
| |
|
| {{Шаблон:СРП/CO/Командование/Капитан}}<!-- | | === p.flattenField: расплющивание записи в параметры === |
| | <pre> |
| | {{#invoke:GetField|flattenField |
| | | <id> |
| | | <путь_к_json_странице> |
| | }} |
| | </pre> |
|
| |
|
| -->
| | Например: |
| {{Шаблон:СРП/CO/Командование/Глава Персонала}}<!--
| |
|
| |
|
| -->
| | <pre> |
| | {{#invoke:GetField|flattenField |
| | | MyEntityId |
| | | component/item.json |
| }} | | }} |
| | </pre> |
|
| |
|
| {{GradientHeaderFrame
| | Возвращает строку вида: |
| |title = Процедуры и протоколы
| |
| |padding = 10px
| |
| |content =
| |
|
| |
|
| Порядок действий, которые необходимо принять при возникновении той или иной ситуации.<br>
| | <pre> |
| | damage.types={"Blunt":10}|wieldSound=someSound|... |
| | </pre> |
|
| |
|
| Процедуры и протоколы командования обязаны исполняться в четком соответствии с установленными пунктами, пока наличие ЧП не сделает невозможным их выполнение, необоснованные грубые нарушения процедур командования может пресекаться ЦК, '''вплоть до расторжение всех контрактов с объектом корпорации NanoTrasen'''.
| | Особенности: |
| | * Вложенные объекты кодируются в JSON и заворачиваются в <code><nowiki><nowiki></nowiki></code>, чтобы их можно было безопасно передавать как параметр. |
| | * Массивы кодируются в JSON без <code><nowiki><nowiki></nowiki></code>, чтобы удобно обрабатывать их модулями вроде <code>Сущность.jsonList</code>. |
|
| |
|
| {{RulesBox
| | Этот режим используется внутри <code>GetField.getTpl</code> и других обёрток. |
| |title = Процедура назначения ВрИО капитана
| |
| |content = <p></p>
| |
| # В отсутствие Капитана исполняющим его обязанности назначается Глава персонала.
| |
| <!--#В чрезвычайных ситуациях должность Капитана должна переходить Глава Службы Безопасности ровно до того момента, пока чрезвычайная ситуация не будет разрешена, после чего должность должна быть возвращена сотруднику, временно исполняющему обязанности Капитана.-->
| |
| # В отсутствие Капитана и Главы Персонала среди остальных глав отделов должно пройти голосование на назначение одного из них на должность исполняющего обязанности Капитана.
| |
| ## Должности ВрИО глав не являются кандидатами на должность ВрИО капитана.
| |
| # Центральное командование должно быть уведомлено о назначении ВрИО Капитана.
| |
| # ВрИО Капитана не получает юридическую неприкосновенность.
| |
| }}<!--
| |
|
| |
|
| -->
| | === p.get: получение значения по пути === |
| {{RulesBox | | <pre> |
| |title = Процедура отстранения капитана от командования | | {{#invoke:GetField|get |
| |content = <p></p> | | | <id или пусто для "default"> |
| # Капитан может быть уволен по собственному желанию, по приказу ЦК или при решении не анонимного голосования глав в соответствии с [[#Причины отстранения от должности|причинами отстранения от должности]].
| | | <путь_к_json_странице> |
| #* ВрИО капитан обязан вернуться на свою изначальную должность после прибытия нового капитана с Центрального командования.
| | | <ключ.с.точками> |
| # В случае голосования:
| | }} |
| #* Необходимо большинство голосов глав отделов «ЗА» отстранение Капитана.
| | </pre> |
| #* При равном количестве голосов «ЗА» и «ПРОТИВ», отстранение Капитана отменяется.
| |
| #* Воздержание от голоса, отказ голосовать и попытка сорвать голосование считается голосом «ЗА».
| |
| # Если на станции присутствуют менее трех глав отделов, то отстранить Капитана '''с помощью голосования''' невозможно.
| |
| # По факту увольнения, бывший Капитан обязан сдать всю свою должностную экипировку, включая одежду и аксессуары, понизить уровень допуска.
| |
| #* В случае сопротивления, Служба Безопасности обязана арестовать Капитана по статье [[Корпоративный Закон#145|самоуправство]].
| |
| #* Капитан не лишается юридической неприкосновенности, если его отстранение не было связано с нарушением Корпоративного Закона.
| |
| # Новый Капитан должен быть своевременно выбран в соответствии с [[#Процедура назначения ВрИО Капитана|процедурой назначения ВрИО Капитана]].
| |
| }}<!-- | |
|
| |
|
| -->
| | Примеры: |
| {{RulesBox
| |
| |title = Процедура назначения ВрИО главы отдела
| |
| |content = <p></p>
| |
| # Выбор кандидата на должность ВрИО главы отдела должен быть проведен среди высших в иерархии, после должности, ВрИО которого назначается.
| |
| #*В качестве ВрИО главы персонала может выступать любой сотрудник станции.
| |
| # Выбор должности может быть осуществлен по уровню квалификации, конкурсному принципу или личной инициативе работника.
| |
| # Капитан вправе потребовать от кандидата на пост ВрИО пройти процедуру установки импланта защиты разума. Кандидат вправе отказать, в таком случае капитан должен либо отозвать требование, либо выбрать другого кандидата. Принудительная установка импланта строго запрещена.
| |
| # В случае отказа всех работников становится ВрИО главой отдела, Капитан вправе назначить ВрИО в принудительном порядке, либо взять руководство отделом на себя до прибытия главы. При принудительном назначении сотрудника на пост ВрИО, Капитан не имеет права требовать установку импланта защиты разума.
| |
| # Должность ВрИО приобретает все права, обязанности, рабочее снаряжение и доступы, соответствующие данной должности.
| |
| # Допускается назначение на должность ВрИО смотрителя в соответствии с текущей процедурой.
| |
| }}<!--
| |
|
| |
|
| -->
| | <pre> |
| {{RulesBox | | {{#invoke:GetField|get |
| |title = Процедура отстранения ВрИО главы отдела | | | MyEntityId |
| |content = <p></p> | | | component/item.json |
| # ВрИО глава отдела обязан вернуться на свою изначальную должность, сдать выданное снаряжение и доступы после прибытия нового главы с Центрального Командования.
| | | damage.types |
| # В случае, если ВрИО глава не справляется со своими обязанностями, новый глава должен быть выбран в соответствие с [[#Процедура назначения ВрИО главы отдела|процедурой назначения ВрИО главы отдела]].
| | }} |
| # Данные пункты также применимы к должности ВрИО смотрителя.
| | </pre> |
| }}<!-- | |
|
| |
|
| -->
| | Если в JSON: |
| == Процедуры изменения доступов ==
| |
| {{RulesBox
| |
| |title = Политика назначения на должность
| |
| |content = <p></p>
| |
| # Решение о назначении члена экипажа на должность ВрИО главы отдела принимает Капитан.
| |
| # Решение о приёме члена экипажа в отдел принимает глава соответствующего отдела.
| |
| # Агент Внутренних Дел не может быть назначен на станции.
| |
| # Должности Центрального Командования/ДСО могут быть назначены только Центральным Командованием/ДСО.
| |
| # При принятии сотрудника на должность, он должен быть назначен на {{Tooltip|низшую в иерархии отдела должность|Низшие в иерархии должности|• Кадет;• Интерн;• Грузчик или Утилизатор;• Научный ассистент;• Технический ассистент;• Любая должность сервисного отдела.}}.
| |
| # Лица с судимостью имеют ограничения при трудоустройстве:
| |
| ## Лица, осужденные по статьям хх4, хх5, хх6 не могут быть трудоустроены.
| |
| ## Лица, осужденные по статьям хх3 могут быть приняты на низшую в иерархии отдела должность.
| |
| ## Лица, осужденные по статьям от хх2 не могут быть приняты в отдел СБ.
| |
| # Каждый отдел обязан иметь главу, в случае отсутствия главы должен быть назначен ВрИО, до момента назначения ВрИО за отдел отвечает Капитан.
| |
| # Пост Капитана или Главы Отдела не могут одновременно занимать два или более человека.
| |
| }}<!--
| |
|
| |
|
| --> | | <pre> <!-- <syntaxhighlight lang=json> --> |
| {{RulesBox
| | "damage": { |
| |title = Политика повышения/перевода на другую должность
| | "types": { |
| |content = <p></p>
| | "Blunt": 10 |
| # Основания для повышения/перевода на другую должность:
| | } |
| ## Наличие рекомендации от наставника (для кадетов, интернов, научных и технических ассистентов).
| | } |
| ## Освоение всех профессиональных навыков, необходимых для новой должности.
| | </pre> <!-- </syntaxhighlight> --> |
| ## Отсутствие дисциплинарных взысканий (выговор, ранее понижение в должности, либо увольнение).
| |
| ## Отсутствие судимостей по статьям от хх3.
| |
| # Повышение по иерархии либо перевод на аналогичную по иерархии должность требуют:
| |
| ## Прямого одобрения Главы отдела.
| |
| ## Прямого одобрения Капитана.
| |
| # Для проведения процедуры перевода или повышения необходимо составить следующие документы:
| |
| ## Заявление о [[Бумажная работа#Запрос повышения|повышении]]/[[Бумажная работа#Заявление о трудоустройстве|переводе]], заверенное Капитаном и Главой отдела.
| |
| ## [[Бумажная работа#Свидетельство о повышении квалификации|Свидетельство о повышении квалификации.]] Кандидат должен освоить все необходимые для работы навыки.
| |
| # Весь пакет документов должен быть направлен Центральному командованию.
| |
| ## При получении согласия, либо в случае отсутствия прямого отказа от Центрального командования в течение 5 минут процедура повышения/перевода считается успешной.
| |
| ## В случае получения отказа даже после назначенного срока, повышение/перевод считаются недействительными и должны быть аннулированы.
| |
| # С помощью данной процедуры без прямого одобрения Центрального командования невозможно получить повышение/перевод на следующие должности: Смотритель,<!-- Ведущий врач, Ведущий ученый, Ведущий инженер, Инструктор СБ, --> Глава отдела, Капитан.
| |
| ## Становление ВрИО Главы отдела, ВрИО Смотрителя или ВрИО Капитана не является повышением.
| |
| # Данная процедура не касается следующих отделов: Снабжение, Сервис. Перевод внутри данных отделов осуществляется по личному решению главы и не требует отправки документов Центральному командованию.
| |
| # Специализация — это указанная в СРП должности возможность заниматься более узконаправленной деятельностью, получение специализации происходит по единоличному решению Главы отдела и не требует отправки документов Центральному командованию.
| |
| }}<!--
| |
|
| |
|
| -->
| | то результатом будет: |
| {{RulesBox
| |
| |title = Процедура выдачи доступов
| |
| |content = <p></p>
| |
| # Процедура найма производится лично главой соответствующего отдела, Главой Персонала или Капитаном.
| |
| #* Копия или оригинал заявления на трудоустройство должны быть переданы Главе Персонала.
| |
| #* В случае назначения ВрИО должность и иконка на ID карте и в манифесте должны соответствовать текущей должности иметь и следующий вид:({{Tooltip|ВрИО "название должности в родительном падеже"|Примеры|• ВрИО Научного Руководителя;• ВрИО Главы Персонала.}}).
| |
| #* В случае выдачи УДО должность и иконка на ID карте и в манифесте должны соответствовать текущей должности и иметь следующий вид:({{Tooltip|"название должности" - УДО|Примеры|• Технический ассистент - УДО;• Клоун - УДО.}}).
| |
| # Выдача дополнительных доступов производится Главой Персонала или Капитаном.
| |
| #* Копия или оригинал заявления на получение доступа должны быть переданы Главе Персонала.
| |
| #** Заявление не требуется, если в СРП сотрудника есть право на получение дополнительных доступов без подачи заявления.
| |
| #* Любое заявление на дополнительные доступы должно быть заверено лицом, которое может предоставить эти доступы:
| |
| #** Глава отдела может одобрить доступ в любое из помещений своего отдела.
| |
| #** Доступ в технические помещения может быть одобрен Главой Персонала или Старшим Инженером.
| |
| #** Внешний доступ может быть одобрен Старшим Инженером или Главой Службы Безопасности.
| |
| #** Капитан может одобрить доступ любого уровня.
| |
| #*При получении дополнительных доступов в графу должности может быть добавлено соответствующее примечание в виде пометки "+", "РД" и т.д. При возвращении исходных доступов примечание необходимо убрать.
| |
| }}<!--
| |
|
| |
|
| -->
| | <pre> |
| {{RulesBox | | {"Blunt":10} |
| |title = Политика снятия с должности
| | </pre> |
| |content = <p></p>
| |
| # Сотрудник может быть уволен или понижен только в соответствии с причинами отстранения от должности.
| |
| # Агент Внутренних Дел может быть уволены только по решению Магистрата, но отстранить его от работы могут представители ЦК/ДСО.
| |
| # Должности Центрального Командования/ДСО могут быть уволены только Центральным Командованием/ДСО.
| |
| # Только Капитан имеет право уволить члена Командования.
| |
| # Решение о снятии с должности рядового сотрудника принимает глава соответствующего отдела или Капитан.
| |
| # По решению увольняющего, законное увольнение может быть заменено на понижение в должности.
| |
| # ВрИО главы отдела сотрудник обязан сдать свои полномочия, если прибыл новый глава отдела.
| |
| # Глава отдела или Капитан, высланный с ЦК в следствии бюрократической ошибки, обязан сдать свои полномочия, если действующий глава отдела или Капитан не являются временно исполняющими обязанности.
| |
| # Совершивший V (особо-тяжкое) или VI (критическое) преступление сотрудник обязан быть уволен.
| |
| }}<!--
| |
|
| |
|
| -->
| | то есть: |
| {{RulesBox
| | * для таблиц модуль пытается сделать <code>mw.text.jsonEncode(v)</code> и вернуть JSON‑строку; |
| |title = Процедура снятия доступов
| | * для простых значений возвращается строка <code>tostring(v)</code>. |
| |content = <p></p>
| |
| # Процедура увольнения и снятия доступов производится исключительно Главой Персонала или Капитаном.
| |
| # Совершающий процедуру увольнения обязан лишить сотрудника рабочих доступов, снаряжения и рабочей одежды, а также выдать новый комбинезон и гарнитуру.
| |
| #* Оригинал или копия заявления или приказа об увольнении должны быть передана Главе Персонала.
| |
| #** В случае увольнения по собственному желанию необходимо уведомить главу отдела, к которому относился сотрудник.
| |
| # Совершающий процедуру снятия доступов обязан лишить сотрудника дополнительных доступов.
| |
| #* При наличии приказа о лишении доступа, копия или оригинал документа должны быть переданы Главе Персонала.
| |
| # В случае увольнения по причине смерти сотрудника, иконка в манифесте должна соответствовать пассажирской, а должность на ID карте и манифесте должны соответствовать предыдущей должности иметь следующий вид:({{Tooltip|"Название должности" - Мертв)|Примеры|• Смотритель - Мертв;• Капитан - Мертв.}}.
| |
| #* В случае клонирования должность мертвого члена экипажа должна быть восстановлена.
| |
| }}<!--
| |
|
| |
|
| -->
| | Если <code>keyPath</code> пуст, возвращается весь объект (как JSON). |
| {{RulesBox
| |
| |title = Причины отстранения от должности
| |
| |content = <p></p>
| |
| # Совершение преступления особо тяжкого уровня и выше.
| |
| # Многочисленные незначительные нарушения СРП.
| |
| # Серьезное нарушение СРП.
| |
| # Нахождение на рабочем месте в пьяном виде.
| |
| # Отказ следовать законным требования вышестоящего руководителя.
| |
| # Критичная некомпетентность сотрудника.
| |
| # Смерть сотрудника.
| |
| # {{Tooltip|Бездействие сотрудника|Пояснение|Это относится к сотрудникам в кататоническом ступоре, игнорирующим брифинг и вызовы по рации. Полное игнорирование своих обязательств}}.
| |
| # {{Tooltip|Создание токсичной среды на рабочем месте|Пояснение|Это относится к сотрудникам, которые регулярно неуважительно относятся к своим коллегам}}.
| |
| # {{Tooltip|Злоупотребление полномочиями|Пояснение|Это относится к ГСБ, выдавшему разрешение на ношение оружия без явной причины, продаже сотрудников станции в рабство Квартирмейстером и так далее}}.
| |
| # Уход с должности по собственному желанию.
| |
| }}<!--
| |
|
| |
|
| -->
| | === p.getTpl: вызов шаблона по данным JSON === |
| == Протоколы эвакуации == | | <pre> |
| <tabs> | | {{#invoke:GetField|getTpl |
| <tab name="Окончание смены">
| | | <id> |
| После окончания смены начинается стандартный процесс отправки экипажа на станцию центрального командования для последующего распределения и отдыха. Отбытие производится только после выполнения цели смены, заданной Центральным Командованием.
| | | <путь_к_json_странице> |
| * Капитан обязан составить [[Бумажная работа#Отчёт о ситуации|письменный отчет о выполнении цели]] и отправить его на центральное командование.
| | | <путь_к_шаблону> |
| * Капитан обязан уведомить персонал соответствующим сообщением, что даст время сотрудникам привести свои рабочие места в порядок и подготовиться к отбытию.
| | }} |
| * Службе безопасности необходимо организовать транспортировку всех заключённых. Во время перелета на шаттле, заключённые должны находиться в отсеке для заключённых.
| | </pre> |
| * Медицинский персонал обязан организовать транспортировку тел погибших сотрудников, а также тяжело больных пациентов.
| |
| * Отбытие шаттла ранее установленного времени в случае, если прямая угроза для шаттла отсутствует, не допускается.
| |
| </tab> | |
| <tab name="Невозможность выполнения цели"> | |
| Решение об окончании смены без выполнения цели и отбытии со станции принимается исключительно Капитаном под его полную ответственность за принятое решение.
| |
| </tab>
| |
| <tab name="Нарушение условий содержания сингулярности">
| |
| Капитан обязан установить Желтый код. Необходимо провести наблюдение за траекторией движения сингулярности. При сильной угрозе для целостности станции эвакуационный шаттл должен быть вызван немедленно, после чего необходимо оповестить экипаж и центральное командование о возникшей чрезвычайной ситуации. В случае, если угрозы нет, допускается восстановление поврежденных отсеков и продолжение смены.
| |
| </tab> | |
| <tab name="Вспышка зомби вируса">
| |
| До полного устранения возникшей угрозы эвакуационный шаттл не вызывается. В случае вызова эвакуационного шаттла центральным командованием, шаттл должен быть отклонен, а командованию рекомендуется запросить помощь отряда РХБЗЗ.
| |
| </tab>
| |
| </tabs> | |
|
| |
|
| {{ModernFrame/Сollapsible | | Пример: |
| |title = Присяга Капитана объекта NanoTrasen | | |
| |background-color = #375924
| | <pre> |
| |border-color = #426b2b | | {{#invoke:GetField|getTpl |
| |sub-title = Лицо, достигающее звания офицера NanoTrasen приводится к присяге под флагом корпорации NanoTrasen. | | | MyEntityId |
| |content = <hr> | | | component/item.json |
| Вступая на должность офицера NanoTrasen, с этой секунды и до истечения контракта, я клянусь быть преданным слугой корпорации. С этого момента я буду гордо нести звание офицера NanoTrasen, прославляя нашу великую компанию.
| | | Component/meleeWeapon |
| Клянусь выполнять все поставленные задачи, даже перед лицом смерти доблестно защищать ее интересы. Соблюдать основные права разумных существ и требовать их соблюдение от своих подчиненных.
| |
| Я клянусь, что буду работать только во благо корпорации и ее сотрудников.
| |
| С данной секунды я вступаю в ряды офицеров NanoTrasen и не нарушу ту клятву, что дал сегодня.
| |
| }} | | }} |
| | </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 автоматически. |