Skip to content

Commit

Permalink
Merge branch 'master' into buckets_and_tanks
Browse files Browse the repository at this point in the history
  • Loading branch information
MrRomainzZ authored Nov 23, 2023
2 parents 6c352b1 + 1ed85dd commit 0be23b7
Show file tree
Hide file tree
Showing 9 changed files with 105 additions and 86 deletions.
2 changes: 1 addition & 1 deletion code/modules/paperwork/photocopier.dm
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@
if(!cancopy(scancopy))
return
copying = TRUE
playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, TRUE)
playsound(loc, print_sound, 50) // SS220 EDIT
if(istype(C, /obj/item/paper))
for(var/i in copies to 1 step -1)
if(!papercopy(C))
Expand Down
4 changes: 2 additions & 2 deletions code/modules/reagents/chemistry/machinery/chem_dispenser.dm
Original file line number Diff line number Diff line change
Expand Up @@ -234,8 +234,8 @@
SStgui.update_uis(src)
return

if(isrobot(user))
return
//if(isrobot(user)) // SS220 EDIT
// return

if((istype(I, /obj/item/reagent_containers/glass) || istype(I, /obj/item/reagent_containers/food/drinks)) && user.a_intent != INTENT_HARM)
if(panel_open)
Expand Down
4 changes: 2 additions & 2 deletions code/modules/reagents/chemistry/machinery/chem_heater.dm
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@
stat |= NOPOWER

/obj/machinery/chem_heater/attackby(obj/item/I, mob/user)
if(isrobot(user))
return
//if(isrobot(user)) // SS220 EDIT
// return

if(istype(I, /obj/item/reagent_containers/glass) && user.a_intent != INTENT_HARM)
if(beaker)
Expand Down
29 changes: 14 additions & 15 deletions modular_ss220/bureaucracy/code/forms.dm
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ GLOBAL_LIST_INIT(bureaucratic_forms, list())
category = "Главы станции"
text = "<font face=\"Verdana\" color=black><BR>Цель станции: <span class=\"paper_field\"></span><BR>Статус цели: <span class=\"paper_field\"></span><BR>Общее состояние станции: <span class=\"paper_field\"></span><BR>Активные угрозы: <span class=\"paper_field\"></span><BR>Оценка работы экипажа: <span class=\"paper_field\"></span><BR>Дополнительные замечания: <span class=\"paper_field\"></span><BR><HR><BR><center><font size=\"4\"><B>Подписи и штампы</B></font></center>Должность уполномоченного лица: <span class=\"paper_field\"></span><BR>Подпись уполномоченного лица: <span class=\"paper_field\"></span><HR><font size = \"1\"><I>*Данное сообщение должно сообщить вам о состоянии цели, установленной Центральным командованием Nanotrasen для ИСН &#34;Керберос&#34;. Убедительная просьба внимательно прочитать данное сообщение для вынесения наиболее эффективных указаний для последующей деятельности станции.<BR>*Данный документ считается официальным только при наличии подписи уполномоченного лица и соответствующего его должности штампа. В случае отсутствия любого из указанных элементов данный документ не является официальным и рекомендуется его удалить с любого информационного носителя. <BR>ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Корпорация Nanotrasen не несёт ответственности, если данный документ не попал в руки первоначального предполагаемого получателя. Однако, корпорация Nanotrasen запрещает использование любой имеющейся в данном документе информации третьими лицами и сообщает, что это преследуется по закону, даже если информация в данном документе не является достоверной. <center></font>"

//Медицинский Отдел
// Медицинский Отдел

/datum/bureaucratic_form/NT_MD_01
name = "Форма NT-MD-01"
Expand Down Expand Up @@ -130,7 +130,7 @@ GLOBAL_LIST_INIT(bureaucratic_forms, list())
text = "<font face=\"Verdana\" color=black><BR>Пациент: <span class=\"paper_field\"></span><BR>Раздражители: <span class=\"paper_field\"></span><BR>Симптомы и побочные действия: <span class=\"paper_field\"></span><BR>Дополнительная информация: <span class=\"paper_field\"></span><BR><HR><BR><center><font size=\"4\"><B>Подписи и штампы</B></font></center><BR>Подпись психолога: <span class=\"paper_field\"></span><BR>Время обследования: <span class=\"paper_field\"></span><BR><HR><I><font size = \"1\">*Данный документ подлежит ксерокопированию, для сохранения в архиве уполномоченных лиц, и выдаче пациенту</I></font></font>"
footer = footer_signstamp

//Мед-без нумерации
// Мед-без нумерации
/datum/bureaucratic_form/NT_MD_VRR
name = "Форма NT-MD-VRR"
id = "NT-MD-VRR"
Expand All @@ -139,26 +139,26 @@ GLOBAL_LIST_INIT(bureaucratic_forms, list())
text = "<font face=\"Verdana\" color=black><center><font size=\"4\"><B>Основная информация</B></font></center><BR>Я, <span class=\"paper_field\"></span>, в должности – <span class=\"paper_field\"></span>, запрашиваю право на распространение вируса среди экипажа станции.<BR><table></td><tr><td>Название вируса:<td><span class=\"paper_field\"></span><BR></td><tr><td>Задачи вируса:<td><span class=\"paper_field\"></span><BR></td><tr><td>Лечение:<td><span class=\"paper_field\"></span><BR></td><tr><td>Вакцина была произведена<BR> и в данный момент находится:<td><span class=\"paper_field\"></span><BR></td></tr></table><BR><HR><BR><center><font size=\"4\"><B>Подписи и штампы</B></font></center><BR><table></td><tr><td>Подпись вирусолога:<td><span class=\"paper_field\"></span><BR></td><tr><td>Подпись глав. Врача:<td><span class=\"paper_field\"></span><BR></td></tr></td><tr><td>Подпись капитана:<td><span class=\"paper_field\"></span><BR></td></tr></table><hr><small>*Производитель вируса несет полную ответственность за его распространение, изолирование и лечение<br>*При возникновении опасных или смертельных побочных эффектов у членов экипажа, производитель должен незамедлительно предоставить вакцину, от данного вируса.</small></font>"
footer = footer_signstamp

//Исследовательский отдел
// Отдел исследований
/datum/bureaucratic_form/NT_RND_01
name = "Форма NT-RND-01"
id = "NT-RND-01"
altername = "Отчет о странном предмете"
category = "Исследовательский отдел"
category = "Отдел исследований"
text = "<font face=\"Verdana\" color=black><BR>Название предмета: <span class=\"paper_field\"></span><BR>Тип предмета: <span class=\"paper_field\"></span><BR>Строение: <span class=\"paper_field\"></span><BR>Особенности и функционал: <span class=\"paper_field\"></span><BR>Дополнительная информация: <span class=\"paper_field\"></span><BR><HR><BR><center><font size=\"4\"><B>Подписи и штампы</B></font></center><BR>Подпись производившего осмотр: <span class=\"paper_field\"></span><BR><HR><I><font size = \"1\">*В дополнительной информации, рекомендуется указать остальную информацию о предмете, любое взаимодействие с ним, модификации, итоговый вариант после модификации.</I></font></font>"

/datum/bureaucratic_form/NT_RND_02
name = "Форма NT-RND-02"
id = "NT-RND-02"
altername = "Заявление на киберизацию"
category = "Исследовательский отдел"
category = "Отдел исследований"
text = "<font face=\"Verdana\" color=black>⠀⠀⠀ Я, <span class=\"paper_field\"></span>, в должности <span class=\"paper_field\"></span>, самовольно подтверждаю согласие на проведение киберизации.<BR>⠀⠀⠀ Я полностью доверяю работнику <span class=\"paper_field\"></span> в должности – <span class=\"paper_field\"></span>. Я хорошо осведомлен о рисках, связанных как с операцией, так и с киберизацией, и понимаю, что Nanotrasen не несет ответственности, если эти процедуры вызовут боль, заражение или иные случаи летального характера.<BR><HR><BR><center><font size=\"4\"><B>Подписи и штампы</B></font></center><BR>Подпись заявителя: <span class=\"paper_field\"></span><BR>Подпись уполномоченного: <span class=\"paper_field\"></span><BR><HR><font size = \"1\">*Если член экипажа мертв, данный документ нету необходимости создавать.<BR>*Если член экипажа жив, данный документ сохраняется только у уполномоченного лица.<BR>*Данный документ может использоваться как для создания киборгов, так и для ИИ<font size = \"1\"></font>"

/datum/bureaucratic_form/NT_RND_03
name = "Форма NT-RND-03"
id = "NT-RND-03"
altername = "Заявление на получение и установку импланта"
category = "Исследовательский отдел"
category = "Отдел исследований"
text = "<font face=\"Verdana\" color=black><center><font size=\"4\"><B>Заявление</B></font></center><BR><table></td><tr><td>Имя заявителя:<BR><font size = \"1\">Полностью и без ошибок</font><td><span class=\"paper_field\"></span><BR></td><tr><td>Номер аккаунта заявителя:<BR><font size = \"1\">Эта информация есть в ваших заметках</font><td><span class=\"paper_field\"></span><BR></td><tr><td>Текущая должность:<BR><font size = \"1\">Указано на ID карте</font><td><span class=\"paper_field\"></span><BR></td><tr><td>Требуемый имплантат:<BR><font size = \"1\">Может требовать дополнительного согласования</font><td><span class=\"paper_field\"></span><BR></td><tr><td>Причина:<BR><font size = \"1\">Объясните свои намерения</font><BR><span class=\"paper_field\"></span><BR><BR></td></tr></table><BR><HR><BR><center><font size=\"4\"><B>Подписи и штампы</B></font></center><BR><table></td><tr><td>Дата и время:<td><span class=\"paper_field\"></span><BR></td><tr><td>Подпись заявителя:<td><span class=\"paper_field\"></span><BR></td><tr><td>Подпись Руководителя Исследований:<td><span class=\"paper_field\"></span><BR></td><tr><td>Подпись выполняющего установку имплантата:<td><span class=\"paper_field\"></span><BR></td></tr></table></font>"

// Общие формы
Expand Down Expand Up @@ -438,12 +438,11 @@ GLOBAL_LIST_INIT(bureaucratic_forms, list())
footer = footer_confidential

// Центральное командование

/datum/bureaucratic_form/NT_COM_00
name = "Форма NT-COM-00"
id = "NT-COM-00"
altername = "Общая форма ЦК"
category = "Центральное командование"
category = "Формы ЦК"
from = "Административная станция Nanotrasen &#34;Trurl&#34;"
notice = "Перед заполнением прочтите от начала до конца | Высокий приоритет"
confidential = TRUE
Expand All @@ -455,7 +454,7 @@ GLOBAL_LIST_INIT(bureaucratic_forms, list())
name = "Форма NT-COM-01"
id = "NT-COM-01"
altername = "Запрос отчёта общего состояния станции"
category = "Центральное командование"
category = "Формы ЦК"
from = "Административная станция Nanotrasen &#34;Trurl&#34;"
notice = "Перед заполнением прочтите от начала до конца | Высокий приоритет"
confidential = TRUE
Expand All @@ -467,7 +466,7 @@ GLOBAL_LIST_INIT(bureaucratic_forms, list())
name = "Форма NT-COM-02"
id = "NT-COM-02"
altername = "Запрос отчёта состояния трудовых активов станции"
category = "Центральное командование"
category = "Формы ЦК"
from = "Административная станция Nanotrasen &#34;Trurl&#34;"
notice = "Перед заполнением прочтите от начала до конца | Высокий приоритет"
confidential = TRUE
Expand All @@ -479,7 +478,7 @@ GLOBAL_LIST_INIT(bureaucratic_forms, list())
name = "Форма NT-COM-03"
id = "NT-COM-03"
altername = "Запрос отчёта криминального статуса станции"
category = "Центральное командование"
category = "Формы ЦК"
from = "Административная станция Nanotrasen &#34;Trurl&#34;"
notice = "Перед заполнением прочтите от начала до конца | Высокий приоритет"
confidential = TRUE
Expand All @@ -494,7 +493,7 @@ GLOBAL_LIST_INIT(bureaucratic_forms, list())
name = "Форма NT-COM-04"
id = "NT-COM-04"
altername = "Запрос отчёта здравоохранения станции"
category = "Центральное командование"
category = "Формы ЦК"
from = "Административная станция Nanotrasen &#34;Trurl&#34;"
notice = "Перед заполнением прочтите от начала до конца | Высокий приоритет"
confidential = TRUE
Expand All @@ -506,7 +505,7 @@ GLOBAL_LIST_INIT(bureaucratic_forms, list())
name = "Форма NT-COM-05"
id = "NT-COM-05"
altername = "Запрос отчёта научно-технического прогресса станции"
category = "Центральное командование"
category = "Формы ЦК"
from = "Административная станция Nanotrasen &#34;Trurl&#34;"
notice = "Перед заполнением прочтите от начала до конца | Высокий приоритет"
confidential = TRUE
Expand All @@ -518,7 +517,7 @@ GLOBAL_LIST_INIT(bureaucratic_forms, list())
name = "Форма NT-COM-06"
id = "NT-COM-06"
altername = "Запрос отчёта инженерного обеспечения станции"
category = "Центральное командование"
category = "Формы ЦК"
from = "Административная станция Nanotrasen &#34;Trurl&#34;"
notice = "Перед заполнением прочтите от начала до конца | Высокий приоритет"
confidential = TRUE
Expand All @@ -530,7 +529,7 @@ GLOBAL_LIST_INIT(bureaucratic_forms, list())
name = "Форма NT-COM-07"
id = "NT-COM-07"
altername = "Запрос отчёта статуса снабжения станции "
category = "Центральное командование"
category = "Формы ЦК"
from = "Административная станция Nanotrasen &#34;Trurl&#34;"
notice = "Перед заполнением прочтите от начала до конца | Высокий приоритет"
confidential = TRUE
Expand Down
59 changes: 26 additions & 33 deletions modular_ss220/bureaucracy/code/photocopier.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#define PHOTOCOPIER_DELAY 5 SECONDS

/obj/machinery/photocopier
toner = 30
/// Selected form's category
Expand All @@ -9,7 +11,7 @@
/// Selected form's datum
var/datum/bureaucratic_form/form
/// Printing sound
var/print_sound = 'sound/goonstation/machines/printer_dotmatrix.ogg'
var/print_sound = 'modular_ss220/bureaucracy/sound/print.ogg'

/obj/machinery/photocopier/Initialize(mapload)
. = ..()
Expand All @@ -19,24 +21,17 @@
add_hiddenprint(user)
parse_forms(user)
ui_interact(user)
return attack_hand(user)

/obj/machinery/photocopier/attack_ghost(mob/user)
if(user.can_advanced_admin_interact())
ui_interact(user)
return attack_hand(user)
ui_interact(user)

/obj/machinery/photocopier/attack_hand(mob/user)
if(..())
return TRUE

user.set_machine(src)
. = ..()
parse_forms(user)
ui_interact(user)

/obj/machinery/photocopier/ui_act(action, list/params)
. = ..()
if(.)
if(isnull(.))
return

switch(action)
Expand All @@ -45,8 +40,6 @@
if(toner <= 0)
break
print_form(form)
use_power(active_power_consumption)
sleep(15)
. = TRUE
if("choose_form")
form = GLOB.bureaucratic_forms[params["path"]]
Expand All @@ -61,56 +54,56 @@
/obj/machinery/photocopier/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "Photocopier220", name, 650, 635, master_ui, state)
ui = new(user, src, ui_key, "Photocopier220", "Ксерокс", 550, 635, master_ui, state)
ui.open()

/obj/machinery/photocopier/ui_data(mob/user)
if(!length(forms))
parse_forms(user)

var/list/data = list()

data["isAI"] = issilicon(user)
data["copies"] = copies
data["maxcopies"] = maxcopies
data["toner"] = toner
data["copyitem"] = (copyitem ? copyitem.name : null)
data["folder"] = (folder ? folder.name : null)
data["mob"] = (copymob ? copymob.name : null)
data["files"] = list()
data["form"] = form
data["category"] = category
data["form_id"] = form_id
data["forms"] = forms

if(LAZYLEN(saved_documents))
for(var/obj/item/O in saved_documents)
var/list/document_data = list(
name = O.name,
uid = O.UID()
)
data["files"] += list(document_data)
return data

/obj/machinery/photocopier/proc/parse_forms(mob/user)
var/list/access = user.get_access()
forms.Cut()
for(var/path in GLOB.bureaucratic_forms)
var/datum/bureaucratic_form/F = GLOB.bureaucratic_forms[path]
var/req_access = F.req_access
var/datum/bureaucratic_form/paper_form = GLOB.bureaucratic_forms[path]
var/req_access = paper_form.req_access
if(req_access && !(req_access in access))
continue
var/form[0]
form["path"] = F.type
form["id"] = F.id
form["altername"] = F.altername
form["category"] = F.category
form["path"] = paper_form.type
form["id"] = paper_form.id
form["altername"] = paper_form.altername
form["category"] = paper_form.category
forms.Add(list(form))

/obj/machinery/photocopier/proc/print_form(datum/bureaucratic_form/form)
playsound(loc, print_sound, 25, TRUE)
if(copying)
visible_message(span_notice("[src] работает, проявите терпение."))
return FALSE

toner--
if(toner <= 0)
visible_message("<span class='notice'>На [src] мигает красная лампочка. Похоже, закончился тонер.</span>")
copying = TRUE
playsound(loc, print_sound, 50)
use_power(active_power_consumption)
sleep(PHOTOCOPIER_DELAY)
var/obj/item/paper/paper = new(loc)
paper.pixel_x = rand(-10, 10)
paper.pixel_y = rand(-10, 10)
form.apply_to_paper(paper, usr)
copying = FALSE

#undef PHOTOCOPIER_DELAY
Binary file added modular_ss220/bureaucracy/sound/print.ogg
Binary file not shown.
Loading

0 comments on commit 0be23b7

Please sign in to comment.