(GetTricorderState);
+ }
+
+ private static void GetTricorderState(EntityUid uid, TricorderComponent component, ref ComponentGetState args)
+ {
+ args.State = new TricorderComponentState(component.CurrentMode);
+ }
+
+ public static string GetNameByMode(TricorderMode mode)
+ {
+ return mode switch
+ {
+ TricorderMode.Multitool => "[color=yellow]мультитул[/color]",
+ TricorderMode.GasAnalyzer => "[color=cyan]газоанализатор[/color]",
+ TricorderMode.HealthAnalyzer => "[color=green]анализатор здоровья[/color]",
+ _ => "[color=yellow]мультитул[/color]"
+ };
+ }
+}
\ No newline at end of file
diff --git a/Content.Shared/White/Item/Tricorder/TricorderComponent.cs b/Content.Shared/White/Item/Tricorder/TricorderComponent.cs
new file mode 100644
index 0000000000..7f391c8b2a
--- /dev/null
+++ b/Content.Shared/White/Item/Tricorder/TricorderComponent.cs
@@ -0,0 +1,38 @@
+using Robust.Shared.Audio;
+using Robust.Shared.GameStates;
+using Robust.Shared.Serialization;
+
+namespace Content.Shared.White.Item.Tricorder;
+
+[RegisterComponent]
+[NetworkedComponent]
+[Access(typeof(SharedTricorderSystem))]
+public sealed class TricorderComponent : Component
+{
+ [DataField("currentState"), ViewVariables(VVAccess.ReadWrite)]
+ public TricorderMode CurrentMode = TricorderMode.Multitool;
+
+ [DataField("soundSwitchMode")]
+ public SoundSpecifier SoundSwitchMode = new SoundPathSpecifier("/Audio/Machines/quickbeep.ogg");
+}
+
+///
+/// Contains network state for TricorderComponent.
+///
+[Serializable, NetSerializable]
+public sealed class TricorderComponentState : ComponentState
+{
+ public TricorderMode CurrentMode;
+
+ public TricorderComponentState(TricorderMode currentMode)
+ {
+ CurrentMode = currentMode;
+ }
+}
+
+public enum TricorderMode
+{
+ Multitool,
+ GasAnalyzer,
+ HealthAnalyzer
+}
\ No newline at end of file
diff --git a/Resources/Locale/ru-RU/materials/materials.ftl b/Resources/Locale/ru-RU/materials/materials.ftl
index 8404304f04..a149ddd7a7 100644
--- a/Resources/Locale/ru-RU/materials/materials.ftl
+++ b/Resources/Locale/ru-RU/materials/materials.ftl
@@ -8,6 +8,7 @@ materials-steel = сталь
materials-gold = золото
materials-silver = серебро
materials-plasteel = пласталь
+materials-paper = бумага
# Other
materials-biomass = биомасса
materials-cloth = ткань
diff --git a/Resources/Locale/ru-RU/white/items/tricorder.ftl b/Resources/Locale/ru-RU/white/items/tricorder.ftl
new file mode 100644
index 0000000000..3b73829b81
--- /dev/null
+++ b/Resources/Locale/ru-RU/white/items/tricorder.ftl
@@ -0,0 +1 @@
+tricorder-item-status-label = Текущий режим: { $mode }
\ No newline at end of file
diff --git a/Resources/Locale/ru-RU/white/species/felinid/felinid.ftl b/Resources/Locale/ru-RU/white/species/felinid/felinid.ftl
index 33be7d6643..99d8c0a523 100644
--- a/Resources/Locale/ru-RU/white/species/felinid/felinid.ftl
+++ b/Resources/Locale/ru-RU/white/species/felinid/felinid.ftl
@@ -1,7 +1,7 @@
hairball-action = Откашлять комок шерсти.
hairball-action-desc = Люди это не любят.
hairball-mask = Сначала сними { $mask }.
-hairball-cough = { CAPITALIZE(THE($name)) } пытается выкашлять комок шесрти!
+hairball-cough = { CAPITALIZE(THE($name)) } пытается выкашлять комок шерсти!
action-name-eat-mouse = Съесть мышь.
action-description-eat-mouse = Съешьте мышь в своей руке, получая питательные вещества и заряд комка шерсти.
diff --git a/Resources/Locale/ru-RU/white/structures/doc-printer/paper-text.ftl b/Resources/Locale/ru-RU/white/structures/doc-printer/paper-text.ftl
new file mode 100644
index 0000000000..65684621c1
--- /dev/null
+++ b/Resources/Locale/ru-RU/white/structures/doc-printer/paper-text.ftl
@@ -0,0 +1,610 @@
+paper-text-request = Запрос Центральному Командованию
+ ---------------------------------------------------------------------
+ Я, "имя капитана", в должности Капитана, запрашиваю цель для станции "номер станции"
+ ---------------------------------------------------------------------
+ Для выполнения задачи Центрального Командования будут задействованы все доступные ресурсы станции с минимальным ущербом самой станции, если не было приказано иначе.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-text-report = Заявление в штаб Центрального Командования
+ ---------------------------------------------------------------------
+ Я, "имя заявителя" "должность" станции "номер станции", отправляю рапорт о ходе выполнения цели станции и ее продвижении.
+ Цель: "цель смены".
+ Ситуация: "как проходит цель".
+ ---------------------------------------------------------------------
+ Рапорт был составлен мною в пребывании адекватного состояния. Все расписанное, готов подтвердить повторно, при необходимости.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-text-completed = Заявление в штаб Центрального Командования
+ ---------------------------------------------------------------------
+ Я, Капитан "имя заявителя" станции "номер станции", с гордостью сообщаю об успешном выполнении экипажем назначенной цели текущей смены.
+
+ Цель: "цель смены".
+
+ Оценка личного состава и состояния станции: "кратко опишите ситуацию на станции".
+ ---------------------------------------------------------------------
+ Запрашиваю начало процедуры смены экипажа и ожидаю дальнейших указаний.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-text-failed = Заявление в штаб Центрального Командования
+ ---------------------------------------------------------------------
+ Я, Капитан "имя заявителя" станции "номер станции", с прискорбием сообщаю о невозможности выполнения экипажем назначенной цели текущей смены.
+
+ Цель: "цель смены".
+
+ Причина: "почему ее нельзя выполнить".
+ ---------------------------------------------------------------------
+ Вследствие провала задания, запрашиваю начало "процедуры смены экипажа / эвакуации" и ожидаю дальнейших указаний.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-text-request-CentComm = Рапорт Офицерскому составу Центрального Командования
+ ---------------------------------------------------------------------
+ Номер станции: "укажите номер станции из ПДА"
+ Я, "имя заявителя", в должности "должность заявителя", представляю доклад о "происшествии/несоответствии" Офицерскому составу Центрального Командования.
+
+ Причина:"описание происшествия/несоответствия".
+
+ Данная ситуация требует вмешательства "сотрудника ЦК", так как не может быть решена силами экипажа и командования станции.
+ ---------------------------------------------------------------------
+ Рапорт был составлен мною в пребывании адекватного состояния. Все расписанное, готов подтвердить повторно, при необходимости.
+
+ Отправляя этот запрос, возлагаю на себя полную ответственность и, в случае сокрытия информации для собственной выгоды, готов понести высшую меру наказания.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-text-request-ERT = Запрос в отдел Аварийно-Восстановительных Формирований NanoTrasen
+ ---------------------------------------------------------------------
+ Я, "имя заявителя", в должности "должность заявителя", отправляю запрос в отдел Аварийно-Восстановительного Формирования для вызова на станцию "номер станции из ПДА" Отряда Быстрого Реагирования.
+
+ Причина: "описание происшествия".
+
+ Данная ситуация требует вмешательства "название типа ОБР" ОБР, так как не может быть решена силами экипажа и командования станции и ставит под угрозу существование самой станции.
+ ---------------------------------------------------------------------
+ Запрос был составлен мною в пребывании адекватного состояния. Все расписанное, готов подтвердить повторно, при необходимости.
+
+ Отправляя этот запрос, возлагаю на себя полную ответственность и, в случае сокрытия информации для собственной выгоды, готов понести высшую меру наказания.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-text-request-RXBZZ = Запрос в отдел Аварийно-Восстановительных Формирований NanoTrasen
+ ---------------------------------------------------------------------
+ Я, "имя заявителя", в должности "должность заявителя", отправляю запрос в отдел Аварийно-Восстановительного Формирования для вызова на станцию "номер станции из ПДА" Отряда Быстрого Реагирования.
+
+ Причина: "описание происшествия".
+
+ Данная ситуация требует вмешательства "название типа ОБР" ОБР, так как не может быть решена силами экипажа и командования станции и ставит под угрозу существование самой станции.
+ ---------------------------------------------------------------------
+ Запрос был составлен мною в пребывании адекватного состояния. Все расписанное, готов подтвердить повторно, при необходимости.
+
+ Отправляя этот запрос, возлагаю на себя полную ответственность и, в случае сокрытия информации для собственной выгоды, готов понести высшую меру наказания.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-text-request-high-order-compaint = Заявление в бюро доносов NanoTrasen
+ ---------------------------------------------------------------------
+ Номер станции: "укажите номер станции из ПДА"
+ Заявитель: "имя заявителя"
+ Должность: "должность заявителя"
+
+ Субъект правонарушения: "имя нарушителя"
+ Должность: "должность нарушителя"
+
+ Нарушенные пункты КЗ: "нарушенные статьи/отсутствует"
+ Нарушенные пункты СОП: "нарушенные пункты/отсутствует"
+ Нарушенные пункты ОПЧК: "нарушенные пункты/отсутствует"
+
+ Свидетели нарушений: "имена свидетелей/отсутствуют"
+ ---------------------------------------------------------------------
+ Описание: "подробное, но лаконичное описание правонарушения".
+
+ Жалоба была составлена мною в пребывании адекватного состояния. Все, расписанное в данной жалобе, готов подтвердить повторно, при необходимости.
+
+ Запрос: "ожидаемый заявителем исход/принять соответствующие меры по пресечению будущих нарушений".
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-text-request-magistrat = Запрос в Верховный суд Nanotrasen
+ ---------------------------------------------------------------------
+ Я, "имя заявителя", в должности "должность заявителя", отправляю запрос в Верховный суд для вызова на станцию "номер станции из ПДА" Магистрата.
+
+ Заявление об инициации судебного процесса: прилагается.
+
+ Данная ситуация требует вмешательства сотрудника Верховного суда, так как не может быть решена компетенцией экипажа и командования станции и ставит под угрозу справедливость вынесенного приговора.
+ ---------------------------------------------------------------------
+ Запрос был составлен мною в пребывании адекватного состояния. Все расписанное, готов подтвердить повторно, при необходимости.
+
+ Отправляя этот запрос, возлагаю на себя полную ответственность и, в случае сокрытия информации для собственной выгоды, готов понести высшую меру наказания.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-comm-text-crew-mem-domotion = Постановление в архив командования станции
+ ---------------------------------------------------------------------
+ Главе персонала станции "номер станции из ПДА".
+
+ Я, "имя заявителя", в должности главы отдела "ваш отдел" приказываю понизить сотрудника "должность сотрудника" "имя сотрудника" до должности "должность после понижения".
+
+ Причина: "кратко опишите причину понижения".
+ ---------------------------------------------------------------------
+ Обязуюсь восполнить отсутствие персонала и поддерживать эффективность отдела на высшем уровне.
+
+ Приказ ввести в исполнение немедленно во избежание необратимого ущерба.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-comm-text-crew-mem-dismissal = Постановление в архив командования станции
+ ---------------------------------------------------------------------
+ Главе персонала станции "номер станции из ПДА".
+
+ Я, "имя заявителя", в должности главы отдела "ваш отдел" приказываю немедленно уволить сотрудника "имя сотрудника" с должности "должность сотрудника".
+
+ Причина: "кратко опишите причину увольнения".
+
+ Сотрудник обязан(-а) немедленно покинуть рабочее место и сдать все выданное снаряжение и имущество отдела. В случае нарушения данного приказа, будут приняты дополнительные меры в соответствии с настоящим законодательством.
+ ---------------------------------------------------------------------
+ Обязуюсь восполнить отсутствие персонала и поддерживать эффективность отдела на высшем уровне.
+
+ Приказ ввести в исполнение немедленно во избежание необратимого ущерба.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-comm-text-request-council = Запрос командному составу станции
+ ---------------------------------------------------------------------
+ Я, "имя заявителя", в должности "ваша должность" запрашиваю провести голосование среди командного состава станции "номер станции".
+
+ Причина: "причина голосования".
+
+ Цель: "ожидаемый итог голосования".
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-comm-text-council-end = Отчет по голосованию
+ ---------------------------------------------------------------------
+ Голосованием глав станции "номер станции", по вопросу "причина голосования", было принято решение "Поддержать / Отклонить" инициативу.
+
+ Количество голосов "За": "кол-во"
+
+ Количество голосов "Против": "кол-во"
+ ---------------------------------------------------------------------
+ Подпись: "подпись"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-sec-text-order = Ордер на обыск
+ ---------------------------------------------------------------------
+ Выдан: "имя заявителя" "Юрист/Капитан".
+ Подозреваемый: "имя подозреваемого" "должность".
+ Характер обыска: "обыск отдела/обыск сотрудника".
+
+ Причина обыска: "причина подозрения"
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-sec-text-complaint = Жалоба
+ ---------------------------------------------------------------------
+ Заявитель: "имя заявителя"
+ Должность: "должность заявителя"
+
+ Субъект правонарушения: "имя нарушителя"
+ Должность: "должность нарушителя"
+
+ Свидетели нарушений: "имена свидетелей/отсутствуют"
+ ---------------------------------------------------------------------
+ Описание: "нарушение".
+ ---------------------------------------------------------------------
+ Жалоба была составлена мною в пребывании адекватного состояния. Все, расписанное в данной жалобе, готов подтвердить повторно, при необходимости.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-sec-text-lic = Разрешение на ношение оружия
+ ---------------------------------------------------------------------
+ Заявитель: "имя заявителя"
+ Должность: "должность заявителя"
+ Разрешение на ношение: "название оружия"
+ ---------------------------------------------------------------------
+ Причина: "причина на запрос оружия".
+ ---------------------------------------------------------------------
+ Обязуюсь, что орудоваемое мною оружие будет использовано в целях описаных выше или в целях вынужденной самообороны.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-sec-text-request-weapon = Временный запрос оружия
+ ---------------------------------------------------------------------
+ Заявитель: "имя заявителя"
+ Должность: "должность заявителя"
+ Запрос оружия: "название оружия"
+ ---------------------------------------------------------------------
+ Причина: "причина на запрос оружия".
+ На период: "через сколько обязан вернуть оружие"
+ ---------------------------------------------------------------------
+ Обязуюсь использовать исключительно в целях указанных выше или при вынужденной самообороне и сдать оружие в арсенал в указанное время или по первому требованию службы безопасности.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-sec-text-request-execution = Запрос на казнь сотрудника
+ ---------------------------------------------------------------------
+ Заявитель: "имя заявителя"
+ Должность: "должность заявителя"
+
+ Нарушитель: "имя и фамилия"
+ ---------------------------------------------------------------------
+ Причина: "что нарушил".
+ ---------------------------------------------------------------------
+ Отправляя этот запрос, возлагаю на себя полную ответственность и, в случае сокрытия информации для собственной выгоды, готов понести высшую меру наказания.
+
+ Данный документ приобретает юридическую силу, если имеет печать Капитана или Центрального Командования.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-sec-text-request-cargo-weapon = Разрешение на заказ оружие отделом Снабжения
+ ---------------------------------------------------------------------
+ Заявитель: "имя заявителя"
+ Должность: "должность заявителя"
+
+ Причина: "по какой причине нужно оружие".
+ ---------------------------------------------------------------------
+ Отправляя этот запрос, возлагаю на себя полную ответственность за заказанное оружие.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-sec-text-request-guard = Заявление под программу защиты свидетелей
+ ---------------------------------------------------------------------
+ Заявитель: "имя заявителя"
+ Должность: "должность заявителя"
+ ---------------------------------------------------------------------
+ Причина: "что угрожает вашей жизни".
+ Запрос: "убежища в бриге / предоставить вам защиту"
+ ---------------------------------------------------------------------
+ Служба безопасности берет ответственность за жизнь данного сотрудника и обязана предоставить ему защиту.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-eng-text-request-build = Заявление о проведении строительных работ
+ ---------------------------------------------------------------------
+ Заявитель: "имя заявителя"
+ Должность: "должность заявителя"
+ ---------------------------------------------------------------------
+ Строительные работы будут проведены в отделе "название отдела".
+
+ Объект: "что будет сделано".
+ ---------------------------------------------------------------------
+ Исполнитель несёт полную ответственность за качество выполненных работ.
+
+ Во время строительства обязаны быть соблюдены все нормы безопасности.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-eng-text-request-material = Запрос материалов
+ ---------------------------------------------------------------------
+ Заявитель: "имя заявителя"
+ Должность: "должность заявителя"
+ ---------------------------------------------------------------------
+ Список: "что вам нужно".
+
+ Причина: "зачем вам материалы".
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-eng-text-report-elect = Отчет об электроснабжении
+ ---------------------------------------------------------------------
+ Заявитель: "имя заявителя"
+ Должность: "должность заявителя"
+ ---------------------------------------------------------------------
+ Производитель электроэнергии: "ДАМ / Сингулярность / альтернативный источник"
+ Коэффициент потраченной / производимой электроэнергии: "указать коэффициент, к примеру: 2/9"
+ Стабильность электропитания: "указать уровень стабильности"
+ ---------------------------------------------------------------------
+ Я - подотчетное лицо, несу полную ответственность своих действий и не пытаюсь скрыть какую-либо информацию.
+ В случае сокрытия информации подотчетное лицо будет подвержено наказанию высшей степени.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-eng-text-report-atmos = Отчет об атмосфере
+ ---------------------------------------------------------------------
+ Заявитель: "имя заявителя"
+ Должность: "должность заявителя"
+ ---------------------------------------------------------------------
+ Производимые газы:"указать производимые газы"
+ Коэффициент газов в атмосфере станции:"указать коэффициент газов, к примеру кислород - 22%, азот - 77%, углерод - 1%"
+ Дополнительно производимые газы:"указать дополнительно производимые газы, к примеру - тритий, фрезон и т.п."
+ ---------------------------------------------------------------------
+ Я - подотчетное лицо, несу полную ответственность своих действий и не пытаюсь скрыть какую-либо информацию.
+ В случае сокрытия информации подотчетное лицо будет подвержено наказанию высшей степени.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-med-text-request-perm-narc = Лекарственный рецепт
+ ---------------------------------------------------------------------
+ Я, "имя и фамилия", в должности "психолога/СМО", выписываю для лечения пациента "имя пациента" следующие препараты: "названия препаратов".
+
+ Причина: "заболевание".
+ ---------------------------------------------------------------------
+ Этот документ подтверждает право пациента на хранение и употребление вышеперечисленных препаратов.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-med-text-request-execution = Запрос на проведение эвтаназии
+ ---------------------------------------------------------------------
+ Я, "имя и фамилия", в должности "должность" в связи "указать причину", прошу провести для себя процедуру эвтаназии.
+ ---------------------------------------------------------------------
+ Претензий к медицинскому отделу, при соблюдении ими протоколов, не имею.
+
+ Данный документ приобретает юридическую силу, если имеет печать Юриста.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-med-text-waiver-claims = Отказ от претензий
+ ---------------------------------------------------------------------
+ Я, "имя и фамилия", в должности "должность" даю разрешение провести на мне ряд научных исследований во благо науки.
+
+ Эксперимент: "что на вас будут проверять".
+ ---------------------------------------------------------------------
+ Претензий к "медицинскому/научному" отделу, при соблюдении ими протоколов, не имею.
+
+ Я полностью осведомлен(а) и информирован(а) об эксперименте и возможных угрозах.
+
+ Настоящая расписка составлена и подписана добровольно, без какого-либо давления, обещаний или угроз.
+
+ Данный документ приобретает юридическую силу, если имеет печать Юриста.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-med-text-durka = Заключение о невменяемости
+ ---------------------------------------------------------------------
+ Я, "имя и фамилия", в должности "СМО/Психолога" признаю сотрудника "имя пациента" невменяемым. В связи с тем, что психические расстройства несут опасность как для самого пациента, так и для остального экипажа, пациент должен быть помещен в перманентную тюрьму.
+ ---------------------------------------------------------------------
+ Служба безопасности обязана соблюдать все права в отношении пациента, защищать и проводить его для эвакуации до Центрального Командования.
+
+ Подписывая данный документ, возлагаю на себя полную ответственность и, в случае неправильного диагноза, понесу высшую меру наказания.
+
+ Данный документ приобретает юридическую силу, если имеет печать ГСБ или Капитана.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-sci-text-reasonable = Признание разумности существа
+ ---------------------------------------------------------------------
+ Я, "имя и фамилия", в должности "Ученого/Научного руководителя", подтверждаю разумность существа.
+
+ Существо: "название"
+ ---------------------------------------------------------------------
+ В процессе проведения экспериментов было подтверждено, что данное существо обладает характеристиками, необходимыми для признания его разумным, такими как: способность к мышлению, обучаемость, понимание моральных норм и способность осознавать последствия своих действий.
+
+ Существо имеет потенциал для работы на корпорацию NanoTrasen, в связи с чем должно пройти процедуру найма.
+ ---------------------------------------------------------------------
+ После того, как глава персонала сделает ПДА данному существу, оно официально войдёт под юрисдикцию ОПЧК на равных основах с остальными членами корпорации.
+
+ Заявитель несет ответственность за правильное признание существа разумным.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-sci-text-request-law = Постановление о изменении законов боргов
+ ---------------------------------------------------------------------
+ Данный документ информирует о изменении законов "всех/название борга" борга/ов.
+
+ Вносимые изменения: "перечень внесённых изменений".
+ ---------------------------------------------------------------------
+ Данный документ приобретает юридическую силу, если имеет печати и подписи двух или более глав.
+
+ Подписи глав: "подписи через запятую"
+
+ Новые законы не нарушают ОПЧК и Космический Закон, направлены на принесение пользы корпорации NanoTrasen.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-sci-text-brain = Постановление о пересадке мозга
+ ---------------------------------------------------------------------
+ Данный документ информирует о пересадке мозга человека в борга по причине невозможности реанимировать прошлого владельца.
+
+ Я, "имя и фамилия", в должности "должность" проведу операцию по пересадки мозга "должность" "имя и фамилия пациента" в тело борга.
+ ---------------------------------------------------------------------
+ Данный документ приобретает юридическую силу, если имеет печать СМО.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-car-text-order = Заказ товара
+ ---------------------------------------------------------------------
+ Заявитель: "имя заявителя"
+ Должность: "должность заявителя"
+ ---------------------------------------------------------------------
+ Товар: "кол-во - название товара"
+
+ Причина: "зачем вам это".
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-ser-text-up-IDcard = Повышение доступа
+ ---------------------------------------------------------------------
+ Я, "имя заявителя" "должность", прошу предоставить мне дополнительно следующие доступы: "название мест".
+
+ Причина: "причина повышения доступов"
+ ---------------------------------------------------------------------
+ Доступ будет использован исключительно в интересах станции и экипажа. Я обязуюсь не заимствовать вещи из других отделов без разрешения главы отдела, а также покину отдел в случае приказа главы.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-ser-text-work = Ускоренный найм
+ ---------------------------------------------------------------------
+ Главе персонала станции "номер станции из ПДА".
+
+ Я, "имя заявителя", желаю пройти процедуру ускоренного найма на космической станции NanoTrasen. Ознакомившись с условиями и положениями ускоренного трудоустройства.
+
+ Желаемая должность: "название должности"
+ Отдел: "название отдела"
+
+ "По желанию - опыт в профессии, причина трудоустройства"
+ ---------------------------------------------------------------------
+ Со стандартными рабочими процедурами, правилами и политикой NanoTrasen ознакомлен. Ответственность, возлагаемую на себя, осознаю.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-ser-text-trash = Свидетельство о заключении брака
+ ---------------------------------------------------------------------
+ Я, "имя и фамилия", в должности священника, заключаю брак между "имя и фамилия" и "имя и фамилия" с согласия обоих сторон.
+ ---------------------------------------------------------------------
+ После заключения брака присвоены фамилии: Мужу "фамилия" Жене "фамилия"
+ Подпись жениха: "имя и фамилия"
+ Подпись невесты: "имя и фамилия"
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-ser-text-trash-end = Свидетельство о расторжении брака
+ ---------------------------------------------------------------------
+ Я, "имя и фамилия", в должности священника, расторгаю брак между "имя и фамилия" и "имя и фамилия" с согласия обоих сторон.
+ ---------------------------------------------------------------------
+ После расторжения брака присвоены фамилии: Мужу "фамилия" Жене "фамилия"
+ Подпись мужа: "имя и фамилия"
+ Подпись жены: "имя и фамилия"
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-ser-text-court = Инициация судебного процесса
+ ---------------------------------------------------------------------
+ Я, "имя и фамилия", в должности "должность", настаиваю на немедленной инициации судебного процесса в отношении "имя обвиняемого" в должности "должность обвиняемого".
+
+ Безотлагательный судебный процесс необходим, поскольку: "почему приговор несправедливый со стороны охранной службы".
+
+ Дополнительная документация: "прилагается / отсутствует".
+
+ Свидетели: "список свидетелей / отсутствуют".
+
+ Исходя из данных, представленных выше, должен пройти публичный судейский процесс, подающий пример остальным сотрудникам станции.
+ ---------------------------------------------------------------------
+ Запрос был составлен мною в пребывании адекватного состояния. Все расписанное, готов подтвердить повторно, при необходимости.
+
+ Данный документ приобретает юридическую силу, если имеет печать Юриста.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-ser-text-dismissal = Увольнение
+ ---------------------------------------------------------------------
+ Я, "имя заявителя", прошу уволить меня с должности "ваша должность" по собственному желанию.
+
+ Причина: "кратко опишите причину увольнения".
+ ---------------------------------------------------------------------
+ Документ составлен в адекватном состоянии, со всеми последствиями ознакомлен.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-ser-text-promotion = Повышение
+ ---------------------------------------------------------------------
+ Я, "имя заявителя", в должности "ваша должность" прошу повысить меня до "желаемая должность" в отделе "название отдела".
+
+ Причина: "кратко опишите свои заслуги".
+ ---------------------------------------------------------------------
+ Я убежден, что повышение позволит мне сделать значительный вклад в работу отдела и обязуюсь с особой старательностью выполнять свои обязанности. Со стандартными рабочими процедурами, правилами и политикой NanoTrasen ознакомлен. Ответственность, возлагаемую на себя, осознаю.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-ser-text-request-botan = Запрос растений
+ ---------------------------------------------------------------------
+ Я, "имя заявителя", в должности "должность" запрашиваю растения в ботанике.
+
+ Растения: "название растения"
+
+ Причина: "причина".
+ ---------------------------------------------------------------------
+ Данное растения будет использовано исключительно в выше описанных целях.
+ ---------------------------------------------------------------------
+ Подпись: "подпись заявителя"
+ Дата: "день"."месяц".2562
+ Печать:
+
+paper-syn-text-ha-ha = .
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣾⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣷⣦⣀⡄⠀⠀⣠⣤⣾⡿⢿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣷⣜⣋⣸⣿⣿⣷⣤⣾⣿⣷⣤⣴⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⠏⠉⠻⣿⣿⣿⣿⣿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢻⣿⣿⡿⠟⠉⠀⠀⠀⠨⠛⠿⠿⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+ ⠀⠀⠀⠀⠀⠀⢰⣦⡀⠀⠀⠀⠀⠀⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡆⠀⠀⠀⠀⠀⠀
+ ⠀⠀⠀⢰⣶⣤⠀⠙⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⣠⡄⠀⣄⡀⠀⠀⠀⠀⠀⠀⠀⣠⣼⡟⠁⠀⢠⠄⠀⠀⠀
+ ⠀⠀⠀⠈⢿⣯⡀⠀⠈⠛⢿⣷⣦⣤⣤⣤⣶⣿⣿⠃⠀⢻⣿⣶⣤⣤⣤⣤⣴⣿⠟⠉⠀⠀⢰⠃⠀⠀⠀⠀
+ ⠀⠀⠀⠀⠘⠿⡀⠀⢀⠀⠀⠈⠙⠛⠛⠛⠋⠉⠀⠀⠀⠀⠈⠛⠛⠛⠛⠋⠁⠀⢀⣤⣴⣶⠃⠀⠀⠀⠀⠀
+ ⠀⠀⠀⠀⠀⠀⠳⢶⣏⡀⣠⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣠⣴⣾⡿⠿⠛⠁⠀⠀⠀⠀⠀⠀
+ ⠀⠀⠀⠀⠀⠀⠀⠈⠻⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
+ ⣷⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠙⠛⠛⠿⠿⠿⠿⠿⠿⠿⠟⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴
+ ⣿⣿⣿⣿⣶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣿⣿⣿
+ ⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣀⠀⠀⢠⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⡄⠀⠀⣀⣤⣶⣿⣿⣿⣿⣿⣿⣿
+ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⡘⢿⡿⣿⠛⠉⠉⠉⠉⠙⠻⡿⢿⡿⢁⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
+ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣴⣿⣦⠀⠀⠀⠀⢀⣼⣿⣦⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
+ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⠓⠀⠀⠀⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
diff --git a/Resources/Prototypes/Catalog/Fills/Items/belt.yml b/Resources/Prototypes/Catalog/Fills/Items/belt.yml
index 8a27e36f08..74ea42f5ae 100644
--- a/Resources/Prototypes/Catalog/Fills/Items/belt.yml
+++ b/Resources/Prototypes/Catalog/Fills/Items/belt.yml
@@ -26,6 +26,7 @@
- id: Welder
- id: Multitool
+# WD EDIT START
- type: entity
id: ClothingBeltChiefEngineerFilled
parent: ClothingBeltChiefEngineer
@@ -36,10 +37,11 @@
- id: PowerDrill
- id: JawsOfLife
- id: WelderExperimental
- - id: Multitool
+ - id: Tricorder
- id: HolofanProjector
- - id: GasAnalyzer
- - id: trayScanner
+ amount: 2
+ - id: CableApcStack
+# WD EDIT END
- type: entity
id: ClothingBeltSecurityFilled
diff --git a/Resources/Prototypes/White/Catalog/uplink.yml b/Resources/Prototypes/White/Catalog/uplink.yml
index 9e1dc62a02..b3ce4624c5 100644
--- a/Resources/Prototypes/White/Catalog/uplink.yml
+++ b/Resources/Prototypes/White/Catalog/uplink.yml
@@ -84,3 +84,15 @@
Telecrystal: 15
categories:
- UplinkImplants
+
+# Night Vision
+- type: listing
+ id: UplinkNightGoggles
+ name: ПНВ [Хамелеон]
+ description: Теперь ты видишь во тьме!
+ productEntity: ClothingEyesNightVisionGogglesSyndie
+ icon: { sprite: White/Clothing/Head/nightvision.rsi, state: icon }
+ cost:
+ Telecrystal: 3
+ categories:
+ - UplinkArmor
diff --git a/Resources/Prototypes/White/Entities/Clothing/Head/night_vision_goggle.yml b/Resources/Prototypes/White/Entities/Clothing/Head/night_vision_goggle.yml
new file mode 100644
index 0000000000..a484c97e96
--- /dev/null
+++ b/Resources/Prototypes/White/Entities/Clothing/Head/night_vision_goggle.yml
@@ -0,0 +1,27 @@
+# Night Vision Goggles
+- type: entity
+ parent: ClothingEyesBase
+ id: ClothingEyesNightVisionGoggles
+ name: ПНВ
+ description: Теперь ты видишь во тьме!
+ components:
+ - type: Sprite
+ sprite: White/Clothing/Head/nightvision.rsi
+ - type: Clothing
+ sprite: White/Clothing/Head/nightvision.rsi
+ - type: ClothingGrantComponent
+ component:
+ - type: NightVision
+
+# Night Vision Goggles (Chameleon)
+- type: entity
+ parent: ClothingEyesNightVisionGoggles
+ id: ClothingEyesNightVisionGogglesSyndie
+ components:
+ - type: ChameleonClothing
+ slot: [ eyes ]
+ default: ClothingEyesGlassesSunglasses
+ - type: UserInterface
+ interfaces:
+ - key: enum.ChameleonUiKey.Key
+ type: ChameleonBoundUserInterface
diff --git a/Resources/Prototypes/White/Entities/Objects/Tools/tricorder.yml b/Resources/Prototypes/White/Entities/Objects/Tools/tricorder.yml
new file mode 100644
index 0000000000..9a6db54c9f
--- /dev/null
+++ b/Resources/Prototypes/White/Entities/Objects/Tools/tricorder.yml
@@ -0,0 +1,53 @@
+- type: entity
+ parent: BaseItem
+ id: Tricorder
+ name: трикодер
+ description: Многофункциональное устройство, которое может выполнять огромный спектр задач.
+ components:
+ - type: Sprite
+ sprite: White/Items/Tools/tricorder.rsi
+ layers:
+ - state: icon
+ - state: on
+ map: [ "tricorder_power" ]
+ - type: Tricorder
+ - type: StaticPrice
+ price: 300
+ - type: Tool
+ qualities:
+ - Pulsing
+ - type: ActivatableUI
+ key: enum.NetworkConfiguratorUiKey.List
+ inHandsOnly: true
+ - type: UserInterface
+ interfaces:
+ - key: enum.NetworkConfiguratorUiKey.List
+ type: NetworkConfiguratorBoundUserInterface
+ - key: enum.NetworkConfiguratorUiKey.Configure
+ type: NetworkConfiguratorBoundUserInterface
+ - key: enum.NetworkConfiguratorUiKey.Link
+ type: NetworkConfiguratorBoundUserInterface
+ - key: enum.GasAnalyzerUiKey.Key
+ type: GasAnalyzerBoundUserInterface
+ - key: enum.HealthAnalyzerUiKey.Key
+ type: HealthAnalyzerBoundUserInterface
+ - type: NetworkConfigurator
+ - type: Tag
+ tags:
+ - DroneUsable
+ - Multitool
+ - DiscreteHealthAnalyzer
+ - type: Clothing
+ sprite: Objects/Tools/multitool.rsi
+ quickEquip: false
+ slots:
+ - Belt
+ - type: EmitSoundOnPickup
+ sound:
+ path: /Audio/White/Items/handling/multitool_pickup.ogg
+ - type: EmitSoundOnDrop
+ sound:
+ path: /Audio/Items/multitool_drop.ogg
+ - type: EmitSoundOnLand
+ sound:
+ path: /Audio/Items/multitool_drop.ogg
diff --git a/Resources/Prototypes/White/Entities/Structures/Machines/doc_printer.yml b/Resources/Prototypes/White/Entities/Structures/Machines/doc_printer.yml
new file mode 100644
index 0000000000..8d813d12e0
--- /dev/null
+++ b/Resources/Prototypes/White/Entities/Structures/Machines/doc_printer.yml
@@ -0,0 +1,985 @@
+# Base Document Printer
+- type: entity
+ id: BaseDocPrinter
+ parent: BaseMachinePowered
+ abstract: true
+ name: принтер
+ components:
+ - type: Appearance
+ - type: Physics
+ bodyType: Static
+ - type: Fixtures
+ fixtures:
+ fix1:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.25,-0.25,0.25,0.25"
+ density: 25
+ mask:
+ - TabletopMachineMask
+ layer:
+ - TabletopMachineLayer
+ - type: Lathe
+ - type: MaterialStorage
+ - type: ActivatableUI
+ key: enum.LatheUiKey.Key
+ - type: ActivatableUIRequiresPower
+ - type: UserInterface
+ interfaces:
+ - key: enum.LatheUiKey.Key
+ type: LatheBoundUserInterface
+ - key: enum.ResearchClientUiKey.Key
+ type: ResearchClientBoundUserInterface
+ - type: Transform
+ anchored: true
+ - type: Pullable
+ - type: StaticPrice
+ price: 800
+ - type: ResearchClient
+ - type: TechnologyDatabase
+
+# Document Printer
+- type: entity
+ parent: BaseDocPrinter
+ id: DocPrinter
+ name: принтер форм документов
+ description: Принтер для распечатки разных форм документов. Блюспейс-технологии на службе бюрократии!
+ components:
+ - type: Physics
+ bodyType: Static
+ - type: Sprite
+ sprite: White/Structures/Machines/doc_printer.rsi
+ drawdepth: SmallObjects
+ layers:
+ - state: icon
+ map: ["enum.LatheVisualLayers.IsRunning"]
+ - state: unlit
+ shader: unshaded
+ map: ["enum.PowerDeviceVisualLayers.Powered"]
+ - state: inserting
+ map: ["enum.MaterialStorageVisualLayers.Inserting"]
+ - type: Lathe
+ producingSound: /Audio/Machines/scanning.ogg
+ idleState: icon
+ runningState: printing
+ staticRecipes:
+ - BoxFolderGreenBAN
+ - PaperRequestTargetStation
+ - PaperReportCC
+ - PaperCompletedStation
+ - PaperFailedStation
+ - PaperRequestCentComm
+ - PaperRequestERT
+ - PaperRequestRXBZZ
+ - PaperRequestExecution
+ - PaperRequestMagistrat
+ - BoxFolderBlueBAN
+ - PaperDomotionComm
+ - PaperDismissalReq
+ - PaperRequestHeadCouncil
+ - PaperHeadCouncilEnd
+ - BoxFolderRedBAN
+ - PaperOrderSec
+ - PaperDonos
+ - PaperLic
+ - PaperTimeRequestWeapon
+ - PaperRequestExecutionSec
+ - PaperOrderWeapon
+ - PaperRequestGuard
+ - BoxFolderRYellowBAN
+ - PaperRequestBuild
+ - PaperRequestMaterial
+ - PaperReportElect
+ - PaperReportAtmos
+ - BoxFolderWhiteBAN
+ - PaperRequestNarco
+ - PaperRequestExecutionMed
+ - PaperWaiverOfClaims
+ - PaperDurka
+ - BoxFolderPurpleBAN
+ - PaperRequestReasonable
+ - PaperRequestLaw
+ - PaperBrain
+ - BoxFolderYellowBAN
+ - PaperCargoOrder
+ - BoxFolderGreyBAN
+ - PaperRequestUpID
+ - PaperRequestWork
+ - PaperRequestTrash
+ - PaperEndTrash
+ - PaperRequestCourt
+ - PaperDismissalSer
+ - PaperPromotion
+ - PaperRequestBotan
+ - type: EmagLatheRecipes
+ emagStaticRecipes:
+ - BoxFolderBlackBAN
+ - PaperSyndicat
+ - type: MaterialStorage
+
+# Recipe Paper
+# Station->CentComm
+- type: latheRecipe
+ id: PaperRequestTargetStation # Tide
+ result: PaperRequestTargetStation
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperReportCC # Tide
+ result: PaperReportCC
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperCompletedStation # Tide
+ result: PaperCompletedStation
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperFailedStation # Tide
+ result: PaperFailedStation
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestCentComm # Tide
+ result: PaperRequestCentComm
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestERT # Tide
+ result: PaperRequestERT
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestRXBZZ # Tide
+ result: PaperRequestRXBZZ
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestExecution # Tide
+ result: PaperRequestExecution
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestMagistrat # Tide
+ result: PaperRequestMagistrat
+ completetime: 1
+ materials:
+ Paper: 0
+
+# PaperCommand
+- type: latheRecipe
+ id: PaperDomotionComm # Tide
+ result: PaperDomotionComm
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperDismissalReq # Tide
+ result: PaperDismissalReq
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestHeadCouncil # Tide
+ result: PaperRequestHeadCouncil
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperHeadCouncilEnd # Tide
+ result: PaperHeadCouncilEnd
+ completetime: 1
+ materials:
+ Paper: 0
+
+# PaperSecurity
+- type: latheRecipe
+ id: PaperOrderSec # Tide
+ result: PaperOrderSec
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestExecutionSec # Tide
+ result: PaperRequestExecutionSec
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperDonos # Tide
+ result: PaperDonos
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperLic # Tide
+ result: PaperLic
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperTimeRequestWeapon # Tide
+ result: PaperTimeRequestWeapon
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperOrderWeapon # Tide
+ result: PaperOrderWeapon
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestGuard # Tide
+ result: PaperRequestGuard
+ completetime: 1
+ materials:
+ Paper: 0
+
+# PaperEng
+- type: latheRecipe
+ id: PaperRequestBuild # Tide
+ result: PaperRequestBuild
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestMaterial # Tide
+ result: PaperRequestMaterial
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperReportElect # Tide
+ result: PaperReportElect
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperReportAtmos # Tide
+ result: PaperReportAtmos
+ completetime: 1
+ materials:
+ Paper: 0
+
+# PaperMed
+- type: latheRecipe
+ id: PaperRequestNarco # Tide
+ result: PaperRequestNarco
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestExecutionMed # Tide
+ result: PaperRequestExecutionMed
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperWaiverOfClaims # Tide
+ result: PaperWaiverOfClaims
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperDurka # Tide
+ result: PaperDurka
+ completetime: 1
+ materials:
+ Paper: 0
+
+# PaperSci
+- type: latheRecipe
+ id: PaperRequestReasonable # Tide
+ result: PaperRequestReasonable
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestLaw # Tide
+ result: PaperRequestLaw
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperBrain # Tide
+ result: PaperBrain
+ completetime: 1
+ materials:
+ Paper: 0
+
+# PaperCargo
+- type: latheRecipe
+ id: PaperCargoOrder # Tide
+ result: PaperCargoOrder
+ completetime: 1
+ materials:
+ Paper: 0
+
+# PaperService
+- type: latheRecipe
+ id: PaperRequestUpID # Tide
+ result: PaperRequestUpID
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestWork # Tide
+ result: PaperRequestWork
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestTrash # Tide
+ result: PaperRequestTrash
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperEndTrash # Tide
+ result: PaperEndTrash
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestCourt # Tide
+ result: PaperRequestCourt
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperDismissalSer # Tide
+ result: PaperDismissalSer
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperPromotion # Tide
+ result: PaperPromotion
+ completetime: 1
+ materials:
+ Paper: 0
+
+- type: latheRecipe
+ id: PaperRequestBotan # Tide
+ result: PaperRequestBotan
+ completetime: 1
+ materials:
+ Paper: 0
+
+# PaperSyndicat
+- type: latheRecipe
+ id: PaperSyndicat # Tide
+ result: PaperSyndicat
+ completetime: 1
+ materials:
+ Paper: 0
+
+# PapersAll
+# Station->CentComm
+- type: entity
+ parent: Paper
+ id: PaperRequestTargetStation
+ noSpawn: true
+ name: запрос цели
+ components:
+ - type: Paper
+ content: paper-text-request
+
+- type: entity
+ parent: Paper
+ id: PaperReportCC
+ noSpawn: true
+ name: отчет о цели
+ components:
+ - type: Paper
+ content: paper-text-report
+
+- type: entity
+ parent: Paper
+ id: PaperCompletedStation
+ noSpawn: true
+ name: цель выполнена
+ components:
+ - type: Paper
+ content: paper-text-completed
+
+- type: entity
+ parent: Paper
+ id: PaperFailedStation
+ noSpawn: true
+ name: цель провалена
+ components:
+ - type: Paper
+ content: paper-text-failed
+
+- type: entity
+ parent: Paper
+ id: PaperRequestCentComm
+ noSpawn: true
+ name: запрос ПЦК
+ components:
+ - type: Paper
+ content: paper-text-request-CentComm
+
+- type: entity
+ parent: Paper
+ id: PaperRequestERT
+ noSpawn: true
+ name: запрос ОБР
+ components:
+ - type: Paper
+ content: paper-text-request-ERT
+
+- type: entity
+ parent: Paper
+ id: PaperRequestRXBZZ
+ noSpawn: true
+ name: запрос РХБЗЗ
+ components:
+ - type: Paper
+ content: paper-text-request-RXBZZ
+
+- type: entity
+ parent: Paper
+ id: PaperRequestExecution
+ noSpawn: true
+ name: жалоба высшей степени
+ components:
+ - type: Paper
+ content: paper-text-request-high-order-compaint
+
+- type: entity
+ parent: Paper
+ id: PaperRequestMagistrat
+ noSpawn: true
+ name: запрос в магистрат
+ components:
+ - type: Paper
+ content: paper-text-request-magistrat
+
+# PaperCommand
+- type: entity
+ parent: Paper
+ id: PaperDomotionComm
+ noSpawn: true
+ name: запрос на понижение
+ components:
+ - type: Paper
+ content: paper-comm-text-crew-mem-domotion
+
+- type: entity
+ parent: Paper
+ id: PaperDismissalReq
+ noSpawn: true
+ name: запрос на увольнение
+ components:
+ - type: Paper
+ content: paper-comm-text-crew-mem-dismissal
+
+- type: entity
+ parent: Paper
+ id: PaperRequestHeadCouncil
+ noSpawn: true
+ name: запрос на голосование глав
+ components:
+ - type: Paper
+ content: paper-comm-text-request-council
+
+- type: entity
+ parent: Paper
+ id: PaperHeadCouncilEnd
+ noSpawn: true
+ name: отчет по голосованию глав
+ components:
+ - type: Paper
+ content: paper-comm-text-council-end
+
+# PaperSecurity
+- type: entity
+ parent: Paper
+ id: PaperOrderSec
+ noSpawn: true
+ name: ордер на арест
+ components:
+ - type: Paper
+ content: paper-sec-text-order
+
+- type: entity
+ parent: Paper
+ id: PaperDonos
+ noSpawn: true
+ name: жалоба
+ components:
+ - type: Paper
+ content: paper-sec-text-complaint
+
+- type: entity
+ parent: Paper
+ id: PaperLic
+ noSpawn: true
+ name: разрешение на ношение оружия
+ components:
+ - type: Paper
+ content: paper-sec-text-lic
+
+- type: entity
+ parent: Paper
+ id: PaperTimeRequestWeapon
+ noSpawn: true
+ name: временный запрос на оружие
+ components:
+ - type: Paper
+ content: paper-sec-text-request-weapon
+
+- type: entity
+ parent: Paper
+ id: PaperRequestExecutionSec
+ noSpawn: true
+ name: запрос на казнь
+ components:
+ - type: Paper
+ content: paper-sec-text-request-execution
+
+- type: entity
+ parent: Paper
+ id: PaperOrderWeapon
+ noSpawn: true
+ name: разрешение на заказ оружия
+ components:
+ - type: Paper
+ content: paper-sec-text-request-cargo-weapon
+
+- type: entity
+ parent: Paper
+ id: PaperRequestGuard
+ noSpawn: true
+ name: программа защиты свидетелей
+ components:
+ - type: Paper
+ content: paper-sec-text-request-guard
+
+# PaperEng
+- type: entity
+ parent: Paper
+ id: PaperRequestBuild
+ noSpawn: true
+ name: разрешение о проведении строительных работ
+ components:
+ - type: Paper
+ content: paper-eng-text-request-build
+
+- type: entity
+ parent: Paper
+ id: PaperRequestMaterial
+ noSpawn: true
+ name: запрос материалов
+ components:
+ - type: Paper
+ content: paper-eng-text-request-material
+
+- type: entity
+ parent: Paper
+ id: PaperReportElect
+ noSpawn: true
+ name: отчет об электроснабжении
+ components:
+ - type: Paper
+ content: paper-eng-text-report-elect
+
+- type: entity
+ parent: Paper
+ id: PaperReportAtmos
+ noSpawn: true
+ name: отчет об атмосфере
+ components:
+ - type: Paper
+ content: paper-eng-text-report-atmos
+
+# PaperMed
+- type: entity
+ parent: Paper
+ id: PaperRequestNarco
+ noSpawn: true
+ name: лекарственный рецепт
+ components:
+ - type: Paper
+ content: paper-med-text-request-perm-narc
+
+- type: entity
+ parent: Paper
+ id: PaperRequestExecutionMed
+ noSpawn: true
+ name: запрос на проведение эвтаназии
+ components:
+ - type: Paper
+ content: paper-med-text-request-execution
+
+- type: entity
+ parent: Paper
+ id: PaperWaiverOfClaims
+ noSpawn: true
+ name: отказ от претензий
+ components:
+ - type: Paper
+ content: paper-med-text-waiver-claims
+
+- type: entity
+ parent: Paper
+ id: PaperDurka
+ noSpawn: true
+ name: заключение о невменяемости
+ components:
+ - type: Paper
+ content: paper-med-text-durka
+
+# PaperSci
+- type: entity
+ parent: Paper
+ id: PaperRequestReasonable
+ noSpawn: true
+ name: признание разумности существа
+ components:
+ - type: Paper
+ content: paper-sci-text-reasonable
+
+- type: entity
+ parent: Paper
+ id: PaperRequestLaw
+ noSpawn: true
+ name: постановление о изменении законов боргов
+ components:
+ - type: Paper
+ content: paper-sci-text-request-law
+
+- type: entity
+ parent: Paper
+ id: PaperBrain
+ noSpawn: true
+ name: постановление о пересадке мозга
+ components:
+ - type: Paper
+ content: paper-sci-text-brain
+
+# PaperCargo
+- type: entity
+ parent: Paper
+ id: PaperCargoOrder
+ noSpawn: true
+ name: заказ товара
+ components:
+ - type: Paper
+ content: paper-car-text-order
+
+# PaperService
+- type: entity
+ parent: Paper
+ id: PaperRequestUpID
+ noSpawn: true
+ name: повышение доступа
+ components:
+ - type: Paper
+ content: paper-ser-text-up-IDcard
+
+- type: entity
+ parent: Paper
+ id: PaperRequestWork
+ noSpawn: true
+ name: ускоренный найм
+ components:
+ - type: Paper
+ content: paper-ser-text-work
+
+- type: entity
+ parent: Paper
+ id: PaperRequestTrash
+ noSpawn: true
+ name: свидетельство о заключении брака
+ components:
+ - type: Paper
+ content: paper-ser-text-trash
+
+- type: entity
+ parent: Paper
+ id: PaperEndTrash
+ noSpawn: true
+ name: свидетельство о расторжении брака
+ components:
+ - type: Paper
+ content: paper-ser-text-trash-end
+
+- type: entity
+ parent: Paper
+ id: PaperRequestCourt
+ noSpawn: true
+ name: инициация судебного процесса
+ components:
+ - type: Paper
+ content: paper-ser-text-court
+
+- type: entity
+ parent: Paper
+ id: PaperDismissalSer
+ noSpawn: true
+ name: увольнение
+ components:
+ - type: Paper
+ content: paper-ser-text-dismissal
+
+- type: entity
+ parent: Paper
+ id: PaperPromotion
+ noSpawn: true
+ name: повышение
+ components:
+ - type: Paper
+ content: paper-ser-text-promotion
+
+- type: entity
+ parent: Paper
+ id: PaperRequestBotan
+ noSpawn: true
+ name: запрос растений
+ components:
+ - type: Paper
+ content: paper-ser-text-request-botan
+
+# PaperSyndicat
+- type: entity
+ parent: Paper
+ id: PaperSyndicat
+ noSpawn: true
+ name: секретные документы
+ components:
+ - type: Paper
+ content: paper-syn-text-ha-ha
+
+# BoxFolder
+- type: entity
+ id: BoxFolderRedBAN
+ parent: BoxFolderBase
+ noSpawn: true
+ name: формы службы безопасноти
+ suffix: Red
+ components:
+ - type: Sprite
+ sprite: White/Structures/Machines/doc_printer.rsi
+ layers:
+ - state: folder-sec
+ - type: TimedDespawn
+ lifetime: 0,1
+
+- type: entity
+ id: BoxFolderBlueBAN
+ parent: BoxFolderBase
+ noSpawn: true
+ name: формы командования
+ suffix: Blue
+ components:
+ - type: Sprite
+ sprite: White/Structures/Machines/doc_printer.rsi
+ layers:
+ - state: folder-com
+ - type: TimedDespawn
+ lifetime: 0,1
+
+- type: entity
+ id: BoxFolderYellowBAN
+ parent: BoxFolderBase
+ noSpawn: true
+ name: формы карго
+ suffix: Yellow
+ components:
+ - type: Sprite
+ sprite: White/Structures/Machines/doc_printer.rsi
+ layers:
+ - state: folder-car
+ - type: TimedDespawn
+ lifetime: 0,1
+
+- type: entity
+ id: BoxFolderWhiteBAN
+ parent: BoxFolderBase
+ noSpawn: true
+ name: формы медиков
+ suffix: White
+ components:
+ - type: Sprite
+ sprite: White/Structures/Machines/doc_printer.rsi
+ layers:
+ - state: folder-med
+ - type: TimedDespawn
+ lifetime: 0,1
+
+- type: entity
+ id: BoxFolderGreyBAN
+ parent: BoxFolderBase
+ noSpawn: true
+ name: формы сервиса
+ suffix: Grey
+ components:
+ - type: Sprite
+ sprite: White/Structures/Machines/doc_printer.rsi
+ layers:
+ - state: folder-ser
+ - type: TimedDespawn
+ lifetime: 0,1
+
+- type: entity
+ id: BoxFolderGreenBAN
+ parent: BoxFolderBase
+ noSpawn: true
+ name: формы для ЦентКома
+ suffix: Green
+ components:
+ - type: Sprite
+ sprite: White/Structures/Machines/doc_printer.rsi
+ layers:
+ - state: folder-CC
+ - type: TimedDespawn
+ lifetime: 0,1
+
+- type: entity
+ id: BoxFolderRYellowBAN
+ parent: BoxFolderBase
+ noSpawn: true
+ name: формы инженеров
+ suffix: RYellow
+ components:
+ - type: Sprite
+ sprite: White/Structures/Machines/doc_printer.rsi
+ layers:
+ - state: folder-eng
+ - type: TimedDespawn
+ lifetime: 0,1
+
+- type: entity
+ id: BoxFolderPurpleBAN
+ parent: BoxFolderBase
+ noSpawn: true
+ name: формы учёных
+ suffix: Purple
+ components:
+ - type: Sprite
+ sprite: White/Structures/Machines/doc_printer.rsi
+ layers:
+ - state: folder-sci
+ - type: TimedDespawn
+ lifetime: 0,1
+
+- type: entity
+ id: BoxFolderBlackBAN
+ parent: BoxFolderBase
+ noSpawn: true
+ name: формы J@4D*S
+ suffix: Black
+ components:
+ - type: Sprite
+ sprite: White/Structures/Machines/doc_printer.rsi
+ layers:
+ - state: folder-syn
+ - type: TimedDespawn
+ lifetime: 0,1
+
+# RecipeBoxFolder
+- type: latheRecipe
+ id: BoxFolderGreenBAN # Tide
+ result: BoxFolderGreenBAN
+ completetime: 1
+ materials:
+ Paper: 1
+
+- type: latheRecipe
+ id: BoxFolderGreyBAN # Tide
+ result: BoxFolderGreyBAN
+ completetime: 1
+ materials:
+ Paper: 1
+
+- type: latheRecipe
+ id: BoxFolderWhiteBAN # Tide
+ result: BoxFolderWhiteBAN
+ completetime: 1
+ materials:
+ Paper: 1
+
+- type: latheRecipe
+ id: BoxFolderYellowBAN # Tide
+ result: BoxFolderYellowBAN
+ completetime: 1
+ materials:
+ Paper: 1
+
+- type: latheRecipe
+ id: BoxFolderBlueBAN # Tide
+ result: BoxFolderBlueBAN
+ completetime: 1
+ materials:
+ Paper: 1
+
+- type: latheRecipe
+ id: BoxFolderRedBAN # Tide
+ result: BoxFolderRedBAN
+ completetime: 1
+ materials:
+ Paper: 1
+
+- type: latheRecipe
+ id: BoxFolderRYellowBAN # Tide
+ result: BoxFolderRYellowBAN
+ completetime: 1
+ materials:
+ Paper: 1
+
+- type: latheRecipe
+ id: BoxFolderPurpleBAN # Tide
+ result: BoxFolderPurpleBAN
+ completetime: 1
+ materials:
+ Paper: 1
+
+- type: latheRecipe
+ id: BoxFolderBlackBAN # Tide
+ result: BoxFolderBlackBAN
+ completetime: 1
+ materials:
+ Paper: 1
diff --git a/Resources/Prototypes/White/Recipes/lathe_recipes.yml b/Resources/Prototypes/White/Recipes/lathe_recipes.yml
index 85f5284bf7..1680f0e9fe 100644
--- a/Resources/Prototypes/White/Recipes/lathe_recipes.yml
+++ b/Resources/Prototypes/White/Recipes/lathe_recipes.yml
@@ -11,3 +11,13 @@
completetime: 5
materials:
Steel: 1500
+- type: latheRecipe
+ id: ClothingEyesNightVisionGoggles
+ result: ClothingEyesNightVisionGoggles
+ completetime: 2
+ materials:
+ Steel: 200
+ Glass: 100
+ Silver: 100
+ Gold: 100
+
diff --git a/Resources/Prototypes/White/Research/experimental.yml b/Resources/Prototypes/White/Research/experimental.yml
new file mode 100644
index 0000000000..5df1e504e2
--- /dev/null
+++ b/Resources/Prototypes/White/Research/experimental.yml
@@ -0,0 +1,43 @@
+- type: technology
+ id: AdvancedRobotics
+ name: research-technology-advanced-robotics
+ icon:
+ sprite: White/Mobs/Player/Borgs/cyborg.rsi
+ state: icon
+ discipline: Experimental
+ tier: 1
+ cost: 5000
+ recipeUnlocks:
+ - CyborgMonitoringComputerCircuitboard
+ - BorgChargerMachineCircuitboard
+ - CyborgMonitoringServerMachineCircuitboard
+ - PositronicBrain
+
+- type: technology
+ id: UpgradeBorgModule
+ name: research-technology-upgrade-borg
+ icon:
+ sprite: White/Objects/Devices/cyborgradiomodule.rsi
+ state: icon
+ discipline: Experimental
+ tier: 2
+ cost: 15000
+ recipeUnlocks:
+ - CyborgHUDModuleSec
+ - CyborgHUDModuleMed
+ - CyborgSpeedModule
+ - CyborgInstrumentModuleFilled
+ - CyborgJetpackModule
+
+# Night Vision Tech
+- type: technology
+ id: NightVisionTech
+ name: night vision technology
+ icon:
+ sprite: White/Clothing/Head/nightvision.rsi
+ state: icon
+ discipline: Experimental
+ tier: 2
+ cost: 10000
+ recipeUnlocks:
+ - ClothingEyesNightVisionGoggles
diff --git a/Resources/Textures/White/Clothing/Head/nightvision.rsi/equipped-EYES.png b/Resources/Textures/White/Clothing/Head/nightvision.rsi/equipped-EYES.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d15515f7ad7d92ea8ecc536d8f5c06b83633aa0
GIT binary patch
literal 387
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVD$2IaSW+oe0$5@+bK}u_{VsK
zmc{=Mln57fwy8aQMS4BMO|5y)xJM&sW{DT+Ur+HP`sGE$7e0hfaN4p#5d)g4}&Km{s$+pREi3_*Uj-+Sk0%FD
o-l-)SUA^y^Fg~k(_&$&}IPYm+xyRrwFmM?>UHx3vIVCg!09<{XZ2$lO
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Clothing/Head/nightvision.rsi/icon.png b/Resources/Textures/White/Clothing/Head/nightvision.rsi/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..bf770f70f8969ba008b8e4d2b2687cd602520849
GIT binary patch
literal 218
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv=>VS)*8>L**f|I28rn!mD1}BQ
zi!9KSsclyt1T!`qZMy~(>
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Clothing/Head/nightvision.rsi/inhand-left.png b/Resources/Textures/White/Clothing/Head/nightvision.rsi/inhand-left.png
new file mode 100644
index 0000000000000000000000000000000000000000..995b37471b38d3dbcef1e91888c4ed58239b2d29
GIT binary patch
literal 385
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVD#{GaSW+oe0ytS)}a8AV;?79
zTDrUS+Q#IAP0lZsthSWoxw9WU{v!DYhg1B5>~=oQcTG*fg=?A>V|Tglb68?=^-eYO
z#s71CKGf`de*CKH@t#%&CJu!LG~z%Yr^~+Gxjp%tUSD5r^X>EFvzGg-|4-4(F^q^Z
znq&F=?YHVp)rX(%y813!_Xwq1POdh~sI^pF2$AHG+EHSOm8{6o=W#kb{d*H*u;
zS^a$a*}YN)E5Bwqi(qjds&fl0m=50K3wI1TBe%n+zhXZBibaLCi>F;y-d9lL*MH>|
rOUn$om3QkIfC6>yPr#m?k;`yJy1Mbjqo4nPLCfIj>gTe~DWM4fU$Cme
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Clothing/Head/nightvision.rsi/inhand-right.png b/Resources/Textures/White/Clothing/Head/nightvision.rsi/inhand-right.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3efa67f837fbc9cc5851d2ec09ce705d1bc7652
GIT binary patch
literal 410
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU`+IMaSW+oe0ytS)}a82qaV*-
zI(paX^^L%Q0*zQNYmK?LH#R>={vl!4^nkmhv>;%Yc+?A(J}Zr~mvWYk+>A$OyLd19
z_g={GyV~0qbm+$>=7ys&Nlh=Q<
zJ!dO^ygOUHQG3Fv|Ldli?To*f`uzN=uk8ZK*JtUR*PLIZwZ3S#ynd*fZk_a9R-vmW
zsw=~TEKR3G|E%SZ_IKFwA|qhSyU$x~P2=DG{(Shi#ZG}pxv9aGQ=@<0?f6!7|K*OY
zQ`GdIZ7#TX)%Rz{DfjNVPVE`;cFGM5OdJaMh-%K9T5Fl-U7qDhM|P%(6`OryKf<{%
z{5<>ZPQmAGm2;F^RICj@-Ef>4WXl*eqeQ*!+LOX1|M&}1Z*)FXu}}gTEi?as)UL{^
V#;mG;OXk;vd$@?2>@%NsSE%B
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Clothing/Head/nightvision.rsi/meta.json b/Resources/Textures/White/Clothing/Head/nightvision.rsi/meta.json
new file mode 100644
index 0000000000..541bdfbedc
--- /dev/null
+++ b/Resources/Textures/White/Clothing/Head/nightvision.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/5a73e8f825ff279e82949b9329783a9e3070e2da",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-EYES",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/White/Items/Tools/tricorder.rsi/icon.png b/Resources/Textures/White/Items/Tools/tricorder.rsi/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3517223cba7f4a55286641c0b60375a35679a381
GIT binary patch
literal 312
zcmV-80muG{P)!k7~%I>Htum+08&l@Z{n{2;LUp*M@D-DVS)*8>L*c>Op2|7EY2SIjvn
z>1uhk6)QrcR)qflZ#-+2hCNUjV@Z%-FoVOh8)-m}mZytjh{nX^1c`4B9S2n;d{5jI
w@paw6Ig2Yeebw&fURmFU=83P$0%RE&Y9yE}bBw(bfVvnwUHx3vIVCg!05PU7%K!iX
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Items/Tools/tricorder.rsi/on.png b/Resources/Textures/White/Items/Tools/tricorder.rsi/on.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c86a50d2eb58229daff08e53ac7b45485e9f63d
GIT binary patch
literal 151
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv=>VS)*8>L*c>Op2|7EY2SB&hN
zL)=H(SF8w)S`qsHzj3t_X9-XlV@Z%-FoVOh8)-m}mZytjh{nX^1c`4B9S2n;d{5jI
w@paw6Ig2Yeebw&fURmFU=83P$0%RE&Y9yE}bBw(bfVvnwUHx3vIVCg!0FE0lxc~qF
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-CC.png b/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-CC.png
new file mode 100644
index 0000000000000000000000000000000000000000..f740aa3c9be4c986e3fe6a7efa60e0d519bc7eac
GIT binary patch
literal 246
zcmV8^M
z-V5jmzw$5oCV*cAj|6!Dw_4x(CoaR;y7B<76bd?=Z8@0kUjYHSI{**iaq^?7_aAn&
wbsC2N>H%|F9t2nXFbX;_Ob6%y9r&LEAJkMate?r+4gdfE07*qoM6N<$f<`J}^8f$<
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-base.png b/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-base.png
new file mode 100644
index 0000000000000000000000000000000000000000..5fbb47268fc20367d8ba35969dae8e1dda8bf9cf
GIT binary patch
literal 98
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzO-~ockch)?FDNoG81OJ{{Pf>F
w*f!dD@(*VNW`_Asg|@ymo^)g?14B4>?>rVJ{`tncfSMRQUHx3vIVCg!0F{&*i2wiq
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-car.png b/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-car.png
new file mode 100644
index 0000000000000000000000000000000000000000..068d11192efbe0051d86587cae338d0b3fa020e4
GIT binary patch
literal 256
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ#ArYL(2@@XI7(om88@IQC|K2$PgY7nU
z_Drx^B*UO}-;?pkHRdHVELWA8u(&xVn6PAsF)@7cSC6}};Pefkml!-<{an^LB{Ts5
Dclllk
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-com.png b/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-com.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c679a983c3d6c0adab2eac7e4e0cad1e268208a
GIT binary patch
literal 264
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ^PVn_ArYL(2@<3#}pUdCCi3=CI~Yii5$Z#V<=8iS{+
KpUXO@geCxtI9##-
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-eng.png b/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-eng.png
new file mode 100644
index 0000000000000000000000000000000000000000..d99478b036d3b80a168c0bea92a31746de1bb3d6
GIT binary patch
literal 261
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJGoCJvArYL(2@E+?(|Oa#y_IQx3I9
zJxk|mEpldf){<>re|Uz*mT6Yn%pQI&Gp0U#IC;KC(GLq1Ylf5=(KnPujLX+fa(+1Z
zkm6~^DG?p-EGEe^aJ>r859n1iYh3iI>4QfZgNL*pcj8Ni*{(Z|u-SFVdQ
I&MBb@0LECYe9EEr
z$Y<$Xtw+ubuiDOU=SwW*T|Y~f*`v=tYVO0&x6>o8CJ3wCWK?kG+giPNMr!y@(N=%1
zb{+PBB*k5iJ<1p~R!HvO=VJKWe!B(Nd=b8rd<>F(r=2D|wtMKIyhFzH!Ony$jLdRO
zN7N5ZpI)$3x$8)05yOfmMOJ}m{s~FXR@}NMAi>*sQD8wN2LrgTe~DWM4f0K8(B
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-overlay-paper.png b/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-overlay-paper.png
new file mode 100644
index 0000000000000000000000000000000000000000..82f57cdd65389bfe37dd9288cd8c9dc8f56aa2ac
GIT binary patch
literal 113
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz3r`ovkch)?FK*;zFyLTzob$K*
zV@FzRN#KL^%PMASG0ZqomY0A2^^HnK&rQ{gOe&q?0uBreHA@+FMA+3gm@cgbn!(`d
L>gTe~DWM4f>yaXG
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-sci.png b/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-sci.png
new file mode 100644
index 0000000000000000000000000000000000000000..e97c6682f6939f0b8024c448821d3e91eaf3520a
GIT binary patch
literal 261
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJGoCJvArYL(2@wsm#zG0u?AW2)`oT~S0A7E?RT
zI3=RvoysIx2Ci4%?duoKaL!?Jy~y%(!W)JOb}?dyE-{*Q7j*Jg=t-0wXlQ4+*ePK9
z^s!gSk}lz=3<0dpTngLd6po$=+zNHH!)5^n1|>~($=SCLl>xoQ;OXk;vd$@?2>{M1
BTZsSw
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-ser.png b/Resources/Textures/White/Structures/Machines/doc_printer.rsi/folder-ser.png
new file mode 100644
index 0000000000000000000000000000000000000000..554cb609fe7a08f7886f804aef3b0dc4f318cf85
GIT binary patch
literal 255
zcmV_>k_s7
z-6YN#O^FiyK$3IPxhZ;=8Pp#h672Xr;l$a$N*}lTeUJCs_Gpe5rv{_y1q;UWXY5Pw
z&b{bZ{Q2J8=QBUG*7dUoPftupd1v5zfpJFDjlgx%T`yR;oV`}+tS;}_SW~<8|5`)l
z0|w7yezpm$x_9Xh%ZKv^ROd)Oh`n-sU;M92dnFmp&1XycU&@`)@NByS!&%`4{0|Fd
wRyMcRH!js+Sp8D?fLo&Cv@nqM8_JmY``cww<;zXlfPP`{boFyt=akR{02Xy<8vp^*^%Ab1W7&tu^^1i{J^*jrg@X=&;5Wb+wjC$97VF0wEI$v7r?
zkIc(RbhEwL;^%q3pXD@7V^#CxteE}{;Bg#N6h-={<9!@Q_}zxYWdaO73OgsTQ6J>%CsS6{`Pccf}yWo)6
zh2|_F6BGNt`>@YWY@&*%hrIp|27^OZoyla9yUncj?BB}Pf3gL#t|8v(bg12Kv$rjm
zOOzjcLGYpP48Vvl77N;Lw=96oW-FPTGgF`*#%`@v6Jv*|YjVVrQ2JsINIMV1j6)_j#$L+J{nE@K)eogF0)XMu>6H5Y
z{;%8^J)h6bS2pi2!2-n3VLA5AqUITG!aY>O=EN8^j=pU}nZ|
zQJ)Y9F$AOql-)jpU?}~}9$+HBZD6SD5c(_t%;%Vf%1l}72U{nke&tt!3c&7uRl8Nt4KndJD0r6>2vi#ChV&11dNk=L#
zTc3R;mL;y|1N3}=o)3^l$X%9K{-vlG1i5JIV}D-iHlg&{X)xseJO?18zSsjo?ay-n
zP!>vG1Q2R}UIGwGUjzWdoc8D6lk)+|d4OX|?a{mL&!1|tnT!5xHv4fd!Pw!dp9#Qe
ze?EN>;mSRF*88N;MZece4kp;=66|Y9ASoAvV5t3h&Ne+CaH68;1Gw&SWtnt7q4Fz1
z1#o4L`Zv|sSpeQ~Yw;pp=Y3Q3*ZM_#)w)VR2`B+2pahhF5>Nt4KndJFfiIHcGZ)la
R2&Mo4002ovPDHLkV1h!*SF!*A
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Structures/Machines/doc_printer.rsi/inserting.png b/Resources/Textures/White/Structures/Machines/doc_printer.rsi/inserting.png
new file mode 100644
index 0000000000000000000000000000000000000000..f966089daea1d06e546ce4665de4e907060c71cb
GIT binary patch
literal 1471
zcmah}|2xwO9RF-467jShHBl~+qfK&H?%6&I7hywnJ-*D$og@yO8OJawl~DPTiZw~+
z%N6teZad^Sg)x!Z2(`rw54fJ^^?tuzujlpt?e#qG>pp}NdOAoQ008tn
z++F>)n6Wh>+S|7FNK%pq0BB}+k50nVHJ2A<&^-2mZG0szT6dQ
zUua-rEr+s=eD4!TiBR+Jf=hMXb-ip5Gnub6kGxE-sfo$KJiiVfb2KO4acZOGt~--=
zN%(T6pK0H~z`!YAd24HHRhivtD+V_4$ze*l><~CLx6$^AU0>#IUgtUpgG5J1AJe}i
z7KEm_Vy4NBcPmRvPU~}P^pf1d^Bh2HJvHkf^rwy4+3ML9war9dpJ(q%
zJvji#Q%s<3bd4Lh++R1|j$0jr`v?aOywq;c?1*-E#sR*obW@?IPomRLOL8@GV4?$;
zhM>FSpIo#iFzSr`&7a*}z5$y_HcVZDUfa&)wUN1i8N)6(I`$q1iqH%Rj*H(!qfk`8
zpgB8Q%H)xB5=(bB)834*{oHhm9FO-)}74GkrBVUUz+ZU@M3;^i(Fd~`3I
zC6P!~QfWk?1QW@h*f(DxMn8afN%AuqU6w{^_Zy$~8Et=Fqp#l7$A&(_%r^CVj=r8c
zxKRdFih6pkj|v2db+5Y#L}Gj%srKnpJ!J&hPeYKE;Uyq;k`VwVvm`AxwzRpqxjS-<
zqFM=BGEAm52aw5Ww(JmL%G-C_OWR#1)ngAKx!zhWV>9Ly5OX)4BUW|+@
z5;sPiZOLdNe*I-*M_=k?hs3ek!EH33Z!>I>Jn5X4tYzT12A%_3)rC@UdTEk9;LWu;
zr*;BKun#*{o55zItQlitfo?77W<_eXdWf5`PFL&I4eBCtL0;B49ob&RBca
zCqQ1EQu`;3Ph3qjBvzNCHSVKGejWIs9-j(6J}CKwnLfScc%X
z$93qNuuwvgqDRHXb*LcP8$#i|-5>Ci3RQPST<)}@QAxqsq}3h;ya`}F!o82j%l>%k
z7Cq}oNpUe8hpylYtGu2(&RK4SfgvtLpLgOXDwT?I@l6ok(a{mhou~W9Kn&_E__y#f
zr3%LEEh3E`0_7+W`QzpbWjNIK{mZ@heGT}^-3_Y~CIwBkmQ|lQXYhq
zZ)pZ{8qSKLmA42yu{cHqYp9bQ?>rpGy|8H+y4j~32uoAd36y>(F`7PBSf&juYos=6
zav|(58A@QJm41y+gtPb&N2k_w2aW9VLeW*)9A!&_nE
zTmv%2#b~W|Y^ehjMUJh(<{i^Hoznpcrg9ZUtn}`#q1tRb)&z4Rzo-APgR>rJ
ztiDP7GYXv$WelCU+bLVfDgvS#z2WHJEXbvc!llqRE3MA#x#3g_?whn_2iq_@$1wZ%
z%yp^~el47FS}y%X+;2Z$agPNe!0J`%u=E^qd6-Asufr(uwZf(%DuNxb<5Ui_<_8wd
z?tG`KO#lAh0n?VTI;A`0^5z+y4E2$`7Z#cd@bpXlx+;oKlrS^bSCw#f5u-pZZ61y=
zULNizGAz?epw0za5b6tI&{;De_vBTDfD6pxR&3gK78xu;L)wo)$QvVvA6jTLfd2)U
buf3*WSm`MN@<+0_9y8$KMsTe;9&+g)2gSew
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Structures/Machines/doc_printer.rsi/meta.json b/Resources/Textures/White/Structures/Machines/doc_printer.rsi/meta.json
new file mode 100644
index 0000000000..75d284d44e
--- /dev/null
+++ b/Resources/Textures/White/Structures/Machines/doc_printer.rsi/meta.json
@@ -0,0 +1,96 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Made by Valentyi",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "unlit",
+ "delays": [
+ [
+ 0.6,
+ 0.7,
+ 0.6,
+ 0.7
+ ]
+ ]
+ },
+ {
+ "name": "folder-base"
+ },
+ {
+ "name": "idle"
+ },
+ {
+ "name": "folder-CC"
+ },
+ {
+ "name": "folder-overlay-paper"
+ },
+ {
+ "name": "folder-med"
+ },
+ {
+ "name": "folder-sec"
+ },
+ {
+ "name": "folder-eng"
+ },
+ {
+ "name": "folder-sci"
+ },
+ {
+ "name": "folder-car"
+ },
+ {
+ "name": "folder-syn"
+ },
+ {
+ "name": "folder-com"
+ },
+ {
+ "name": "folder-ser"
+ },
+ {
+ "name": "inserting",
+ "delays": [
+ [
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2
+ ]
+ ]
+ },
+ {
+ "name": "printing",
+ "delays": [
+ [
+ 0.4,
+ 0.4,
+ 0.4,
+ 0.4,
+ 0.4,
+ 0.4,
+ 0.4,
+ 0.4,
+ 0.4
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/White/Structures/Machines/doc_printer.rsi/printing.png b/Resources/Textures/White/Structures/Machines/doc_printer.rsi/printing.png
new file mode 100644
index 0000000000000000000000000000000000000000..802903c41057ee0b215e17e9e8ae2ac4a79a4bfb
GIT binary patch
literal 1426
zcmZ{kdpOez7{`BOOgER(Xso%MD8h4GhLzb6M!BVAayXPrF1dGM3w4wfPA;Q5MlQp&
z9qP=j$T{wpk)h+V35A2rqA_C}J?G!k^L)SW_wzjOfA9Bs-c%PSy90Y+djSAAfU~!8
z+fCnZmXY3_(|I?{06@wUXM=UW3F7`%?EuFrrf91_mfnBqjFhX2-hSw;)JYrpgvS$!
zd4?bN1tET%EpwPTB!h%DVNQb8$1Vj8xjTf~$oE>LMdw$|_44wUm?k&2^`6(iGFl~X
zFnLU~0s-u9aWS|ccvuMvj%tUs-Xp$evq(?lDz{!3@P>u?A?;yh35~cv1J)-W(V%E7V>Er&&VJ
zMB>HtKCSUjtg)xJPMKV73Jb59I~GtSIqyk~j`nYFZy(bwxPLg^4CFPOl$3Nb#KU1I
zy?||DVKF`N^Z1zYF+!wl#MB|>eM4o?i>}ue9d)%U2s)w{k}?x(Ym9s{`A#-IsIjpT
z*;8g@WaMcsD2>H@TR%{3@$vC7O-oDT8ap>^lm^?{+O4z&gopE7^BILzXu-2ubq0}>
zQX~2aG62W$+1Z74b~A*(^6mt3<3^c{4I{D_$@n4PyAGBE(vb(tx`xor<2DjT#tJM=
zdy$m>q~5tdE9T>ufyR|C$%g`SDZ&WoHO0DTKqrGrr4F)7OEMc$YEM?U)O&dv++XYor8I*`thr1g@Eu{)K#`{I3-ln8TjS!1f9yZA%lfx*
zgQhp%AY8bc3Z-z2$I%w&4RK;u7cM$JK4fiuy)?vKOtcAxWcpENR)hIqEXwLdR%uho
zikze4(g~I4o9r1?T2VJhvEbZ&MTGMllgT_@!7Ybj9uzgx>3u?BojD3+Xb>Mi?j1CB
z-a1FJ9IF6S7Vp6piN=Z@0DM@b^X{!ybai!SJ#>YSc;G&DT5`#-bX!L>fW97jr2ztg
zR5iuLeq!Ab%S(`zG=OE;OBdX1Ii5@-qMV$Zdinf_+&jY`C?kRJOt%E0t^T^^tgy|_
zMd!Q6?A|hpi1~|vPvwSonI|j
z;&(FR;^Ib@mX@xNCvS2%zlxMdXL&~bVP}^iF(~v7kLLuIUlaqR)V}*~$nQ{U0SRwR
zIOom}Dj~4d(=*=uaP(oqd(bzW{|~{|aPo3%7wK`vjiR~LYlLxZPkQ=7?NaCV%jQ2i
zvTnoWHPIaZai2*q7oix`lrGWVrrd0{XGWZ8Hc9^YR?@GvV^g20_|+5A`Y2;gHS-Dj
zMRC2Zn%@ysc?G1l6ePl3Be$BWHb`1awhCkM`YAL-_Yp1z0ROKF^ph+Lw-?smf;T_!
P{#pQc#>s|e<(vF3EX}KS
literal 0
HcmV?d00001
diff --git a/Resources/Textures/White/Structures/Machines/doc_printer.rsi/unlit.png b/Resources/Textures/White/Structures/Machines/doc_printer.rsi/unlit.png
new file mode 100644
index 0000000000000000000000000000000000000000..c7b0bff3ea017516fd2ac5e2931560674cf1c702
GIT binary patch
literal 232
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=>pfi@Ln;{G-g4w>HV|OF@X~i#
zdk%jf|IMA9y{xKwyE+40;+zyFKJl-K?!CYvpy1HJz{teHAs`_%Be~CAdTshMv$joa
zd}~ejo4#z}pwyy7!;|?x_ktve|a#qk^*ezl-<%5&qD1qWayo
okgN5t-mi*6*n}{mpsbO9v4^b8j;DH0flg=eboFyt=akR{0JlX;I{*Lx
literal 0
HcmV?d00001