Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TGUI] Photocopier fixes #733

Merged
merged 8 commits into from
Nov 23, 2023
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

фу не модуль

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А как? XyliPizdish

if(istype(C, /obj/item/paper))
for(var/i in copies to 1 step -1)
if(!papercopy(C))
Expand Down
24 changes: 12 additions & 12 deletions modular_ss220/bureaucracy/code/forms.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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

//Исследовательский отдел
//Отдел исследований
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

в комменте пробел нужен

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ща проставлю везде

/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 @@ -443,7 +443,7 @@ GLOBAL_LIST_INIT(bureaucratic_forms, list())
name = "Форма NT-COM-00"
id = "NT-COM-00"
altername = "Общая форма ЦК"
category = "Центральное командование"
category = "Формы ЦК"
from = "Административная станция Nanotrasen &#34;Trurl&#34;"
notice = "Перед заполнением прочтите от начала до конца | Высокий приоритет"
confidential = TRUE
Expand All @@ -455,7 +455,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 +467,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 +479,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 +494,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 +506,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 +518,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 +530,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(.))
AyIong marked this conversation as resolved.
Show resolved Hide resolved
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)
AyIong marked this conversation as resolved.
Show resolved Hide resolved
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
Loading