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

perevod: MedBot and stuff #6107

Draft
wants to merge 4 commits into
base: master220
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all 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
114 changes: 55 additions & 59 deletions code/modules/mob/living/simple_animal/bot/medbot.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//Medbot
/mob/living/simple_animal/bot/medbot
name = "\improper Medibot"
desc = "A little medical robot. He looks somewhat underwhelmed."
desc = "Маленький медицинский робот. Выглядит несколько обескураженно."
PlayerUnknown14 marked this conversation as resolved.
Show resolved Hide resolved
icon = 'icons/obj/aibots.dmi'
icon_state = "medibot0"
density = FALSE
Expand All @@ -15,10 +15,10 @@
bot_type = MED_BOT
bot_filter = RADIO_MEDBOT
model = "Medibot"
bot_purpose = "seek out hurt crewmembers and ensure that they are healed"
bot_purpose = "найти раненых членов экипажа и проследить, чтобы они были вылечены"
PlayerUnknown14 marked this conversation as resolved.
Show resolved Hide resolved
bot_core_type = /obj/machinery/bot_core/medbot
window_id = "automed"
window_name = "Automatic Medical Unit v1.1"
window_name = "Автоматическая Медицинская Единица v1.1"
path_image_color = "#DDDDFF"
data_hud_type = DATA_HUD_MEDICAL_ADVANCED

Expand Down Expand Up @@ -85,7 +85,7 @@

/mob/living/simple_animal/bot/medbot/mysterious
name = "\improper Mysterious Medibot"
desc = "International Medibot of mystery."
desc = "Загадочный медбот."
skin = "bezerk"
treatment_oxy = "perfluorodecalin"
treatment_brute = "bicaridine"
Expand All @@ -94,7 +94,7 @@

/mob/living/simple_animal/bot/medbot/syndicate
name = "Suspicious Medibot"
desc = "You'd better have insurance!"
desc = "Вам лучше быть застрахованным!"
skin = "bezerk"
faction = list("syndicate")
treatment_oxy = "perfluorodecalin"
Expand Down Expand Up @@ -172,47 +172,47 @@


/mob/living/simple_animal/bot/medbot/set_custom_texts()
text_hack = "You corrupt [name]'s reagent processor circuits."
text_dehack = "You reset [name]'s reagent processor circuits."
text_dehack_fail = "[name] seems damaged and does not respond to reprogramming!"
text_hack = "Вы взломали микросхемы синтезатора реагентов медбота."
text_dehack = "Вы восстановили микросхемы синтезатора реагентов медбота."
text_dehack_fail = "[name] выглядит повреждённым и отказывается быть перепрограммированным!"
PlayerUnknown14 marked this conversation as resolved.
Show resolved Hide resolved


/mob/living/simple_animal/bot/medbot/get_controls(mob/user)
var/dat
dat += hack(user)
dat += showpai(user)
dat += "<TT><B>Medical Unit Controls v1.1</B></TT><BR><BR>"
dat += "Status: <a href='byond://?src=[UID()];power=1'>[on ? "On" : "Off"]</A><BR>"
dat += "Maintenance panel panel is [open ? "opened" : "closed"]<BR>"
dat += "Beaker: "
dat += "<TT><B>Панель управления медицинским ботом v1.1</B></TT><BR><BR>"
dat += "Состояние: <a href='byond://?src=[UID()];power=1'>[on ? "Включён" : "Выключен"]</A><BR>"
dat += "Панель технического обслуживания [open ? "открыта" : "закрыта"]<BR>"
dat += "Ёмкость: "
if(reagent_glass)
dat += "<a href='byond://?src=[UID()];eject=1'>Loaded \[[reagent_glass.reagents.total_volume]/[reagent_glass.reagents.maximum_volume]\]</a>"
dat += "<a href='byond://?src=[UID()];eject=1'>Установлена \[[reagent_glass.reagents.total_volume]/[reagent_glass.reagents.maximum_volume]\]</a>"
else
dat += "None Loaded"
dat += "<br>Behaviour controls are [locked ? "locked" : "unlocked"]<hr>"
dat += "Не установлена"
dat += "<br>Управление поведением [locked ? "заблокировано" : "разблокировано"]<hr>"
if(!locked || issilicon(user) || user.can_admin_interact())
dat += "<TT>Healing Threshold: "
dat += "<TT>Порог лечения: "
dat += "<a href='byond://?src=[UID()];adj_threshold=-10'>--</a> "
dat += "<a href='byond://?src=[UID()];adj_threshold=-5'>-</a> "
dat += "[heal_threshold] "
dat += "<a href='byond://?src=[UID()];adj_threshold=5'>+</a> "
dat += "<a href='byond://?src=[UID()];adj_threshold=10'>++</a>"
dat += "</TT><br>"

dat += "<TT>Injection Level: "
dat += "<TT>Объём инъекции: "
dat += "<a href='byond://?src=[UID()];adj_inject=-5'>-</a> "
dat += "[injection_amount] "
dat += "<a href='byond://?src=[UID()];adj_inject=5'>+</a> "
dat += "</TT><br>"

dat += "Reagent Source: "
dat += "<a href='byond://?src=[UID()];use_beaker=1'>[use_beaker ? "Loaded Beaker (When available)" : "Internal Synthesizer"]</a><br>"
dat += "Источник реагентов: "
dat += "<a href='byond://?src=[UID()];use_beaker=1'>[use_beaker ? "Установленная ёмкость (Если доступна)" : "Внутренний синтезатор"]</a><br>"

dat += "Treat Viral Infections: <a href='byond://?src=[UID()];virus=1'>[treat_virus ? "Yes" : "No"]</a><br>"
dat += "The speaker switch is [shut_up ? "off" : "on"]. <a href='byond://?src=[UID()];togglevoice=[1]'>Toggle</a><br>"
dat += "Critical Patient Alerts: <a href='byond://?src=[UID()];critalerts=1'>[declare_crit ? "Yes" : "No"]</a><br>"
dat += "Patrol Station: <a href='byond://?src=[UID()];operation=patrol'>[auto_patrol ? "Yes" : "No"]</a><br>"
dat += "Stationary Mode: <a href='byond://?src=[UID()];stationary=1'>[stationary_mode ? "Yes" : "No"]</a><br>"
dat += "Лечить вирусные инфекции: <a href='byond://?src=[UID()];virus=1'>[treat_virus ? "Да" : "Нет"]</a><br>"
dat += "Динамик [shut_up ? "выключен" : "включён"]. <a href='byond://?src=[UID()];togglevoice=[1]'>Переключить</a><br>"
dat += "Оповещать о тяжелораненых: <a href='byond://?src=[UID()];critalerts=1'>[declare_crit ? "Да" : "Нет"]</a><br>"
dat += "Режим патрулирования: <a href='byond://?src=[UID()];operation=patrol'>[auto_patrol ? "Да" : "Нет"]</a><br>"
dat += "Стационарный режим: <a href='byond://?src=[UID()];stationary=1'>[stationary_mode ? "Да" : "Нет"]</a><br>"

return dat

Expand Down Expand Up @@ -274,15 +274,15 @@
if(istype(I, /obj/item/reagent_containers/glass))
add_fingerprint(user)
if(locked)
to_chat(user, span_warning("You cannot insert a beaker because the panel is locked!"))
to_chat(user, span_warning("Вы не можете вставить ёмкость, потому что панель закрыта!"))
PlayerUnknown14 marked this conversation as resolved.
Show resolved Hide resolved
return ATTACK_CHAIN_PROCEED|ATTACK_CHAIN_NO_AFTERATTACK
if(reagent_glass)
to_chat(user, span_warning("There is already a beaker loaded!"))
to_chat(user, span_warning("Здесь уже установлена ёмкость!"))
PlayerUnknown14 marked this conversation as resolved.
Show resolved Hide resolved
return ATTACK_CHAIN_PROCEED|ATTACK_CHAIN_NO_AFTERATTACK
if(!user.drop_transfer_item_to_loc(I, src))
return ..() | ATTACK_CHAIN_NO_AFTERATTACK
reagent_glass = I
to_chat(user, span_notice("You insert [I]."))
to_chat(user, span_notice("Вы вставляете [I]."))
PlayerUnknown14 marked this conversation as resolved.
Show resolved Hide resolved
show_controls(user)
return ATTACK_CHAIN_PROCEED_SUCCESS|ATTACK_CHAIN_NO_AFTERATTACK

Expand All @@ -298,8 +298,8 @@
if(emagged == 2)
declare_crit = FALSE
if(user)
to_chat(user, span_notice("You short out [src]'s reagent synthesis circuits."))
audible_message(span_danger("[src] buzzes oddly!"))
to_chat(user, span_notice("Вы замыкаете микросхемы синтеза реагентов медбота."))
audible_message(span_danger("[src] странно жужжит."))
flick("medibot_spark", src)
if(user)
oldpatient = user
Expand All @@ -308,7 +308,7 @@
/mob/living/simple_animal/bot/medbot/process_scan(mob/living/carbon/human/H)
if(buckled)
if((last_warning + 30 SECONDS) < world.time)
speak(span_danger("Movement restrained! Unit on standby!"))
speak(span_danger("Движение невозможно! Режим ожидания."))
playsound(loc, 'sound/machines/buzz-two.ogg', 50, FALSE)
last_warning = world.time
return
Expand All @@ -321,12 +321,11 @@
if(assess_patient(H))
last_found = world.time
if((last_newpatient_speak + 30 SECONDS) < world.time) //Don't spam these messages!
var/list/messagevoice = list("Hey, [H.name]! Hold on, I'm coming." = 'sound/voice/mcoming.ogg',
"Wait [H.name]! I want to help!" = 'sound/voice/mhelp.ogg',
"[H.name], you appear to be injured!" = 'sound/voice/minjured.ogg')
var/message = pick(messagevoice)
var/list/messagelist = list("Эй, [H.name]! Держись, я уже иду!",
"Подожди, [H.name]! Я спешу на помощь!",
"[H.name], кажется, вы ранены!")
var/message = pick(messagelist)
speak(message)
playsound(loc, messagevoice[message], 50, FALSE)
last_newpatient_speak = world.time
return H

Expand All @@ -344,14 +343,13 @@

if(!patient)
if(!shut_up && prob(1))
var/list/messagevoice = list("Radar, put a mask on!" = 'sound/voice/mradar.ogg',
"There's always a catch, and I'm the best there is." = 'sound/voice/mcatch.ogg',
"I knew it, I should've been a plastic surgeon." = 'sound/voice/msurgeon.ogg',
"What kind of medbay is this? Everyone's dropping like flies." = 'sound/voice/mflies.ogg',
"Delicious!" = 'sound/voice/mdelicious.ogg')
var/message = pick(messagevoice)
var/list/messagelist = list("Ты, надень свою маску!",
"Всегда что-то идёт не так, но я справлюсь.",
PlayerUnknown14 marked this conversation as resolved.
Show resolved Hide resolved
"Так и знал, что мне стоило стать пластическим хирургом...",
"Что это за медотсек? Все мрут, словно мухи.",
"Замечательно!")
var/message = pick(messagelist)
speak(message)
playsound(loc, messagevoice[message], 50, FALSE)
var/scan_range = (stationary_mode ? 1 : DEFAULT_SCAN_RANGE) //If in stationary mode, scan range is limited to adjacent patients.
patient = scan(/mob/living/carbon/human, oldpatient, scan_range)
oldpatient = patient
Expand Down Expand Up @@ -501,12 +499,11 @@
return

if(C.stat == DEAD || HAS_TRAIT(C, TRAIT_FAKEDEATH))
var/list/messagevoice = list("No! Stay with me!" = 'sound/voice/mno.ogg',
"Live, damnit! LIVE!" = 'sound/voice/mlive.ogg',
"I...I've never lost a patient before. Not today, I mean." = 'sound/voice/mlost.ogg')
var/message = pick(messagevoice)
var/list/messagelist = list("Нет, не оставляй меня!",
PlayerUnknown14 marked this conversation as resolved.
Show resolved Hide resolved
"Живи, чёрт возьми! ЖИВИ!",
"Я... Я ещё не терял пациента. Не сегодня, имею ввиду.")
var/message = pick(messagelist)
speak(message)
playsound(loc, messagevoice[message], 50, FALSE)
oldpatient = patient
soft_reset()
return
Expand All @@ -521,20 +518,19 @@
reagent_id = select_medication(C, beaker_injection)

if(!reagent_id) //If they don't need any of that they're probably cured!
var/list/messagevoice = list("All patched up!" = 'sound/voice/mpatchedup.ogg',
"An apple a day keeps me away." = 'sound/voice/mapple.ogg',
"Feel better soon!" = 'sound/voice/mfeelbetter.ogg')
var/message = pick(messagevoice)
var/list/messagelist = list("Как новенький!",
"Кто яблоко в день съедает, у того доктор не бывает.",
"Скоро полегчает!")
var/message = pick(messagelist)
speak(message)
playsound(loc, messagevoice[message], 50, FALSE)
bot_reset()
return
else
if(!emagged && !hijacked && check_overdose(patient, reagent_id, injection_amount))
soft_reset()
return
C.visible_message(span_danger("[src] is trying to inject [patient]!"),
span_userdanger("[src] is trying to inject you!"))
C.visible_message(span_danger("[src] пытается сделать укол [patient]!"),
span_userdanger("[src] пытается сделать вам укол!"))

addtimer(CALLBACK(src, PROC_REF(do_inject), C, !isnull(beaker_injection), reagent_id), 3 SECONDS)

Expand All @@ -551,10 +547,10 @@
else
patient.reagents.add_reagent(reagent_id, injection_amount)

C.visible_message(span_danger("[src] injects [patient] with its syringe!"),
span_userdanger("[src] injects you with its syringe!"))
C.visible_message(span_danger("[src] сделал укол [patient] своим шприцем!"),
span_userdanger("[src] сделал вам укол своим шприцем!"))
else
visible_message("[src] retracts its syringe.")
visible_message("[src] убирает свой шприц.")

update_icon()
soft_reset()
Expand All @@ -572,7 +568,7 @@

/mob/living/simple_animal/bot/medbot/explode()
on = FALSE
visible_message(span_userdanger("[src] blows apart!"))
visible_message(span_userdanger("[src] разлетается на части!"))
var/turf/Tsec = get_turf(src)

if(drops_parts)
Expand Down Expand Up @@ -623,7 +619,7 @@
if(syndicate_aligned)
return
var/area/location = get_area(src)
speak("Medical emergency! [crit_patient ? "<b>[crit_patient]</b>" : "A patient"] is in critical condition at [location]!", radio_channel)
speak("Нужна срочная медицинская помощь! [crit_patient ? "<b>[crit_patient]</b>" : "Пациент"] в тяжёлом состоянии в локации [location]!", radio_channel)
declare_cooldown = TRUE
spawn(200) //Twenty seconds
declare_cooldown = FALSE
Expand Down
Binary file modified icons/_nanomaps/Nova_nanomap_z1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified icons/_nanomaps/Nova_nanomap_z2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.