diff --git a/_maps/barrenquilla_mining.json b/_maps/barrenquilla_mining.json
index f472088ea7f..dca325610c0 100644
--- a/_maps/barrenquilla_mining.json
+++ b/_maps/barrenquilla_mining.json
@@ -2,7 +2,7 @@
"map_name": "Barrenquilla Mining Facility",
"map_path": "map_files/Barrenquilla_Mining",
"map_file": "Barrenquilla_Mining_Facility.dmm",
- "announce_text": "A faint distress signal has been picked up by our scanners, which have tracked the source to LO145. Through use of emergency bluespace drive tech, the ###SHIPNAME### has jumped within range of the outpost. Senior officers are present and will need to be evacuated in order to completely finish your mission. TGMC, gear up and get ready to respond!",
+ "announce_text": "Наши сканеры зафиксировали слабый сигнал бедствия, который привёл нас к LO145. Благодаря блюспейс технологиям, мы оказались рядом с аванпостом. Товарищи, приготовьтесь к битве!",
"disk_sets": {
"basic": 1
},
diff --git a/_maps/bigred_v2.json b/_maps/bigred_v2.json
index 3c34c0a9785..ed27a991c71 100644
--- a/_maps/bigred_v2.json
+++ b/_maps/bigred_v2.json
@@ -6,7 +6,7 @@
"basic": 1
},
"quickbuilds": 1800,
- "announce_text": "A second generation colony has had a beacon transmitting the same signal, nonstop. Attempts to hail the colony over comms have proved futile. Because the ship was at a nearby drydock, it has been dispatched to figure out what's wrong. TGMC, prepare to deploy!",
+ "announce_text": "На колонии 2-ого поколения был активирован аварийный маяк, безостановочно передающий один и тот же сигнал. Попытки связаться оказались тщетными. Поскольку ваш корабль находился в близлежащих доках, вас отправляют выяснить, что за чертовщина там творится. Товарищи, приготовиться к высадке!",
"traits":[{
"weather_sandstorm": true
}]
diff --git a/_maps/deltastation.json b/_maps/deltastation.json
index e4f037c72bb..9225035c56e 100644
--- a/_maps/deltastation.json
+++ b/_maps/deltastation.json
@@ -5,6 +5,6 @@
"disk_sets": {
"basic": 1
},
- "announce_text": "The ship's comms array detected an emergency evacuation signal from a Delta class research station owned by a private corporation. The message indicated that the station had collided with a large asteroid and was overrun with hostile lifeforms. As part of peacekeeping operations the ship is nearing the station to begin clearing operations. TGMC, get equipped and prepare for boarding action!",
+ "announce_text": "Корабельная система связи засекла сигнал о срочной эвакуации с исследовательской станции класса «Дельта», принадлежащей частной корпорации 'Вейланд-Ютани'. В сообщении говорилось, что станция столкнулась с крупным астероидом и захвачена враждебными формами жизни. В рамках миротворческих операций корабль приближается к станции, чтобы начать очистку. Товарищи, экипируйтесь и приготовьтесь к высадке!",
"armor": "prison"
}
diff --git a/_maps/desparity.json b/_maps/desparity.json
index 8dc84f0238b..de42c1a48db 100644
--- a/_maps/desparity.json
+++ b/_maps/desparity.json
@@ -6,7 +6,7 @@
"basic": 1
},
"armor": "jungle",
- "announce_text": "An emergency broadcast has been picked up by our scanners, triangulated to a jungle outpost near LV624, known as Desparity. Through use of bluespace drive tech, the ship has jumped within range of the colony. TGMC, gear up and get ready to respond!",
+ "announce_text": "Наши сканеры засекли экстренное сообщение, которое было триангулировано на аванпосте в джунглях возле LV624, известном как Деспарити. Товарищи, снаряжайтесь и готовьтесь к высадке!",
"traits":[{
"weather_acidrain": false
}]
diff --git a/_maps/gelida_iv.json b/_maps/gelida_iv.json
index 8d026a70860..a38651f2671 100644
--- a/_maps/gelida_iv.json
+++ b/_maps/gelida_iv.json
@@ -10,7 +10,7 @@
},
"armor": "ice",
"quickbuilds": 1600,
- "announce_text": "Our comms array has detected an automated emergency signal broadcasting over a frequency reserved for the highest level of emergencies. The message was traced to the northern reaches of the research colony Gelida IV. The ship is moving into the sector with thrusters at max throttle. TGMC, get briefed and then move out!",
+ "announce_text": "Наша система связи засекла автоматический аварийный сигнал, передаваемый на частоте, предназначенной для чрезвычайных ситуаций уровня биологических заражений. Сообщение было отслежено до северных районов исследовательской колонии Гелида IV. Корабль движется в сектор на максимальном ходу. Товарищи, пройдите инструктаж и выдвигайтесь!",
"traits":[{
"weather_snowstorm": true
}]
diff --git a/_maps/ice_colony_v2.json b/_maps/ice_colony_v2.json
index 110cac8134c..75dfe818586 100644
--- a/_maps/ice_colony_v2.json
+++ b/_maps/ice_colony_v2.json
@@ -10,7 +10,7 @@
},
"armor": "ice",
"quickbuilds": 1600,
- "announce_text": "A garbled, unintelligible communications message was broadcasted over a general frequency, and picked up by our comms relay. The message appears to have come from a second generation settlement, located on an ice cold planet. The ship is moving into the sector with thrusters at max throttle. TGMC, get briefed and then move out!",
+ "announce_text": "На общей частоте было передано запутанное, неразборчивое сообщение, которое принял наш ретранслятор. Судя по всему, сообщение пришло из поселения второго поколения, расположенного на ледяной планете. Корабль движется в сектор на максимальном ходу. Товарищи, пройдите инструктаж и выдвигайтесь!",
"traits":[{
"weather_snowstorm": true
}]
diff --git a/_maps/icy_caves.json b/_maps/icy_caves.json
index 5625b3abfe6..545fb5ae61a 100644
--- a/_maps/icy_caves.json
+++ b/_maps/icy_caves.json
@@ -10,7 +10,7 @@
},
"armor": "ice",
"quickbuilds": 1200,
- "announce_text": "A garbled, unintelligible communications message was broadcasted over a general frequency, and picked up by our comms relay. The message appears to have come from a mining outpost, located on an ice cold planet. The ship is moving into the sector with thrusters at max throttle. TGMC, get briefed and then move out!",
+ "announce_text": "На общей частоте было передано запутанное, неразборчивое сообщение, которое принял наш ретранслятор. Судя по всему, сообщение поступило с шахтерского форпоста, расположенного на ледяной планете. Корабль движется в сектор на максимальном ходу. Товарищи, пройдите инструктаж и выдвигайтесь!",
"traits":[{
"weather_snowstorm": true
}]
diff --git a/_maps/kutjevo.json b/_maps/kutjevo.json
index 153ec6279a2..764a44fe7b1 100644
--- a/_maps/kutjevo.json
+++ b/_maps/kutjevo.json
@@ -6,5 +6,5 @@
"basic": 1
},
"quickbuilds": 1800,
- "announce_text": "An automated distress signal has been received from Nanotrasen colony Kutjevo Refinery, known for botanical research, export, and raw materials processing and refinement. The ###SHIPNAME### has been dispatched to investigate."
+ "announce_text": "С нефтеперерабатывающего завода колонии НаноТрейзен в Кутьево, известного своими ботаническими исследованиями, экспортом и переработкой сырья, был получен автоматический сигнал бедствия. Для расследования было отправлено наше судно."
}
diff --git a/_maps/last_stand.json b/_maps/last_stand.json
index 430fe6cc852..65899b0ef61 100644
--- a/_maps/last_stand.json
+++ b/_maps/last_stand.json
@@ -2,5 +2,5 @@
"map_name": "Last Stand",
"map_path": "map_files/Last_Stand",
"map_file": "Last_Stand.dmm",
- "announce_text": "A faint distress signal has been picked up by our scanners, which have tracked the source to Batallion 140's Supreme Command Center. Through use of emergency bluespace drive tech, the ship has jumped within range of the outpost. Senior officers are present and will need to be evacuated in order to completely finish your mission. TGMC, gear up and get ready to respond!"
+ "announce_text": "Наши сканеры засекли слабый сигнал бедствия и отследили его источник до Высшего командного центра батальона 140. Используя блюспейс технологии, корабль прыгнул в пределы досягаемости аванпоста. Там находятся старшие офицеры, которых необходимо эвакуировать, чтобы полностью завершить вашу миссию. Товарищи, снарядитесь и приготовьтесь к высадке!"
}
diff --git a/_maps/lawanka.json b/_maps/lawanka.json
index 223f6f20ebb..a9f8659c8f9 100644
--- a/_maps/lawanka.json
+++ b/_maps/lawanka.json
@@ -6,5 +6,5 @@
"basic": 1
},
"quickbuilds": 1800,
- "announce_text": "An AI from a Nanotrasen sponsored Research Colony has been sending a distress signal, nonstop. Nanotrasen has hired us to reclaim the Colony in any form. TGMC, prepare to deploy!"
+ "announce_text": "ИИ из исследовательской колонии, спонсируемой НаноТрейзен, безостановочно посылает сигнал бедствия. Нанотрайзен нанял нас, чтобы мы вернули колонию в любом виде. Товарищи, приготовиться к высадке!"
}
diff --git a/_maps/lv624.json b/_maps/lv624.json
index ca8505f21b3..4d1715717ea 100644
--- a/_maps/lv624.json
+++ b/_maps/lv624.json
@@ -7,7 +7,7 @@
},
"armor": "jungle",
"quickbuilds": 1400,
- "announce_text": "A faint distress signal has been picked up by our scanners, which have tracked the source to a third generation colony, known as LV-624. Through use of bluespace drive tech, the ship has jumped within range of the colony. TGMC, gear up and get ready to respond!",
+ "announce_text": "Наши сканеры засекли слабый сигнал бедствия и определили, что его источником является колония третьего поколения, известная как LV-624. Используя блюспейс технологии, корабль прыгнул в зону досягаемости колонии. Товарищи, экипируйтесь и приготовьтесь к атаке!",
"traits":[{
"weather_acidrain": true
}]
diff --git a/_maps/magmoor_digsite_iv.json b/_maps/magmoor_digsite_iv.json
index 0a531926dbd..625284d3172 100644
--- a/_maps/magmoor_digsite_iv.json
+++ b/_maps/magmoor_digsite_iv.json
@@ -6,5 +6,5 @@
"basic": 1
},
"quickbuilds": 1800,
- "announce_text": "A faint distress signal has been picked up by our scanners, which have tracked the source to a mining and archaeological site, known as Magmoor Digsite IV. Through use of bluespace drive tech, the ship has jumped within range of the colony. TGMC, gear up and get ready to respond!"
+ "announce_text": "Наши сканеры засекли слабый сигнал бедствия и определили, что его источник находится в месте добычи полезных ископаемых и археологических раскопок, известном как Точка Раскопок Магмура IV. Используя блюспейс технологии, корабль прыгнул в зону досягаемости колонии. Товарищи, приготовьтесь к высадке!"
}
diff --git a/_maps/orion_outpost.json b/_maps/orion_outpost.json
index 9ee302832db..f5b63c5c375 100644
--- a/_maps/orion_outpost.json
+++ b/_maps/orion_outpost.json
@@ -7,5 +7,5 @@
},
"armor": "jungle",
"quickbuilds": 1000,
- "announce_text": "The automatic emergency beacon has activated at the Orion Military Outpost on the moon of Trivonus IV, a xenomorph infestation is likely. TGMC, get prepared and ready for a fight!"
+ "announce_text": "На военном форпосте Ориона на луне Тривонус IV сработал автоматический аварийный маяк, вероятно нашествие ксеноморфов. Товарищи, приготовиться к бою!"
}
diff --git a/_maps/oscar_outpost.json b/_maps/oscar_outpost.json
index c8adba1b1b1..3616d22b434 100644
--- a/_maps/oscar_outpost.json
+++ b/_maps/oscar_outpost.json
@@ -2,5 +2,5 @@
"map_name": "Oscar Outpost",
"map_path": "map_files/oscar_outpost",
"map_file": "oscar_outpost.dmm",
- "announce_text": "A faint distress signal has been picked up by our scanners, which have tracked the source to Batallion 167's Supreme Command Center. Through use of emergency bluespace drive tech, the ship has jumped within range of the outpost. Senior officers are present and will need to be evacuated in order to completely finish your mission. TGMC, gear up and get ready to respond!"
+ "announce_text": "Наши сканеры засекли слабый сигнал бедствия и отследили его источник до Высшего командного центра батальона 167. Используя блюспейс технологии, корабль прыгнул в пределы досягаемости аванпоста. Там находятся старшие офицеры, которых необходимо эвакуировать, чтобы полностью завершить вашу миссию. Товарищи, снарядитесь и приготовьтесь к высадке!"
}
diff --git a/_maps/prison_station_fop.json b/_maps/prison_station_fop.json
index b7e4a741f39..5c770d7395f 100644
--- a/_maps/prison_station_fop.json
+++ b/_maps/prison_station_fop.json
@@ -7,5 +7,5 @@
},
"armor": "prison",
"quickbuilds": 1200,
- "announce_text": "A Nanotrasen maximum security prison has activated its distress signal. The ship is swiftly cruising through space, and nearing the vicinity of the prison station. TGMC, get moving!"
+ "announce_text": "Тюрьма строгого режима НаноТрейзен активировала сигнал бедствия. Корабль стремительно несется по космосу и приближается к тюремной станции. Товарищи, выдвигаемся!"
}
diff --git a/_maps/research_outpost.json b/_maps/research_outpost.json
index 7ef6172481b..f770cda6035 100644
--- a/_maps/research_outpost.json
+++ b/_maps/research_outpost.json
@@ -6,5 +6,5 @@
"basic": 1
},
"quickbuilds": 1000,
- "announce_text": "A research outpost has had a beacon transmitting the same signal, nonstop. Attempts to hail the colony over comms have proved futile. Because the ship was at a nearby drydock, it has been dispatched to figure out what's wrong. TGMC, prepare to deploy!"
+ "announce_text": "На исследовательском форпосте появился маяк, безостановочно передающий один и тот же сигнал. Попытки связаться с колонией по связи оказались тщетными. Поскольку ваш корабль находился ближе всего, мы отправили вас выяснить в чем дело. Товарищи, приготовиться к высадке!"
}
diff --git a/_maps/slumbridge.json b/_maps/slumbridge.json
index 6228d03ca71..6fa73229dbf 100644
--- a/_maps/slumbridge.json
+++ b/_maps/slumbridge.json
@@ -6,5 +6,5 @@
"basic": 1
},
"quickbuilds": 2000,
- "announce_text": "We've received not one, but four distress signals at once coming from the same location. Ground-penetrating scanners and sensors show an unusual arrangement of a segmented asteroid with artificial gravity online. Not only that, but the four segments look nothing alike. TGMC, prepare for deployment and expect the worst."
+ "announce_text": "Мы получили не один, а сразу четыре сигнала бедствия из одного и того же места. Наземные сканеры и сенсоры показывают необычное расположение сегментированного астероида с включенной искусственной гравитацией. Мало того, четыре сегмента совершенно не похожи друг на друга. Товарищи, приготовьтесь к высадке и ожидайте худшего."
}
diff --git a/_maps/vapor_processing.json b/_maps/vapor_processing.json
index 0a5a7e531b5..38d75d5c8d1 100644
--- a/_maps/vapor_processing.json
+++ b/_maps/vapor_processing.json
@@ -5,5 +5,5 @@
"disk_sets": {
"basic": 1
},
- "announce_text": "A faint distress signal has been picked up by our scanners, which have tracked the source to a Vapor Processing colony, known as LV-984. Through use of bluespace drive tech, the ship has jumped within range of the colony. TGMC, gear up and get ready to respond!"
+ "announce_text": "Наши сканеры засекли слабый сигнал бедствия и определили, что его источником является колония по парообработке, известная как LV-984. Используя блюспейс технологии, корабль прыгнул в пределы досягаемости аванпоста. Товарищи, снарядитесь и приготовьтесь к высадке!"
}
diff --git a/_maps/whiskey_outpost_v2.json b/_maps/whiskey_outpost_v2.json
index 5373edafb46..dba854869a0 100644
--- a/_maps/whiskey_outpost_v2.json
+++ b/_maps/whiskey_outpost_v2.json
@@ -2,5 +2,5 @@
"map_name": "Whiskey Outpost",
"map_path": "map_files/Whiskey_Outpost",
"map_file": "Whiskey_Outpost_v2.dmm",
- "announce_text": "A faint distress signal has been picked up by our scanners, which have tracked the source to Batallion 140's Supreme Command Center. Through use of emergency bluespace drive tech, the ship has jumped within range of the outpost. Senior officers are present and will need to be evacuated in order to completely finish your mission. TGMC, gear up and get ready to respond!"
+ "announce_text": "Наши сканеры засекли слабый сигнал бедствия и отследили его источник до Высшего командного центра батальона 140. Используя блюспейс технологии, корабль прыгнул в пределы досягаемости колонии. Товарищи, снаряжайтесь и готовьтесь к высадке!"
}
diff --git a/code/__HELPERS/announce.dm b/code/__HELPERS/announce.dm
index 555e8140388..58d9994f550 100644
--- a/code/__HELPERS/announce.dm
+++ b/code/__HELPERS/announce.dm
@@ -35,7 +35,6 @@
/proc/assemble_alert(title, subtitle, message, color_override, minor = FALSE)
if(!title || !message)
return
-
var/list/alert_strings = list()
var/header
var/finalized_alert
@@ -70,7 +69,7 @@
*/
/proc/priority_announce(
message,
- title = "Announcement",
+ title = "Оповещение",
subtitle = "",
type = ANNOUNCEMENT_REGULAR,
sound = 'sound/misc/notice2.ogg',
@@ -91,12 +90,12 @@
assembly_header = title
if(ANNOUNCEMENT_PRIORITY)
- assembly_header = "Priority Announcement"
+ assembly_header = "Приоритетное Оповещение"
if(length(title) > 0)
assembly_subtitle = title
if(ANNOUNCEMENT_COMMAND)
- assembly_header = "Command Announcement"
+ assembly_header = "Оповещение Экипажу"
if(subtitle && type != ANNOUNCEMENT_PRIORITY)
assembly_subtitle = subtitle
@@ -125,7 +124,7 @@
SEND_SOUND(M, s)
-/proc/print_command_report(papermessage, papertitle = "paper", announcemessage = "A report has been downloaded and printed out at all communications consoles.", announcetitle = "Incoming Classified Message", announce = TRUE)
+/proc/print_command_report(papermessage, papertitle = "paper", announcemessage = "Отчет был загружен и распечатан на всех консолях связи.", announcetitle = "Входящее зашифрованное сообщение", announce = TRUE)
if(announce)
priority_announce(announcemessage, announcetitle, sound = 'sound/AI/commandreport.ogg')
@@ -147,7 +146,7 @@
* * alert - optional, alert or notice?
* * receivers - a list of all players to send the message to
*/
-/proc/minor_announce(message, title = "Attention:", alert, list/receivers = GLOB.alive_human_list)
+/proc/minor_announce(message, title = "Внимание:", alert, list/receivers = GLOB.alive_human_list)
if(!message)
return
diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm
index e9784de76da..f1b19ad81a2 100644
--- a/code/__HELPERS/type2type.dm
+++ b/code/__HELPERS/type2type.dm
@@ -116,6 +116,24 @@
if(SOUTHWEST)
return "southwest"
+/proc/dir2rutext(direction)
+ switch(direction)
+ if(NORTH)
+ return "север"
+ if(SOUTH)
+ return "юг"
+ if(EAST)
+ return "восток"
+ if(WEST)
+ return "запад"
+ if(NORTHEAST)
+ return "северо-восток"
+ if(SOUTHEAST)
+ return "юго-восток"
+ if(NORTHWEST)
+ return "северо-запад"
+ if(SOUTHWEST)
+ return "юго-запад"
//Turns a direction into text
/proc/dir2text_short(direction)
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index 15baa335184..cf6f0cde388 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -19,9 +19,6 @@
/datum/config_entry/keyed_list/min_pop/ValidateListEntry(key_name, key_value)
return key_name in config.modes
-/datum/config_entry/string/alert_delta
- config_entry_value = "Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill."
-
/datum/config_entry/number/revival_brain_life
config_entry_value = -1
integer = FALSE
diff --git a/code/controllers/subsystem/evacuation.dm b/code/controllers/subsystem/evacuation.dm
index 27db35ff841..afa0ff8028d 100644
--- a/code/controllers/subsystem/evacuation.dm
+++ b/code/controllers/subsystem/evacuation.dm
@@ -86,7 +86,7 @@ SUBSYSTEM_DEF(evacuation)
evac_time = world.time
evac_status = EVACUATION_STATUS_INITIATING
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_EVACUATION_STARTED)
- priority_announce("Emergency evacuation has been triggered. Please proceed to the escape pods. Evacuation in [EVACUATION_AUTOMATIC_DEPARTURE/600] minutes.", title = "Emergency Evacuation", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/evacuate.ogg', color_override = "orange")
+ priority_announce("Процесс экстренной эвакуации был запущен. Пожалуйста, проследуйте к спасательным капсулам. Запуск капсул состоится через [EVACUATION_AUTOMATIC_DEPARTURE/600] минут.", title = "Экстренная Эвакуация", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/evacuate.ogg', color_override = "orange")
xeno_message("A wave of adrenaline ripples through the hive. The fleshy creatures are trying to escape!")
pod_list = SSshuttle.escape_pods.Copy()
for(var/obj/docking_port/mobile/escape_pod/pod AS in pod_list)
@@ -98,7 +98,7 @@ SUBSYSTEM_DEF(evacuation)
if(evac_status != EVACUATION_STATUS_INITIATING)
return FALSE
evac_status = EVACUATION_STATUS_IN_PROGRESS
- priority_announce("WARNING: Evacuation order confirmed. Launching escape pods.", title = "Emergency Evacuation", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/evacuation_confirmed.ogg', color_override = "orange")
+ priority_announce("Приказ об эвакуации подтвержден. Запуск спасательных капсул.", title = "Экстренная Активация", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/evacuation_confirmed.ogg', color_override = "orange")
return TRUE
@@ -108,7 +108,7 @@ SUBSYSTEM_DEF(evacuation)
GLOB.enter_allowed = TRUE
evac_time = null
evac_status = EVACUATION_STATUS_STANDING_BY
- priority_announce("Evacuation has been cancelled.", title = "Emergency Evacuation", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/evacuate_cancelled.ogg', color_override = "orange")
+ priority_announce("Процесс эвакуации был отменен. Произвожу восстановление первичных систем...", title = "Экстренная Эвакуация", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/evacuate_cancelled.ogg', color_override = "orange")
for(var/obj/docking_port/mobile/escape_pod/pod AS in pod_list)
pod.unprep_for_launch()
return TRUE
@@ -123,7 +123,7 @@ SUBSYSTEM_DEF(evacuation)
. = "NOW"
/datum/controller/subsystem/evacuation/proc/announce_evac_completion()
- priority_announce("ATTENTION: Evacuation complete.", title = "Emergency Evacuation", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/evacuation_complete.ogg', color_override = "orange")
+ priority_announce("Эвакуация завершена. Оставшемуся экипажу требуется завершить миссию.", title = "Эвакуация Завершена", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/evacuation_complete.ogg', color_override = "orange")
evac_status = EVACUATION_STATUS_COMPLETE
@@ -158,7 +158,7 @@ SUBSYSTEM_DEF(evacuation)
I.toggle(TRUE)
dest_master.toggle(TRUE)
dest_index = 1
- priority_announce("The emergency destruct system has been deactivated.", title = "Self Destruct System", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/selfdestruct_deactivated.ogg', color_override = "purple")
+ priority_announce("Протокол самоуничтожения деактивирован. Перезапуск систем.", title = "Протокол Самоуничтожения", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/selfdestruct_deactivated.ogg', color_override = "purple")
if(evac_status == EVACUATION_STATUS_STANDING_BY)
GLOB.marine_main_ship.set_security_level(SEC_LEVEL_RED, TRUE)
for(var/obj/machinery/floor_warn_light/self_destruct/light AS in alarm_lights)
@@ -177,7 +177,7 @@ SUBSYSTEM_DEF(evacuation)
dest_master.visible_message(span_warning("WARNING: Unable to trigger detonation. Please arm all control rods."))
return FALSE
- priority_announce("DANGER. DANGER. Self destruct system activated. DANGER. DANGER. Self destruct in progress. DANGER. DANGER.", title = "Self Destruct System", type = ANNOUNCEMENT_PRIORITY, color_override = "purple")
+ priority_announce("ТРЕВОГА. ТРЕВОГА. ПРОТОКОЛ САМОУНИЧТОЖЕНИЯ ЗАВЕРШЕН. ТРЕВОГА. ТРЕВОГА. ДЕТОНАЦИЯ.", title = "Протокол Самоуничтожения", type = ANNOUNCEMENT_PRIORITY, color_override = "purple")
GLOB.enter_allowed = FALSE
dest_status = NUKE_EXPLOSION_IN_PROGRESS
playsound(dest_master, 'sound/machines/alarm.ogg', 75, 0, 30)
diff --git a/code/datums/actions/order_action.dm b/code/datums/actions/order_action.dm
index 393c539d8e7..887c5bd9a36 100644
--- a/code/datums/actions/order_action.dm
+++ b/code/datums/actions/order_action.dm
@@ -48,7 +48,7 @@
/datum/action/innate/order/proc/send_order(atom/target, datum/squad/squad, faction = FACTION_TERRAGOV)
if(!can_use_action())
return
- to_chat(owner ,span_ordercic("You ordered marines to [verb_name] [get_area(target.loc)]!"))
+ to_chat(owner ,span_ordercic("Вы приказали морпехам [verb_name] [get_area(target.loc)]!"))
owner.playsound_local(owner, "sound/effects/CIC_order.ogg", 10, 1)
if(visual_type)
target = get_turf(target)
@@ -96,12 +96,12 @@
var/atom/movable/screen/arrow/arrow_hud = new arrow_type
arrow_hud.add_hud(src, target)
playsound_local(src, "sound/effects/CIC_order.ogg", 20, 1)
- to_chat(src,span_ordercic("Command is urging you to [verb_name] [get_area(get_turf(target))]!"))
+ to_chat(src,span_ordercic("Командование приказывает вам [verb_name] [get_area(get_turf(target))]!"))
/datum/action/innate/order/attack_order
name = "Send Attack Order"
action_icon_state = "attack"
- verb_name = "attack the enemy at"
+ verb_name = "АТАКОВАТЬ"
arrow_type = /atom/movable/screen/arrow/attack_order_arrow
visual_type = /obj/effect/temp_visual/order/attack_order
@@ -126,7 +126,7 @@
/datum/action/innate/order/defend_order
name = "Send Defend Order"
action_icon_state = "defend"
- verb_name = "defend our position in"
+ verb_name = "ОБОРОНЯТЬ"
arrow_type = /atom/movable/screen/arrow/defend_order_arrow
visual_type = /obj/effect/temp_visual/order/defend_order
@@ -150,7 +150,7 @@
/datum/action/innate/order/retreat_order
name = "Send Retreat Order"
action_icon_state = "retreat"
- verb_name = "retreat from"
+ verb_name = "ОТСТУПАТЬ из"
visual_type = /obj/effect/temp_visual/order/retreat_order
/datum/action/innate/order/retreat_order/personal
@@ -173,7 +173,7 @@
/datum/action/innate/order/rally_order
name = "Send Rally Order"
action_icon_state = "rally"
- verb_name = "rally to"
+ verb_name = "СОБРАТЬСЯ в"
arrow_type = /atom/movable/screen/arrow/rally_order_arrow
visual_type = /obj/effect/temp_visual/order/rally_order
diff --git a/code/datums/emergency_calls/emergency_call.dm b/code/datums/emergency_calls/emergency_call.dm
index 9257815968d..db3973b4322 100644
--- a/code/datums/emergency_calls/emergency_call.dm
+++ b/code/datums/emergency_calls/emergency_call.dm
@@ -7,7 +7,7 @@
var/name = ""
var/mob_max = 10
var/mob_min = 1
- var/dispatch_message = "An encrypted signal has been received from a nearby vessel. Stand by." //Message displayed to marines once the signal is finalized.
+ var/dispatch_message = "Получен зашифрованный сигнал с ближайшего судна. Ожидайте подмогу." //Message displayed to marines once the signal is finalized.
var/objectives = "" //Objectives to display to the members.
var/list/datum/mind/members = list() //Currently-joined members.
var/list/datum/mind/candidates = list() //Potential candidates for enlisting.
@@ -78,8 +78,8 @@
for(var/i in GLOB.observer_list)
var/mob/dead/observer/M = i
- to_chat(M, "
[span_attack("An emergency beacon has been activated. Use the Ghost > Join Response Team verb to join!")]
")
- to_chat(M, "[span_attack("You cannot join if you have Ghosted before this message.")]
")
+ to_chat(M, "
[span_attack("Сигнал бедствия был активирован. Используйте Ghost > Join Response Team чтобы присоединиться!")]
")
+ to_chat(M, "[span_attack("Вы не можете присоединиться, если вы стали Призраком до появления этого сообщения.")]
")
/datum/game_mode/proc/activate_distress(datum/emergency_call/chosen_call)
@@ -101,27 +101,27 @@
var/datum/emergency_call/distress = SSticker?.mode?.picked_call //Just to simplify things a bit
if(is_banned_from(usr.ckey, ROLE_ERT))
- to_chat(usr, span_danger("You are jobbanned from the emergency reponse team!"))
+ to_chat(usr, span_danger("Вы были ограничены в этой роли!"))
return
if(!istype(distress) || !SSticker.mode.waiting_for_candidates || distress.mob_max < 1)
- to_chat(usr, span_warning("No distress beacons that need candidates are active. You will be notified if that changes."))
+ to_chat(usr, span_warning("Отсутствуют сигналы бедствия нуждающиеся в кандидатах. Вы будете оповещены, если что-то изменится."))
return
var/deathtime = world.time - GLOB.key_to_time_of_role_death[key]
if(deathtime < 600 && !check_other_rights(usr.client, R_ADMIN, FALSE)) //They have ghosted after the announcement.
- to_chat(usr, span_warning("You ghosted too recently. Try again later."))
+ to_chat(usr, span_warning("Вы слишком недавно стали призраком. Попробуйте еще раз позже."))
return
if(usr.mind in distress.candidates)
- to_chat(usr, span_warning("You are already a candidate for this emergency response team."))
+ to_chat(usr, span_warning("Вы уже один из кандидатов. Ждите высадки."))
return
if(distress.add_candidate(usr))
- to_chat(usr, span_boldnotice("You are now a candidate in the emergency response team! If there are enough candidates, you may be picked to be part of the team."))
+ to_chat(usr, span_boldnotice("Теперь вы кандидат в команду экстренного реагирования! Если кандидатов будет достаточно, вас могут выбрать в команду."))
else
- to_chat(usr, span_warning("Something went wrong while adding you into the candidate list!"))
+ to_chat(usr, span_warning("Что-то пошло не так при добавлении вас в список кандидатов!"))
/datum/emergency_call/proc/reset()
if(candidate_timer)
@@ -152,7 +152,7 @@
message_admins("Distress beacon: '[name]' activated. Looking for candidates.")
if(announce)
- priority_announce("A distress beacon has been launched from the [SSmapping.configs[SHIP_MAP].map_name].", title = "Distress Beacon", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/distressbeacon.ogg', color_override = "orange")
+ priority_announce("Сигнал бедствия запущен. Ожидание ответа...", title = "Сигнал Бедствия", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/distressbeacon.ogg', color_override = "orange")
SSticker.mode.on_distress_cooldown = TRUE
@@ -170,11 +170,11 @@
continue
if(M.current) //If they still have a body
if(!isaghost(M.current) && M.current.stat != DEAD) // and not dead or admin ghosting,
- to_chat(M.current, span_warning("You didn't get selected to join the distress team because you aren't dead."))
+ to_chat(M.current, span_warning("Вы не были выбраны в команду спасения, потому что вы не мертвы."))
continue
if(name == "Xenomorphs" && is_banned_from(ckey(M.key), ROLE_XENOMORPH))
if(M.current)
- to_chat(M, span_warning("You didn't get selected to join the distress team because you are jobbanned from Xenomorph."))
+ to_chat(M, span_warning("Вас не выбрали для участия в операции бедствия, потому что вам забанили роль Xenomorph."))
continue
valid_candidates += M
@@ -187,7 +187,7 @@
candidates.Cut()
if(announce)
- priority_announce("The distress signal has not received a response, the launch tubes are now recalibrating.", "Distress Beacon")
+ priority_announce("Ответа на сигнал бедствия не поступило. Системы запуска заняты перекалибровкой.", "Сигнал Бедствия", sound = 'sound/AI/distressbeacon_none.ogg')
SSticker.mode.picked_call = null
SSticker.mode.on_distress_cooldown = TRUE
@@ -204,14 +204,14 @@
for(var/datum/mind/M in valid_candidates)
if(M.current)
- to_chat(M.current, span_warning("You didn't get selected to join the distress team. Better luck next time!"))
+ to_chat(M.current, span_warning("Вас не выбрали в команду. Повезет в следующий раз!"))
message_admins("Distress beacon: [length(valid_candidates)] valid candidates were not selected.")
else
picked_candidates = valid_candidates // save some time
message_admins("Distress beacon: All valid candidates were selected.")
if(announce)
- priority_announce(dispatch_message, "Distress Beacon", sound = 'sound/AI/distressreceived.ogg')
+ priority_announce(dispatch_message, "Сигнал Бедствия", sound = 'sound/AI/distressreceived.ogg')
message_admins("Distress beacon: [name] finalized, starting spawns.")
diff --git a/code/datums/gamemodes/crash.dm b/code/datums/gamemodes/crash.dm
index dc2df2e9f2c..36629b372ed 100644
--- a/code/datums/gamemodes/crash.dm
+++ b/code/datums/gamemodes/crash.dm
@@ -121,14 +121,7 @@
/datum/game_mode/infestation/crash/announce()
to_chat(world, span_round_header("The current map is - [SSmapping.configs[GROUND_MAP].map_name]!"))
- priority_announce(
- message = "Scheduled for landing in T-10 Minutes. Prepare for landing. Known hostiles near LZ. Detonation Protocol Active, planet disposable. Marines disposable.",
- title = "Good morning, marines.",
- type = ANNOUNCEMENT_PRIORITY,
- color_override = "red"
- )
- playsound(shuttle, 'sound/machines/warning-buzzer.ogg', 75, 0, 30)
-
+ priority_announce("Высадка запланирована через 10 минут. Приготовьтесь к посадке. Предварительное сканирование показывает наличие агрессивных форм биологической жизни. Ваша следующая миссия - заполучить коды доступа и активировать ядерную боеголовку.", title = "Доброе утро, товарищи!", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/crash_start.ogg', color_override = "red")
/datum/game_mode/infestation/crash/process()
. = ..()
diff --git a/code/datums/gamemodes/infestation.dm b/code/datums/gamemodes/infestation.dm
index 3628fb64391..87f5b843d00 100644
--- a/code/datums/gamemodes/infestation.dm
+++ b/code/datums/gamemodes/infestation.dm
@@ -28,7 +28,7 @@
new /obj/structure/mineral_door/resin(i)
for(var/i in GLOB.xeno_tunnel_spawn_turfs)
var/obj/structure/xeno/tunnel/new_tunnel = new /obj/structure/xeno/tunnel(i, XENO_HIVE_NORMAL)
- new_tunnel.name = "[get_area_name(new_tunnel)] tunnel"
+ new_tunnel.name = "[get_area_name(new_tunnel)] туннель"
new_tunnel.tunnel_desc = "["[get_area_name(new_tunnel)]"] (X: [new_tunnel.x], Y: [new_tunnel.y])"
for(var/i in GLOB.xeno_jelly_pod_turfs)
new /obj/structure/xeno/resin_jelly_pod(i, XENO_HIVE_NORMAL)
@@ -46,7 +46,7 @@
// make sure you don't turn 0 into a false positive
#define BIOSCAN_DELTA(count, delta) count ? max(0, count + rand(-delta, delta)) : 0
-#define BIOSCAN_LOCATION(show_locations, location) (show_locations && location ? ", including one in [hostLocationP]":"")
+#define BIOSCAN_LOCATION(show_locations, location) (show_locations && location ? ", включая одного в [hostLocationP]":"")
#define AI_SCAN_DELAY 15 SECONDS
@@ -57,10 +57,10 @@
#ifndef TESTING
var/mob/living/silicon/ai/bioscanning_ai = usr
if((bioscanning_ai.last_ai_bioscan + COOLDOWN_AI_BIOSCAN) > world.time)
- to_chat(bioscanning_ai, "Bioscan instruments are still recalibrating from their last use.")
+ to_chat(bioscanning_ai, "Приборы биосканирования все еще проходят перекалибровку с момента последнего использования.")
return
bioscanning_ai.last_ai_bioscan = world.time
- to_chat(bioscanning_ai, span_warning("Scanning for hostile lifeforms..."))
+ to_chat(bioscanning_ai, span_warning("Сканирование на предмет наличия враждебных форм жизни..."))
if(!do_after(usr, AI_SCAN_DELAY, NONE, usr, BUSY_ICON_GENERIC)) //initial windup time until firing begins
bioscanning_ai.last_ai_bioscan = 0
return
@@ -110,51 +110,51 @@
var/mob/M = i
SEND_SOUND(M, S)
to_chat(M, assemble_alert(
- title = "Queen Mother Report",
- subtitle = "The Queen Mother reaches into your mind...",
- message = "To my children and their Queen,
I sense [numHostsShipr ? "approximately [numHostsShipr]":"no"] host[numHostsShipr > 1 ? "s":""] in the metal hive[BIOSCAN_LOCATION(show_locations, hostLocationS)], [numHostsPlanet || "none"] scattered elsewhere[BIOSCAN_LOCATION(show_locations, hostLocationP)] and [numHostsTransitr ? "approximately [numHostsTransitr]":"no"] host[numHostsTransitr > 1 ? "s":""] on the metal bird in transit.",
+ title = "Сообщение от Главной Королевы",
+ subtitle = "Главная Королева проникает в ваш разум с расстояния в сотни миров...",
+ message = "Мои дети и их Королева, я [numHostsShipr ? "":"не"] чувствую [numHostsShipr ? "примерно [numHostsShipr]":""] потенциальных носителей в их металлическом улье [BIOSCAN_LOCATION(show_locations, hostLocationS)], за его пределами их ["всего [numHostsPlanet]" || "нет"] [BIOSCAN_LOCATION(show_locations, hostLocationP)] и [numHostsTransitr ? "примерно [numHostsTransitr]":"вообще нету"] на металлической птице.",
color_override = "purple"
))
- var/name = "[MAIN_AI_SYSTEM] Bioscan Status"
- var/input = {"Bioscan complete. Sensors indicate [numXenosShip || "no"] unknown lifeform signature[numXenosShip > 1 ? "s":""] present on the ship[BIOSCAN_LOCATION(show_locations, xenoLocationS)], [numXenosPlanetr ? "approximately [numXenosPlanetr]":"no"] signature[numXenosPlanetr > 1 ? "s":""] located elsewhere[BIOSCAN_LOCATION(show_locations, xenoLocationP)] and [numXenosTransit || "no"] unknown lifeform signature[numXenosTransit > 1 ? "s":""] in transit."}
- var/ai_name = "[usr] Bioscan Status"
+ var/name = "[MAIN_AI_SYSTEM]: Статус Биосканирования"
+ var/input = {"Биосканирование завершено. Датчики показывают [numXenosShip || "отсуствие"] неизвестных форм жизни на корабле[BIOSCAN_LOCATION(show_locations, xenoLocationS)], [numXenosPlanetr ? "примерно [numXenosPlanetr]":"отсуствие"] сигнатур на земле[BIOSCAN_LOCATION(show_locations, xenoLocationP)] и [numXenosTransit || "отсуствие"] неизвестных форм жизни на шаттлах."}
+ var/ai_name = "[usr]: Статус Биосканирования"
if(ai_operator)
priority_announce(input, ai_name, sound = 'sound/AI/bioscan.ogg', color_override = "grey", receivers = (GLOB.alive_human_list + GLOB.ai_list))
- log_game("Bioscan. Humans: [numHostsPlanet] on the planet[hostLocationP ? " Location:[hostLocationP]":""] and [numHostsShip] on the ship.[hostLocationS ? " Location: [hostLocationS].":""] Xenos: [numXenosPlanetr] on the planet and [numXenosShip] on the ship[xenoLocationP ? " Location:[xenoLocationP]":""] and [numXenosTransit] in transit.")
+ log_game("Биосканирование. Люди: [numHostsPlanet] на земле[hostLocationP ? " Место:[hostLocationP]":""] и [numHostsShip] на корабле.[hostLocationS ? " Место: [hostLocationS].":""] Ксеноморфы: [numXenosPlanetr] на земле и [numXenosShip] на корабле[xenoLocationP ? " Место:[xenoLocationP]":""] и [numXenosTransit] на перелётах.")
switch(GLOB.current_orbit)
if(1)
- to_chat(usr, span_warning("Signal analysis reveals excellent detail about hostile movements and numbers."))
+ to_chat(usr, span_warning("Анализ сигналов позволяет получить подробную информацию о передвижениях противника и его численности."))
return
if(3)
- to_chat(usr, span_warning("Minor corruption detected in our bioscan instruments due to ship elevation, some information about hostile activity may be incorrect."))
+ to_chat(usr, span_warning("В наших приборах биосканирования обнаружены незначительные ошибки из-за подъема судна, некоторая информация о враждебной активности может быть неверной."))
return
if(5)
- to_chat(usr, span_warning("Major corruption detected in our bioscan readings due to ship elevation, information heavily corrupted."))
+ to_chat(usr, span_warning("В наших показаниях биосканирования обнаружены серьезные ошибки из-за уровня орбиты корабля, информация может сильно отличаться от правды."))
return
if(announce_humans)
priority_announce(input, name, sound = 'sound/AI/bioscan.ogg', color_override = "grey", receivers = (GLOB.alive_human_list + GLOB.ai_list)) // Hide this from observers, they have their own detailed alert.
if(send_fax)
- var/fax_message = generate_templated_fax("Combat Information Center", "[MAIN_AI_SYSTEM] Bioscan Status", "", input, "", MAIN_AI_SYSTEM)
- send_fax(null, null, "Combat Information Center", "[MAIN_AI_SYSTEM] Bioscan Status", fax_message, FALSE)
+ var/fax_message = generate_templated_fax("Боевой Информационный Центр", "[MAIN_AI_SYSTEM]: Статус Биосканирования", "", input, "", MAIN_AI_SYSTEM)
+ send_fax(null, null, "Боевой Информационный Центр", "[MAIN_AI_SYSTEM]: Статус Биосканирования", fax_message, FALSE)
- log_game("Bioscan. Humans: [numHostsPlanet] on the planet[hostLocationP ? " Location:[hostLocationP]":""] and [numHostsShip] on the ship.[hostLocationS ? " Location: [hostLocationS].":""] Xenos: [numXenosPlanetr] on the planet and [numXenosShip] on the ship[xenoLocationP ? " Location:[xenoLocationP]":""] and [numXenosTransit] in transit.")
+ log_game("Биосканирование. Люди: [numHostsPlanet] на земле[hostLocationP ? " Место:[hostLocationP]":""] и [numHostsShip] на корабле.[hostLocationS ? " Место: [hostLocationS].":""] Ксеноморфы: [numXenosPlanetr] на земле и [numXenosShip] на корабле[xenoLocationP ? " Место:[xenoLocationP]":""] и [numXenosTransit] на перелётах.")
for(var/i in GLOB.observer_list)
var/mob/M = i
to_chat(M, assemble_alert(
- title = "Detailed Bioscan",
- message = {"[numXenosPlanet] xeno\s on the planet.
-[numXenosShip] xeno\s on the ship.
-[numXenosTransit] xeno\s in transit.
-
-[numHostsPlanet] human\s on the planet.
-[numHostsShip] human\s on the ship.
-[numHostsTransit] human\s in transit."},
+ title = "Детальная Информация",
+ message = {"[numXenosPlanet] ксеноморфов на земле.
+[numXenosShip] ксеноморфов на корабле.
+[numXenosTransit] ксеноморфов на перелётах.
+
+[numHostsPlanet] людей на земле.
+[numHostsShip] людей на корабле.
+[numHostsTransit] людей на перелётах."},
color_override = "purple"
))
@@ -178,37 +178,37 @@
var/num_humans_ship = living_player_list[3]
if(SSevacuation.dest_status == NUKE_EXPLOSION_FINISHED)
- message_admins("Round finished: [MODE_GENERIC_DRAW_NUKE]") //ship blows, no one wins
+ message_admins("Раунд завершен: [MODE_GENERIC_DRAW_NUKE]") //ship blows, no one wins
round_finished = MODE_GENERIC_DRAW_NUKE
return TRUE
if(round_stage == INFESTATION_DROPSHIP_CAPTURED_XENOS)
- message_admins("Round finished: [MODE_INFESTATION_X_MINOR]")
+ message_admins("Раунд завершен: [MODE_INFESTATION_X_MINOR]")
round_finished = MODE_INFESTATION_X_MINOR
return TRUE
if(!num_humans)
if(!num_xenos)
- message_admins("Round finished: [MODE_INFESTATION_DRAW_DEATH]") //everyone died at the same time, no one wins
+ message_admins("Раунд завершен: [MODE_INFESTATION_DRAW_DEATH]") //everyone died at the same time, no one wins
round_finished = MODE_INFESTATION_DRAW_DEATH
return TRUE
- message_admins("Round finished: [MODE_INFESTATION_X_MAJOR]") //xenos wiped out ALL the marines without hijacking, xeno major victory
+ message_admins("Раунд завершен: [MODE_INFESTATION_X_MAJOR]") //xenos wiped out ALL the marines without hijacking, xeno major victory
round_finished = MODE_INFESTATION_X_MAJOR
return TRUE
if(!num_xenos)
if(round_stage == INFESTATION_MARINE_CRASHING)
- message_admins("Round finished: [MODE_INFESTATION_M_MINOR]") //marines lost the ground operation but managed to wipe out Xenos on the ship at a greater cost, minor victory
+ message_admins("Раунд завершен: [MODE_INFESTATION_M_MINOR]") //marines lost the ground operation but managed to wipe out Xenos on the ship at a greater cost, minor victory
round_finished = MODE_INFESTATION_M_MINOR
return TRUE
- message_admins("Round finished: [MODE_INFESTATION_M_MAJOR]") //marines win big
+ message_admins("Раунд завершен: [MODE_INFESTATION_M_MAJOR]") //marines win big
round_finished = MODE_INFESTATION_M_MAJOR
return TRUE
if(round_stage == INFESTATION_MARINE_CRASHING && !num_humans_ship)
if(SSevacuation.human_escaped > SSevacuation.initial_human_on_ship * 0.5)
- message_admins("Round finished: [MODE_INFESTATION_X_MINOR]") //xenos have control of the ship, but most marines managed to flee
+ message_admins("Раунд завершен: [MODE_INFESTATION_X_MINOR]") //xenos have control of the ship, but most marines managed to flee
round_finished = MODE_INFESTATION_X_MINOR
return
- message_admins("Round finished: [MODE_INFESTATION_X_MAJOR]") //xenos wiped our marines, xeno major victory
+ message_admins("Раунд завершен: [MODE_INFESTATION_X_MAJOR]") //xenos wiped our marines, xeno major victory
round_finished = MODE_INFESTATION_X_MAJOR
return TRUE
return FALSE
@@ -279,7 +279,7 @@
SEND_SOUND(M, ghost_track)
- log_game("[round_finished]\nGame mode: [name]\nRound time: [duration2text()]\nEnd round player population: [length(GLOB.clients)]\nTotal xenos spawned: [GLOB.round_statistics.total_xenos_created]\nTotal humans spawned: [GLOB.round_statistics.total_humans_created]")
+ log_game("[round_finished]\nРежим: [name]\nВремя раунда: [duration2text()]\nКоличество игроков в конце раунда: [length(GLOB.clients)]\nРождено ксеноморфов: [GLOB.round_statistics.total_xenos_created]\nПроизведено людей: [GLOB.round_statistics.total_humans_created]")
/datum/game_mode/infestation/can_start(bypass_checks = FALSE)
. = ..()
@@ -296,7 +296,7 @@
xeno_candidate = TRUE
break
if(!xeno_candidate && !bypass_checks)
- to_chat(world, "Unable to start [name]. No xeno candidate found.")
+ to_chat(world, "Невозможно начать [name]. Кандидат в ксеносы не найден.")
return FALSE
/datum/game_mode/infestation/pre_setup()
@@ -309,9 +309,9 @@
return
priority_announce(
- title = "High Command Update",
- subtitle = "Good morning, marines.",
- message = "Cryosleep disengaged by TGMC High Command.
ATTN: [SSmapping.configs[SHIP_MAP].map_name].
[SSmapping.configs[GROUND_MAP].announce_text]",
+ title = "Оповещение Высшего Командования",
+ subtitle = "Доброе утро, товарищи!",
+ message = "Криосон отключен генштабом.
ATTN: [SSmapping.configs[SHIP_MAP].map_name].
[SSmapping.configs[GROUND_MAP].announce_text]",
color_override = "red"
)
@@ -330,7 +330,7 @@
/datum/game_mode/infestation/proc/on_nuclear_diffuse(obj/machinery/nuclearbomb/bomb, mob/living/carbon/xenomorph/X)
SIGNAL_HANDLER
- priority_announce("WARNING. WARNING. Planetary Nuke deactivated. WARNING. WARNING. Self destruct failed. WARNING. WARNING.", "Planetary Warhead Disengaged", type = ANNOUNCEMENT_PRIORITY)
+ priority_announce("ВНИМАНИЕ. ВНИМАНИЕ. Планетарная ядерная бомба деактивирована. ВНИМАНИЕ. ВНИМАНИЕ. Самоуничтожение не удалось. ВНИМАНИЕ. ВНИМАНИЕ.", type = ANNOUNCEMENT_PRIORITY)
/datum/game_mode/infestation/proc/on_nuclear_explosion(datum/source, z_level)
SIGNAL_HANDLER
@@ -341,12 +341,12 @@
SIGNAL_HANDLER
var/datum/hive_status/normal/HS = GLOB.hive_datums[XENO_HIVE_NORMAL]
var/area_name = get_area_name(nuke)
- HS.xeno_message("An overwhelming wave of dread ripples throughout the hive... A nuke has been activated[area_name ? " in [area_name]":""]!")
+ HS.xeno_message("Волна ужаса прокатывается по улью... Они активировали ядерную бомбу[area_name ? " в [area_name]":""]!")
HS.set_all_xeno_trackers(nuke)
/datum/game_mode/infestation/proc/play_cinematic(z_level)
GLOB.enter_allowed = FALSE
- priority_announce("DANGER. DANGER. Planetary Nuke Activated. DANGER. DANGER. Self destruct in progress. DANGER. DANGER.", "Planetary Warhead Detonation Confirmed", type = ANNOUNCEMENT_PRIORITY)
+ priority_announce("ТРЕВОГА. ТРЕВОГА. Активирована планетарная ядерная бомба. ТРЕВОГА. ТРЕВОГА. Идет самоуничтожение. ТРЕВОГА. ТРЕВОГА.", "Планетарная Боеголовка Успешно Запущена", type = ANNOUNCEMENT_PRIORITY)
var/sound/S = sound(pick('sound/theme/nuclear_detonation1.ogg','sound/theme/nuclear_detonation2.ogg'), channel = CHANNEL_CINEMATIC)
SEND_SOUND(world, S)
diff --git a/code/datums/marine_main_ship.dm b/code/datums/marine_main_ship.dm
index 9207b0ad5e7..1f7885d9c32 100644
--- a/code/datums/marine_main_ship.dm
+++ b/code/datums/marine_main_ship.dm
@@ -14,11 +14,11 @@ GLOBAL_DATUM_INIT(marine_main_ship, /datum/marine_main_ship, new)
/datum/marine_main_ship/proc/make_maint_all_access()
maint_all_access = TRUE
- priority_announce("The maintenance access requirement has been revoked on all airlocks.", "Attention!", "Shipside emergency declared.", sound = 'sound/misc/notice1.ogg', color_override = "grey")
+ priority_announce("Требование доступа для всех технических тоннелей отменено.", "Внимание!", "На корабле объявлена чрезвычайная ситуация.", sound = 'sound/misc/notice1.ogg', color_override = "grey")
/datum/marine_main_ship/proc/revoke_maint_all_access()
maint_all_access = FALSE
- priority_announce("The maintenance access requirement has been readded on all maintenance airlocks.", "Attention!", "Shipside emergency revoked.", sound = 'sound/misc/notice2.ogg', color_override = "grey")
+ priority_announce("Требование доступа для всех технических тоннелей было возвращено.", "Внимание!", "Отбой Тревоги.", sound = 'sound/misc/notice2.ogg', color_override = "grey")
/datum/marine_main_ship/proc/set_security_level(level, announce = TRUE)
switch(level)
@@ -79,7 +79,7 @@ GLOBAL_DATUM_INIT(marine_main_ship, /datum/marine_main_ship, new)
switch(level)
if(SEC_LEVEL_GREEN)
if(announce)
- priority_announce("Attention: Security level lowered to GREEN - all clear.", title = "Security Level Lowered", subtitle = "All Clear", sound = 'sound/AI/code_green.ogg', color_override = "green")
+ priority_announce("Всё стабильно.", title = "Код Зеленый", sound = 'sound/AI/code_green.ogg', color_override = "green")
security_level = SEC_LEVEL_GREEN
for(var/obj/machinery/status_display/SD in GLOB.machines)
if(is_mainship_level(SD.z))
@@ -87,10 +87,10 @@ GLOBAL_DATUM_INIT(marine_main_ship, /datum/marine_main_ship, new)
if(SEC_LEVEL_BLUE)
if(security_level < SEC_LEVEL_BLUE)
if(announce)
- priority_announce("Attention: Security level elevated to BLUE - potentially hostile activity on board.", title = "Security Level Elevated", sound = 'sound/AI/code_blue_elevated.ogg')
+ priority_announce("На борту потенциально враждебная деятельность. Требуются тщательные проверки.", title = "Код Синий", sound = 'sound/AI/code_blue_elevated.ogg')
else
if(announce)
- priority_announce("Attention: Security level lowered to BLUE - potentially hostile activity on board.", title = "Security Level Lowered", sound = 'sound/AI/code_blue_lowered.ogg')
+ priority_announce("Возможны остатки враждебной деятельности. Требуются тщательные проверки.", title = "Код Синий", sound = 'sound/AI/code_blue_lowered.ogg')
security_level = SEC_LEVEL_BLUE
for(var/obj/machinery/status_display/SD in GLOB.machines)
if(is_mainship_level(SD.z))
@@ -98,10 +98,10 @@ GLOBAL_DATUM_INIT(marine_main_ship, /datum/marine_main_ship, new)
if(SEC_LEVEL_RED)
if(security_level < SEC_LEVEL_RED)
if(announce)
- priority_announce("Attention: Security level elevated to RED - there is an immediate threat to the ship.", title = "Security Level Elevated", sound = 'sound/AI/code_red_elevated.ogg', color_override = "red")
+ priority_announce("Существует непосредственная угроза судну. Боеспособному персоналу надлежит организовать защиту экипажа.", title = "Код Красный", sound = 'sound/AI/code_red_elevated.ogg', color_override = "red")
else
if(announce)
- priority_announce("Attention: Security level lowered to RED - there is an immediate threat to the ship.", title = "Ship Destruction Averted", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/code_red_lowered.ogg', color_override = "red")
+ priority_announce("Существует непосредственная угроза судну. Боеспособному персоналу требуется разобраться с остальными проблемами.", title = "Код Красный", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/code_red_lowered.ogg', color_override = "red")
/*
var/area/A
for(var/obj/machinery/power/apc/O in machines)
@@ -119,8 +119,8 @@ GLOBAL_DATUM_INIT(marine_main_ship, /datum/marine_main_ship, new)
if(announce)
priority_announce(
type = ANNOUNCEMENT_PRIORITY,
- title = "Ship Destruction Imminent",
- message = "Attention! Delta security level reached! " + CONFIG_GET(string/alert_delta),
+ title = "Код Дельта",
+ message = "Контроль над ситуацией полностью потерян. Всему персоналу требуется сделать всё ради предотвращения распространения опасности на другие объекты.",
sound = 'sound/misc/airraid.ogg',
channel_override = SSsounds.random_available_channel(),
color_override = "purple"
diff --git a/code/game/objects/machinery/computer/communications.dm b/code/game/objects/machinery/computer/communications.dm
index 4a8927e617d..a720f27ed7d 100644
--- a/code/game/objects/machinery/computer/communications.dm
+++ b/code/game/objects/machinery/computer/communications.dm
@@ -230,7 +230,7 @@
cooldown_request = world.time
if(admin_response == "deny")
SSticker.mode.distress_cancelled = TRUE
- priority_announce("The distress signal has been blocked, the launch tubes are now recalibrating.", "Distress Beacon")
+ priority_announce("Сигнал бедствия заблокирован. Пусковые трубы перекалибруются.", "Сигнал Бедствия", sound = 'sound/AI/distress_deny.ogg')
return FALSE
if(admin_response =="deny without annoncing")
SSticker.mode.distress_cancelled = TRUE
diff --git a/code/game/objects/machinery/computer/intel_computer.dm b/code/game/objects/machinery/computer/intel_computer.dm
index 6aa4795546d..bb1732defee 100644
--- a/code/game/objects/machinery/computer/intel_computer.dm
+++ b/code/game/objects/machinery/computer/intel_computer.dm
@@ -63,7 +63,7 @@
printing_complete = TRUE
SSpoints.supply_points[faction] += supply_reward
SSpoints.dropship_points += dropship_reward
- priority_announce("Classified transmission recieved from [get_area(src)]. Bonus delivered as [supply_reward] supply points and [dropship_reward] dropship points.", title = "TGMC Intel Division")
+ priority_announce("Получена секретная передача из [get_area(src)]. Бонус доставлен в виде [supply_reward] очков Карго и [dropship_reward] очков шаттла.", title = "Отдел Разведки UPP", sound = 'sound/AI/bonus_climed.ogg')
SSminimaps.remove_marker(src)
/obj/machinery/computer/intel_computer/Destroy()
diff --git a/code/game/objects/machinery/self_destruct.dm b/code/game/objects/machinery/self_destruct.dm
index 95f89676ce6..aa8450727fd 100644
--- a/code/game/objects/machinery/self_destruct.dm
+++ b/code/game/objects/machinery/self_destruct.dm
@@ -81,7 +81,7 @@
if("dest_start")
to_chat(usr, span_notice("You press a few keys on the panel."))
to_chat(usr, span_notice("The system must be booting up the self-destruct sequence now."))
- priority_announce("Danger. The emergency destruct system is now activated. The ship will detonate in T-minus 20 minutes. Automatic detonation is unavailable. Manual detonation is required.", title = "Self Destruct System", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/selfdestruct.ogg', color_override = "purple")
+ priority_announce("Тревога! Протокол самоуничтожения активирован. Корабль взорвется через 20 минут. Автоматическая детонация недоступна. Требуется ручное вмешательство.", title = "Протокол Самоуничтожения", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/selfdestruct.ogg', color_override = "purple")
active_state = SELF_DESTRUCT_MACHINE_ARMED
var/obj/machinery/self_destruct/rod/I = SSevacuation.dest_rods[SSevacuation.dest_index]
I.activate_time = world.time
diff --git a/code/game/objects/structures/orbital_cannon.dm b/code/game/objects/structures/orbital_cannon.dm
index e1197c3b654..c496eecdc0f 100644
--- a/code/game/objects/structures/orbital_cannon.dm
+++ b/code/game/objects/structures/orbital_cannon.dm
@@ -214,13 +214,13 @@
var/turf/target = locate(T.x + inaccurate_fuel * pick(-2, 2),T.y + inaccurate_fuel * pick(-2, 2),T.z)
// Give marines a warning if misfuelled.
- var/fuel_warning = "Warhead fuel level: safe."
+ var/fuel_warning = "Уровень топлива боеголовки: корректный."
if(inaccurate_fuel > 0)
- fuel_warning = "Warhead fuel level: incorrect.
Warhead may be inaccurate."
+ fuel_warning = "Уровень топлива боеголовки: некорректный.
Возможно смещение области поражения."
priority_announce(
- message = "Evacuate the impact zone immediately!
Warhead type: [tray.warhead.warhead_kind].
[fuel_warning]
Estimated location of impact: [get_area(T)].",
- title = "Orbital bombardment launch command detected!",
+ message = "Немедленно покиньте зону поражения!
Тип боеголовки: [tray.warhead.warhead_kind_rus].
[fuel_warning]
Цель: [get_area(T)].",
+ title = "Обнаружена команда на запуск орбитальной бомбардировки!",
type = ANNOUNCEMENT_PRIORITY,
sound = 'sound/effects/OB_warning_announce.ogg',
channel_override = SSsounds.random_available_channel(), // This way, we can't have it be cut off by other sounds.
@@ -228,7 +228,7 @@
)
var/list/receivers = (GLOB.alive_human_list + GLOB.ai_list + GLOB.observer_list)
for(var/mob/living/screentext_receiver AS in receivers)
- screentext_receiver.play_screen_text("ORBITAL STRIKE IMMINENT
TYPE: [uppertext(tray.warhead.warhead_kind)]", /atom/movable/screen/text/screen_text/command_order)
+ screentext_receiver.play_screen_text("ОРБИТАЛЬНЫЙ УДАР
ТИП СНАРЯДА: [uppertext(tray.warhead.warhead_kind_rus)]", /atom/movable/screen/text/screen_text/command_order)
playsound(target, 'sound/effects/OB_warning_announce_novoiceover.ogg', 125, FALSE, 30, 10) //VOX-less version for xenomorphs
var/impact_time = 10 SECONDS + (WARHEAD_FLY_TIME * (GLOB.current_orbit/3))
@@ -361,6 +361,7 @@
/obj/structure/ob_ammo/warhead
name = "theoretical orbital ammo"
var/warhead_kind
+ var/warhead_kind_rus
///Explode the warhead
/obj/structure/ob_ammo/warhead/proc/warhead_impact()
@@ -373,8 +374,8 @@
relative_dir = 0
else
relative_dir = get_dir(our_mob, target)
- our_mob.show_message(span_highdanger("The sky erupts into flames [relative_dir ? ("to the " + dir2text(relative_dir)) : "right above you"]!"), EMOTE_VISIBLE,
- span_highdanger("You hear a very loud sound coming from above to the [relative_dir ? ("to the " + dir2text(relative_dir)) : "right above you"]!"), EMOTE_AUDIBLE)
+ our_mob.show_message(span_highdanger("Небо вспыхнуло [relative_dir ? ("с " + dir2rutext(relative_dir) + "а от тебя") : "прямо над тобой"]!"), EMOTE_VISIBLE,
+ span_highdanger("Громкий шум слышно из неба [relative_dir ? ("примерно с " + dir2rutext(relative_dir) + "а от тебя") : "прямо над тобой"]!"), EMOTE_AUDIBLE)
sleep(impact_time / 3)
for(var/mob/living/our_mob in range(25, target))
@@ -382,17 +383,18 @@
relative_dir = 0
else
relative_dir = get_dir(our_mob, target)
- our_mob.show_message(span_highdanger("The sky roars louder [relative_dir ? ("to the " + dir2text(relative_dir)) : "right above you"]!"), EMOTE_VISIBLE,
- span_highdanger("The sound becomes louder [relative_dir ? ("to the " + dir2text(relative_dir)) : "right above you"]!"), EMOTE_AUDIBLE)
+ our_mob.show_message(span_highdanger("Небо ревет все громче [relative_dir ? ("с " + dir2rutext(relative_dir) + "а от тебя") : "прямо над тобой"]!"), EMOTE_VISIBLE,
+ span_highdanger("Шум становится громче [relative_dir ? ("где-то с " + dir2rutext(relative_dir) + "а от тебя") : "прямо над тобой"]!"), EMOTE_AUDIBLE)
sleep(impact_time / 3)
for(var/mob/living/our_mob in range(15, target))
- our_mob.show_message(span_highdanger("OH GOD THE SKY WILL EXPLODE!!!"), EMOTE_VISIBLE,
- span_highdanger("YOU SHOULDN'T BE HERE!"), EMOTE_AUDIBLE)
+ our_mob.show_message(span_highdanger("О БОЖЕ, НЕБО СЕЙЧАС ВЗОРВЕТСЯ!!!"), EMOTE_VISIBLE,
+ span_highdanger("СМАТЫВАЙСЯ ОТСЮДА!"), EMOTE_AUDIBLE)
/obj/structure/ob_ammo/warhead/explosive
name = "\improper HE orbital warhead"
warhead_kind = "explosive"
+ warhead_kind_rus = "взрывной"
icon_state = "ob_warhead_1"
var/explosion_power = 1425
var/explosion_falloff = 90
@@ -403,6 +405,7 @@
/obj/structure/ob_ammo/warhead/incendiary
name = "\improper Incendiary orbital warhead"
warhead_kind = "incendiary"
+ warhead_kind_rus = "зажигательный"
icon_state = "ob_warhead_2"
var/flame_range_num
var/flame_intensity = 36
@@ -420,6 +423,7 @@
/obj/structure/ob_ammo/warhead/cluster
name = "\improper Cluster orbital warhead"
warhead_kind = "cluster"
+ warhead_kind_rus = "кластер"
icon_state = "ob_warhead_3"
var/cluster_amount = 25
var/cluster_power = 240
@@ -441,6 +445,7 @@
/obj/structure/ob_ammo/warhead/plasmaloss
name = "\improper Plasma draining orbital warhead"
warhead_kind = "plasma"
+ warhead_kind_rus = "Т-ГАЗ"
icon_state = "ob_warhead_4"
var/smoke_radius = 25
var/smoke_duration = 3 SECONDS
diff --git a/code/modules/admin/fun_verbs.dm b/code/modules/admin/fun_verbs.dm
index e901d7167f9..2b5b8a6f09e 100644
--- a/code/modules/admin/fun_verbs.dm
+++ b/code/modules/admin/fun_verbs.dm
@@ -155,7 +155,7 @@
if("Yes")
priority_announce(input, customname, customsubtitle, sound = 'sound/AI/commandreport.ogg', color_override = override);
if("No")
- priority_announce("New update available at all communication consoles.", "Classified Transmission Received", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/commandreport.ogg')
+ priority_announce("Новое объявление доступно на всех консолях связи.", "Получена конфиденциальная передача", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/commandreport.ogg')
else
return
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index f4ad78eea8e..ab5ec796610 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -657,7 +657,7 @@ Status: [status ? status : "Unknown"] | Damage: [health ? health : "None"]
return
SSticker.mode.distress_cancelled = TRUE
- priority_announce("The distress signal has been blocked, the launch tubes are now recalibrating.", "Distress Beacon")
+ priority_announce("Сигнал бедствия заблокирован. Пусковые трубы перекалибруются.", "Сигнал Бедствия", sound = 'sound/AI/distressbeaconlocked.ogg')
log_admin("[key_name(usr)] has denied a distress beacon, requested by [key_name(M)]")
message_admins("[ADMIN_TPMONTY(usr)] has denied a distress beacon, requested by [ADMIN_TPMONTY(M)]")
diff --git a/code/modules/events/intel_computer.dm b/code/modules/events/intel_computer.dm
index 626b5d96b59..5b91384aa14 100644
--- a/code/modules/events/intel_computer.dm
+++ b/code/modules/events/intel_computer.dm
@@ -22,5 +22,5 @@
/datum/round_event/intel_computer/proc/activate(obj/machinery/computer/intel_computer/I)
I.active = TRUE
I.update_minimap_icon()
- priority_announce("Our data sifting algorithm has detected valuable classified information on a access point in [get_area(I)]. Should this data be recovered by ground forces, a reward will be given in the form of increased assets.", title = "TGMC Intel Division")
- xeno_message("We sense a looming threat from [get_area(I)]. We must keep the hosts away from there.")
+ priority_announce("Обнаружена ценная информация в [get_area(I)]. Если эти данные будут восстановлены наземными силами, будет выдано вознаграждение.", title = "Отдел Разведки UPP", sound = 'sound/AI/bonus_found.ogg')
+ xeno_message("Кажется в [get_area(I)] есть что-то полезное для морпехов. Следует держать их подальше от этого места.")
diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm
index a86ea68c7e6..c9924fd4516 100644
--- a/code/modules/events/ion_storm.dm
+++ b/code/modules/events/ion_storm.dm
@@ -23,12 +23,12 @@
addtimer(CALLBACK(src, PROC_REF(fix_comms)), comms_knockout_timer MINUTES)
/datum/round_event/ion_storm/announce()
- var/alert = pick( "Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you*%fj00)`5vc-BZZT",
- "Ionospheric anomalies detected. Temporary telecommunication failu*3mga;b4;'1v¬-BZZZT",
- "Ionospheric anomalies detected. Temporary telec#MCi46:5.;@63-BZZZZT",
- "Ionospheric anomalies dete'fZ\\kg5_0-BZZZZZT",
- "Ionospheri:%£ MCayj^j<.3-BZZZZZZT",
- "#4nd%;f4y6,>£%-BZZZZZZZT",
+ var/alert = pick( "Обнаружена ионосферная аномалия. Сбой связи неизбежен. Пожалуйста, свяжитесь с ваши*%fj00)`5vc",
+ "Обнаружена ионосферная аномалия. Сбой связи неизб*3mga;b4;'1v¬",
+ "Обнаружена ионосферная аномалия. Сбой свя#MCi46:5.;@63",
+ "Обнаружена ионосферная аномал'fZ\\kg5_0",
+ "Обнаружена ионосфер:%£ MCayj^j<.3",
+ "#4nd%;f4y6,>£%",
)
priority_announce(alert)
diff --git a/code/modules/events/stock_uptick.dm b/code/modules/events/stock_uptick.dm
index 34dfc1855a1..0a9a2954989 100644
--- a/code/modules/events/stock_uptick.dm
+++ b/code/modules/events/stock_uptick.dm
@@ -19,4 +19,4 @@
if(points_to_be_added > 1250) //cap the max amount of points at 1250
points_to_be_added = 1250
SSpoints.supply_points[FACTION_TERRAGOV] += points_to_be_added
- priority_announce("Due to an increase in Nanotrasen quarterly revenues, our supply allotment has increased by [points_to_be_added] points.")
+ priority_announce("В связи с ростом квартальной выручки Nanotrasen наш объем поставок увеличился на [points_to_be_added] очков.", sound = 'sound/AI/supply_increase.ogg')
diff --git a/code/modules/events/supply_drop.dm b/code/modules/events/supply_drop.dm
index 969abe3025c..a5679b24cdf 100644
--- a/code/modules/events/supply_drop.dm
+++ b/code/modules/events/supply_drop.dm
@@ -29,7 +29,7 @@
///sets the target for this event, and notifies the hive
/datum/round_event/supply_drop/proc/set_target(turf/target_turf)
var/supplying_faction = pick(SSticker.mode.factions)
- priority_announce("Friendly supply drop arriving in AO in [drop_delay / 600] minutes. Drop zone at [target_turf.loc].", "Bluespace Tactical Scanner Status", sound = 'sound/AI/distressreceived.ogg', receivers = (GLOB.alive_human_list_faction[supplying_faction] + GLOB.observer_list))
+ priority_announce("Союзный груз прибудет через [drop_delay / 600] минут. Место посадки - [target_turf.loc].", "Статус Тактического Блюспейс Сканера", sound = 'sound/AI/sup_drop.ogg', receivers = (GLOB.alive_human_list_faction[supplying_faction] + GLOB.observer_list))
addtimer(CALLBACK(src, PROC_REF(alert_hostiles), target_turf, supplying_faction), alert_delay)
addtimer(CALLBACK(src, PROC_REF(drop_supplies), target_turf, supplying_faction), drop_delay)
@@ -40,12 +40,12 @@
if(alerted_human.faction == supplying_faction)
humans_to_alert -= alerted_human
- priority_announce("Incoming [supplying_faction] supply drop detected, ETA [(drop_delay - alert_delay) / 600] minutes. Drop zone estimated as [target_turf.loc].", "Bluespace Tactical Scanner Status", sound = 'sound/AI/distressreceived.ogg', receivers = (humans_to_alert + GLOB.observer_list))
+ priority_announce("На подходе груз [supplying_faction]. Прибудет через [(drop_delay - alert_delay) / 600] минут. Место - [target_turf.loc].", "Статус Тактического Блюспейс Сканера", sound = 'sound/AI/sup_drop_enemy.ogg', receivers = (humans_to_alert + GLOB.observer_list))
///deploys the actual supply drop
/datum/round_event/supply_drop/proc/drop_supplies(turf/target_turf, faction)
- priority_announce("[faction] supply drop Materialisation detected at [target_turf.loc].", "Bluespace Tactical Scanner Status", sound = 'sound/AI/distressreceived.ogg', receivers = (GLOB.alive_human_list + GLOB.observer_list))
+ priority_announce("Обнаружена поставка от [faction] в [target_turf.loc].", "Статус Тактического Блюспейс Сканера", sound = 'sound/AI/sup_drop_act.ogg', receivers = (GLOB.alive_human_list + GLOB.observer_list))
new /obj/item/explosive/grenade/flare/on(target_turf)
switch(faction)
if(FACTION_SOM)
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/queen/abilities_queen.dm b/code/modules/mob/living/carbon/xenomorph/castes/queen/abilities_queen.dm
index 243e84dceda..7c6f8fc5f37 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/queen/abilities_queen.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/queen/abilities_queen.dm
@@ -16,7 +16,7 @@
var/mob/living/carbon/xenomorph/queen/Q = owner
//Preferring the use of multiline input as the message box is larger and easier to quickly proofread before sending to hive.
- var/input = stripped_multiline_input(Q, "Maximum message length: [MAX_BROADCAST_LEN]", "Hive Message", "", MAX_BROADCAST_LEN, TRUE)
+ var/input = stripped_multiline_input(Q, "Максимальная длина: [MAX_BROADCAST_LEN]", "Приказ Улью", "", MAX_BROADCAST_LEN, TRUE)
//Newlines are of course stripped and replaced with a space.
input = capitalize(trim(replacetext(input, "\n", " ")))
if(!input)
@@ -34,14 +34,14 @@
log_game("[key_name(Q)] has messaged the hive with: \"[input]\"")
deadchat_broadcast(" has messaged the hive: \"[input]\"", Q, Q)
- var/queens_word = "HIVE MESSAGE:
" + input
+ var/queens_word = "ПРИКАЗ УЛЬЮ:
" + input
var/sound/queen_sound = sound(get_sfx("queen"), channel = CHANNEL_ANNOUNCEMENTS)
var/sound/king_sound = sound('sound/voice/alien/xenos_roaring.ogg', channel = CHANNEL_ANNOUNCEMENTS)
for(var/mob/living/carbon/xenomorph/X AS in Q.hive.get_all_xenos())
to_chat(X, assemble_alert(
- title = "Hive Announcement",
- subtitle = "From [Q.name]",
+ title = "Приказ Улью",
+ subtitle = "Приказ [Q.name]",
message = input,
color_override = "purple"
))
diff --git a/code/modules/mob/living/carbon/xenomorph/embryo.dm b/code/modules/mob/living/carbon/xenomorph/embryo.dm
index ca3a6e056df..01ceed82799 100644
--- a/code/modules/mob/living/carbon/xenomorph/embryo.dm
+++ b/code/modules/mob/living/carbon/xenomorph/embryo.dm
@@ -147,7 +147,7 @@
if(isyautja(affected_mob))
new_xeno = new /mob/living/carbon/xenomorph/larva/predalien(affected_mob)
- yautja_announcement(span_yautjaboldbig("WARNING!\n\nAn abomination has been detected at [get_area_name(new_xeno)]. It is a stain upon our purity and is unfit for life. Exterminate it immediately.\n\nHeavy Armory unlocked."))
+ yautja_announcement(span_yautjaboldbig("ТРЕВОГА!\n\nЗамечено Отродье в [get_area_name(new_xeno)]. Это слишком низко для нашей чести. Ошибка природы. Уничтожьте его немедленно.\n\nОткрыт доступ к Тяжелому Вооружению."))
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_YAUTJA_ARMORY_OPENED)
else
new_xeno = new(affected_mob)
diff --git a/code/modules/mob/living/silicon/ai/ai_verbs.dm b/code/modules/mob/living/silicon/ai/ai_verbs.dm
index 35aa86eecb8..46ecbbb9662 100644
--- a/code/modules/mob/living/silicon/ai/ai_verbs.dm
+++ b/code/modules/mob/living/silicon/ai/ai_verbs.dm
@@ -153,7 +153,7 @@
return
last_announcement = world.time
- priority_announce(input, "[src] Announcement", sound = 'sound/AI/aireport.ogg')
+ priority_announce(input, "Оповещение от [src]", sound = 'sound/AI/aireport.ogg')
/mob/living/silicon/ai/verb/ai_core_display()
@@ -320,6 +320,6 @@
log_game("[key_name(src)] has ghosted at [AREACOORD(src)].")
message_admins("[ADMIN_TPMONTY(src)] has ghosted.")
- priority_announce("[src] has suffered an unexpected NTOS failure over its Logarithmic silicon backhaul functions and has been taken offline. An attempt to load a backup personality core will proceed shortly.", "AI NT-OS Critical Failure")
+ priority_announce("[src] был отключен. Ожидание загрузки новой личности...", "Сбой ИИ", sound = 'sound/AI/aileft.ogg')
ghostize(FALSE)
offer_mob()
diff --git a/code/modules/orbits/spaceship.dm b/code/modules/orbits/spaceship.dm
index d058fe16f2c..0852570b41c 100644
--- a/code/modules/orbits/spaceship.dm
+++ b/code/modules/orbits/spaceship.dm
@@ -160,8 +160,8 @@ GLOBAL_VAR_INIT(current_orbit,STANDARD_ORBIT)
return
message_admins("[ADMIN_TPMONTY(usr)] Has sent the ship [direction == "UP" ? "UPWARD" : "DOWNWARD"] in orbit")
- var/message = "Prepare for orbital change in 10 seconds.\nMoving [direction] the gravity well.\nSecure all belongings and prepare for engine ignition."
- minor_announce(message, title = "Orbit Change")
+ var/message = "Внимание. [direction == "UP" ? "Подъём" : "Снижение"] на другую орбиту через 10 секунд."
+ minor_announce(message, title = "Смена Орбиты")
addtimer(CALLBACK(src, PROC_REF(do_change_orbit), current_orbit, direction), 10 SECONDS)
/obj/machinery/computer/navigation/proc/can_change_orbit(current_orbit, direction, silent = FALSE)
@@ -194,8 +194,8 @@ GLOBAL_VAR_INIT(current_orbit,STANDARD_ORBIT)
changing_orbit = TRUE
engine_shudder()
- var/message = "Arriving at new orbital level. Prepare for engine ignition and stabilization."
- addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(minor_announce), message, "Orbit Change"), 290 SECONDS)
+ var/message = "Переход на новую орбиту. Приготовьтесь к запуску двигателей и стабилизации."
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(minor_announce), message, "Смена Орбиты"), 290 SECONDS)
addtimer(CALLBACK(src, PROC_REF(orbit_gets_changed), current_orbit, direction), 3 MINUTES)
/obj/machinery/computer/navigation/proc/orbit_gets_changed(current_orbit, direction)
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index 5bc55e70d38..dcfec555aa3 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -328,7 +328,7 @@
playsound_z(3, 'sound/effects/powerloss.ogg')
if(announce)
- priority_announce("Abnormal activity detected in the ship power system. As a precaution, power must be shut down for an indefinite duration.", "Critical Power Failure", sound = 'sound/AI/poweroff.ogg')
+ priority_announce("В системе питания судна обнаружена аномальная активность. В качестве меры предосторожности питание будет отключено на неопределенный срок.", "Критический Сбой Питания", sound = 'sound/AI/poweroff.ogg')
/proc/power_restore(announce = TRUE)
@@ -351,7 +351,7 @@
if(announce)
- priority_announce("Power has been restored. Reason: Unknown.", "Power Systems Nominal", sound = 'sound/AI/poweron.ogg')
+ priority_announce("Питание восстановлено. Причина: Неизвестно.", "Восстановление Питания", sound = 'sound/AI/poweron.ogg')
/proc/power_restore_quick(announce = TRUE)
@@ -365,7 +365,7 @@
S.power_change()
if(announce)
- priority_announce("Power has been restored. Reason: Unknown.", "Power Systems Nominal", sound = 'sound/AI/poweron.ogg')
+ priority_announce("Питание восстановлено. Причина: Неизвестно.", "Восстановление Питания", sound = 'sound/AI/poweron.ogg')
/proc/power_restore_everything(announce = TRUE)
@@ -382,4 +382,4 @@
C.cell.charge = C.cell.maxcharge
if(announce)
- priority_announce("Power has been restored. Reason: Unknown.", "Power Systems Nominal", sound = 'sound/AI/poweron.ogg')
+ priority_announce("Питание восстановлено. Причина: Неизвестно.", "Восстановление Питания", sound = 'sound/AI/poweron.ogg')
diff --git a/code/modules/screen_alert/command_alert.dm b/code/modules/screen_alert/command_alert.dm
index 61d48ddf19e..4f4afd9f118 100644
--- a/code/modules/screen_alert/command_alert.dm
+++ b/code/modules/screen_alert/command_alert.dm
@@ -42,7 +42,7 @@
if(!can_use_action())
return
var/mob/living/carbon/human/human_owner = owner
- var/text = tgui_input_text(human_owner, "Maximum message length [MAX_COMMAND_MESSAGE_LEN]", "Send message to squad", max_length = MAX_COMMAND_MESSAGE_LEN, multiline = TRUE)
+ var/text = tgui_input_text(human_owner, "Максимальная длина [MAX_COMMAND_MESSAGE_LEN]", "Отправить сообщение отряду", max_length = MAX_COMMAND_MESSAGE_LEN, multiline = TRUE)
if(!text)
return
var/filter_result = CAN_BYPASS_FILTER(human_owner) ? null : is_ic_filtered(text)
@@ -75,21 +75,21 @@
else
override_color = "grey"
for(var/mob/living/carbon/human/marine AS in human_owner.assigned_squad.marines_list | GLOB.observer_list)
- marine.play_screen_text("SQUAD ANNOUNCEMENT:
" + text, /atom/movable/screen/text/screen_text/command_order)
+ marine.play_screen_text("ПРИКАЗ ОТРЯДУ:
" + text, /atom/movable/screen/text/screen_text/command_order)
to_chat(marine, assemble_alert(
- title = "Squad [human_owner.assigned_squad.name] Announcement",
- subtitle = "Sent by [human_owner.real_name]",
+ title = "Приказ отряду [human_owner.assigned_squad.name]",
+ subtitle = "Отправлен [human_owner.real_name]",
message = text,
color_override = override_color
))
return
for(var/mob/faction_receiver in alert_receivers)
if(faction_receiver.faction == human_owner.faction || isdead(faction_receiver))
- var/faction_title = GLOB.faction_to_acronym[human_owner.faction] ? GLOB.faction_to_acronym[human_owner.faction] + " Command" : "Unknown Faction" + " Command"
- faction_receiver.play_screen_text("[uppertext(faction_title)] ANNOUNCEMENT:
" + text, /atom/movable/screen/text/screen_text/command_order)
+ var/faction_title = GLOB.faction_to_acronym[human_owner.faction] ? "Командования " + GLOB.faction_to_acronym[human_owner.faction] : "Командования" + " Неизвестной Фракции"
+ faction_receiver.play_screen_text(" ПРИКАЗ [uppertext(faction_title)]:
" + text, /atom/movable/screen/text/screen_text/command_order)
to_chat(faction_receiver, assemble_alert(
- title = "[faction_title] Announcement",
- subtitle = "Sent by [human_owner.job.title] [human_owner.real_name]",
+ title = "Сообщение от [faction_title]",
+ subtitle = "Отправлен [human_owner.job.title] [human_owner.real_name]",
message = text
))
SEND_SOUND(faction_receiver, S)
diff --git a/code/modules/shuttle/marine_dropship.dm b/code/modules/shuttle/marine_dropship.dm
index 89fa792a981..e47e4026de6 100644
--- a/code/modules/shuttle/marine_dropship.dm
+++ b/code/modules/shuttle/marine_dropship.dm
@@ -261,7 +261,7 @@
if(hijack_state != HIJACK_STATE_NORMAL)
return
cycle_timer = addtimer(CALLBACK(src, PROC_REF(go_to_previous_destination)), 20 SECONDS, TIMER_STOPPABLE)
- priority_announce("The Alamo will depart towards [previous.name] in 20 seconds.", "Dropship Automatic Departure", color_override = "grey", playing_sound = FALSE)
+ priority_announce("Десантный шаттл взлетает через 20 секунд по направлению к [previous.name]", "Автопилот Нормандии", color_override = "grey", playing_sound = FALSE)
///Send the dropship to its previous dock
/obj/docking_port/mobile/marine_dropship/proc/go_to_previous_destination()
@@ -324,7 +324,7 @@
/obj/docking_port/mobile/marine_dropship/on_prearrival()
. = ..()
if(hijack_state == HIJACK_STATE_CRASHING)
- priority_announce("DROPSHIP ON COLLISION COURSE. CRASH IMMINENT.", "EMERGENCY", sound = 'sound/AI/dropship_emergency.ogg', color_override = "red")
+ priority_announce("ДЕСАНТНЫЙ ШАТТЛ НА КУРСЕ СТОЛКНОВЕНИЯ. АВАРИЯ НЕИЗБЕЖНА.", "ТРЕВОГА", sound = 'sound/AI/dropship_emergency.ogg', color_override = "red")
for(var/obj/machinery/landinglight/light AS in GLOB.landing_lights)
if(light.linked_port == destination)
light.turn_on()
@@ -376,7 +376,7 @@
message_admins("[ADMIN_TPMONTY(src)] has summoned the dropship")
log_admin("[key_name(src)] has summoned the dropship")
hive?.xeno_message("[src] has summoned down the metal bird to [port], gather to her now!")
- priority_announce("Unknown external interference with dropship control. Shutting down autopilot.", "Critical Dropship Alert", type = ANNOUNCEMENT_PRIORITY, color_override = "red")
+ priority_announce("Неизвестное вмешательство в управление десантным шаттлом. Выключение автопилота...", "Неисправность Шаттла", type = ANNOUNCEMENT_PRIORITY, color_override = "red", sound = 'sound/AI/dropship_wrong.ogg')
#define ALIVE_HUMANS_FOR_CALLDOWN 0.1
@@ -414,37 +414,37 @@
locked_sides++
break
if(!locked_sides)
- to_chat(user, span_warning("The bird is already on the ground, open and vulnerable."))
+ to_chat(user, span_warning("Птица уже на земле, открыта и уязвимая."))
return FALSE
if(locked_sides < 3 && !isdropshiparea(get_area(user)))
- to_chat(user, span_warning("At least one side is still unlocked!"))
+ to_chat(user, span_warning("По крайней мере одна сторона все еще разблокирована!"))
return FALSE
- to_chat(user, span_xenodanger("We crack open the metal bird's shell."))
+ to_chat(user, span_xenodanger("Мы вскрываем металлическую оболочку птицы."))
if(D.hijack_state != HIJACK_STATE_NORMAL)
return FALSE
- to_chat(user, span_warning("We begin overriding the shuttle lockdown. This will take a while..."))
+ to_chat(user, span_warning("Мы начинаем отменять блокировку шаттла. Это займет некоторое время..."))
if(!do_after(user, 30 SECONDS, FALSE, null, BUSY_ICON_DANGER, BUSY_ICON_DANGER))
- to_chat(user, span_warning("We cease overriding the shuttle lockdown."))
+ to_chat(user, span_warning("Мы прекращаем отмену блокировки шаттла."))
return FALSE
if(!is_ground_level(D.z))
- to_chat(user, span_warning("The bird has left meanwhile, try again."))
+ to_chat(user, span_warning("Птица улетела, попробуйте еще раз."))
return FALSE
D.unlock_all()
if(D.mode != SHUTTLE_IGNITING)
D.set_hijack_state(HIJACK_STATE_UNLOCKED)
D.do_start_hijack_timer(GROUND_LOCKDOWN_TIME)
- to_chat(user, span_warning("We were unable to prevent the bird from flying as it is already taking off."))
+ to_chat(user, span_warning("Мы не можем помешать птице улететь, так как она уже взлетает."))
D.silicon_lock_airlocks(TRUE)
- to_chat(user, span_warning("We have overriden the shuttle lockdown!"))
+ to_chat(user, span_warning("Мы отменили блокировку шаттла!"))
playsound(user, "alien_roar", 50)
- priority_announce("Normandy lockdown protocol compromised. Interference preventing remote control.", "Dropship Lock Alert", type = ANNOUNCEMENT_PRIORITY, color_override = "red")
+ priority_announce("Протокол блокировки Нормандии скомпрометирован. Постороннее вмешательство блокирует попытки удалённого управления.", "Шаттл Заблокирован", type = ANNOUNCEMENT_PRIORITY, color_override = "red", sound = 'sound/AI/dropship_block.ogg')
return FALSE
if(D.mode != SHUTTLE_IDLE && D.mode != SHUTTLE_RECHARGING)
- to_chat(user, span_warning("The bird's mind is currently active. We need to wait until it's more vulnerable..."))
+ to_chat(user, span_warning("Сознание птицы активно. Нужно подождать, пока она станет более уязвимым..."))
return FALSE
var/list/living_player_list = count_humans_and_xenos(SSmapping.levels_by_any_trait(list(ZTRAIT_GROUND)), COUNT_IGNORE_ALIVE_SSD)
if(length_char(GLOB.alive_human_list) && ((living_player_list[1] / length_char(GLOB.alive_human_list)) > ALIVE_HUMANS_FOR_CALLDOWN))
- to_chat(user, span_warning("There's too many tallhosts still on the ground. They interfere with our psychic field. We must dispatch them before we are able to do this."))
+ to_chat(user, span_warning("Ещё много живой добычи на земле. Они мешают нашему психическому полю. Мы должны уничтожить их, прежде чем сможем это сделать."))
return FALSE
return TRUE
@@ -695,23 +695,23 @@
if(href_list["hijack"])
if(!(X.hive.hive_flags & HIVE_CAN_HIJACK))
- to_chat(X, span_warning("Our hive lacks the psychic prowess to hijack the bird."))
+ to_chat(X, span_warning("Нашему улью не хватает экстрасенсорных способностей, чтобы украсть птицу."))
return
var/list/living_player_list = SSticker.mode.count_humans_and_xenos(list(X.z), COUNT_IGNORE_ALIVE_SSD)
if(living_player_list[1] > living_player_list[2]) // if there are more marines than xenos, we are unable to hijack
- to_chat(X, span_xenowarning("There is still prey left to hunt!"))
+ to_chat(X, span_xenowarning("Еще осталась добыча, на которую можно поохотиться!"))
return
switch(M.mode)
if(SHUTTLE_RECHARGING)
- to_chat(X, span_xenowarning("The bird is still cooling down."))
+ to_chat(X, span_xenowarning("Птица все еще остывает..."))
return
if(SHUTTLE_IDLE) //Continue.
EMPTY_BLOCK_GUARD
else
- to_chat(X, span_xenowarning("We can't do that right now."))
+ to_chat(X, span_xenowarning("Мы не можем сделать это сейчас."))
return
- var/confirm = tgui_alert(usr, "Would you like to hijack the metal bird?", "Hijack the bird?", list("Yes", "No"))
- if(confirm != "Yes")
+ var/confirm = tgui_alert(usr, "Хотите угнать металлическую птицу?", "Угнать птицу?", list("Да", "Нет"))
+ if(confirm != "Да")
return
var/obj/docking_port/stationary/marine_dropship/crash_target/CT = pick(SSshuttle.crash_targets)
if(!CT)
@@ -721,13 +721,13 @@
if(href_list["abduct"])
var/list/living_player_list = SSticker.mode.count_humans_and_xenos(list(X.z), COUNT_IGNORE_ALIVE_SSD)
if(living_player_list[1] > 5)
- to_chat(X, span_xenowarning("There is still prey left to hunt!"))
+ to_chat(X, span_xenowarning("Еще осталась добыча, на которую можно поохотиться!"))
return
- var/confirm = tgui_alert(usr, "Would you like to capture the metal bird?\n THIS WILL END THE ROUND", "Capture the ship?", list( "Yes", "No"))
- if(confirm != "Yes")
+ var/confirm = tgui_alert(usr, "Хотите захватить металлическую птицу?\n ЭТО ЗАВЕРШИТ РАУНД", "Захватить птицу?", list( "Да", "Нет"))
+ if(confirm != "Да")
return
- priority_announce("The Normandy has been captured! Losing their main mean of accessing the ground, the marines have no choice but to retreat.", title = "Normandy Captured", color_override = "orange")
+ priority_announce("Нормандия захвачена! Потеряв главный путь к земле, морпехи вынуждены отступить.", title = "Нормандия Захвачена", color_override = "orange")
var/datum/game_mode/infestation/infestation_mode = SSticker.mode
infestation_mode.round_stage = INFESTATION_DROPSHIP_CAPTURED_XENOS
return
@@ -741,7 +741,7 @@
crashing_dropship.crashing = TRUE
crashing_dropship.unlock_all()
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_DROPSHIP_HIJACKED)
- priority_announce("Unscheduled dropship departure detected from operational area. Hijack likely.", title = "Critical Dropship Alert", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/hijack.ogg', color_override = "red")
+ priority_announce("Зафиксирован незапланированный вылет Нормандии из зоны боевых действий. Вероятен угон.", title = "Неисправность Нормандии", type = ANNOUNCEMENT_PRIORITY, sound = 'sound/AI/hijack.ogg', color_override = "red")
to_chat(user, span_danger("A loud alarm erupts from [src]! The fleshy hosts must know that you can access it!"))
user.hive.on_shuttle_hijack(crashing_dropship)
playsound(src, 'sound/misc/queen_alarm.ogg')
@@ -749,12 +749,12 @@
SSevacuation.flags_scuttle &= ~FLAGS_SDEVAC_TIMELOCK
switch(SSshuttle.moveShuttleToDock(shuttleId, crash_target, TRUE))
if(0)
- visible_message("Shuttle departing. Please stand away from the doors.")
+ visible_message("Отправление шаттла. Осторожно, двери закрываются.")
if(1)
- to_chat(user, span_warning("Invalid shuttle requested. This shouldn't happen, please report it."))
+ to_chat(user, span_warning("Неверный запрос на шаттл. Такого не должно быть! Сообщите об этом администрации."))
CRASH("moveShuttleToDock() returned 1.")
else
- to_chat(user, span_warning("ERROR. This shouldn't happen, please report it."))
+ to_chat(user, span_warning("ОШИБКА. Такого не должно быть! Сообщите об этом администрации."))
CRASH("moveShuttleToDock() returned a non-zero-nor-one value.")
/obj/machinery/computer/shuttle/marine_dropship/one
@@ -1481,7 +1481,7 @@
if(admin_response == "deny")
TIMER_COOLDOWN_START(src, COOLDOWN_EVACUATION, 15 SECONDS)
- priority_announce("An evacuation attempt has been blocked, the engines are now restarting.", "Evacuation Attempt", ANNOUNCEMENT_COMMAND)
+ priority_announce("Попытка эвакуации заблокирована. Перезапуск двигателей...", "Попытка Эвакуации", ANNOUNCEMENT_COMMAND)
return TRUE
if(admin_response =="deny without annoncing")
TIMER_COOLDOWN_START(src, COOLDOWN_EVACUATION, 15 SECONDS)
diff --git a/sound/AI/aileft.ogg b/sound/AI/aileft.ogg
new file mode 100644
index 00000000000..22a0a1b9c4c
Binary files /dev/null and b/sound/AI/aileft.ogg differ
diff --git a/sound/AI/aireport.ogg b/sound/AI/aireport.ogg
index 82e4ca425de..d1138563403 100644
Binary files a/sound/AI/aireport.ogg and b/sound/AI/aireport.ogg differ
diff --git a/sound/AI/bioscan.ogg b/sound/AI/bioscan.ogg
index 3ab30d73b23..8e28931c3ba 100644
Binary files a/sound/AI/bioscan.ogg and b/sound/AI/bioscan.ogg differ
diff --git a/sound/AI/bonus_climed.ogg b/sound/AI/bonus_climed.ogg
new file mode 100644
index 00000000000..7dbec57a306
Binary files /dev/null and b/sound/AI/bonus_climed.ogg differ
diff --git a/sound/AI/bonus_found.ogg b/sound/AI/bonus_found.ogg
new file mode 100644
index 00000000000..5b9a0c3b018
Binary files /dev/null and b/sound/AI/bonus_found.ogg differ
diff --git a/sound/AI/code_blue_elevated.ogg b/sound/AI/code_blue_elevated.ogg
index d69edbda7b4..4b07b1cc1b1 100644
Binary files a/sound/AI/code_blue_elevated.ogg and b/sound/AI/code_blue_elevated.ogg differ
diff --git a/sound/AI/code_blue_lowered.ogg b/sound/AI/code_blue_lowered.ogg
index bf0a7c9113a..b71d319f2cf 100644
Binary files a/sound/AI/code_blue_lowered.ogg and b/sound/AI/code_blue_lowered.ogg differ
diff --git a/sound/AI/code_delta.ogg b/sound/AI/code_delta.ogg
new file mode 100644
index 00000000000..cf512041518
Binary files /dev/null and b/sound/AI/code_delta.ogg differ
diff --git a/sound/AI/code_green.ogg b/sound/AI/code_green.ogg
index cd4666c9917..8089daea600 100644
Binary files a/sound/AI/code_green.ogg and b/sound/AI/code_green.ogg differ
diff --git a/sound/AI/code_red_elevated.ogg b/sound/AI/code_red_elevated.ogg
index 3b2de8368ff..5def4c50878 100644
Binary files a/sound/AI/code_red_elevated.ogg and b/sound/AI/code_red_elevated.ogg differ
diff --git a/sound/AI/code_red_lowered.ogg b/sound/AI/code_red_lowered.ogg
index 4409d345bac..c2c35050ac9 100644
Binary files a/sound/AI/code_red_lowered.ogg and b/sound/AI/code_red_lowered.ogg differ
diff --git a/sound/AI/commandreport.ogg b/sound/AI/commandreport.ogg
index 9b6bb9bd6e9..4518c1c3d01 100644
Binary files a/sound/AI/commandreport.ogg and b/sound/AI/commandreport.ogg differ
diff --git a/sound/AI/crash_start.ogg b/sound/AI/crash_start.ogg
new file mode 100644
index 00000000000..809203ee67b
Binary files /dev/null and b/sound/AI/crash_start.ogg differ
diff --git a/sound/AI/distress_deny.ogg b/sound/AI/distress_deny.ogg
new file mode 100644
index 00000000000..6954ef89030
Binary files /dev/null and b/sound/AI/distress_deny.ogg differ
diff --git a/sound/AI/distressbeacon.ogg b/sound/AI/distressbeacon.ogg
index 77defb64f82..ae40764c570 100644
Binary files a/sound/AI/distressbeacon.ogg and b/sound/AI/distressbeacon.ogg differ
diff --git a/sound/AI/distressbeacon_none.ogg b/sound/AI/distressbeacon_none.ogg
new file mode 100644
index 00000000000..909c7db38e7
Binary files /dev/null and b/sound/AI/distressbeacon_none.ogg differ
diff --git a/sound/AI/distressbeaconlocked.ogg b/sound/AI/distressbeaconlocked.ogg
new file mode 100644
index 00000000000..a533d16da0c
Binary files /dev/null and b/sound/AI/distressbeaconlocked.ogg differ
diff --git a/sound/AI/distressreceived.ogg b/sound/AI/distressreceived.ogg
index 1f819146c5b..02aef2745cf 100644
Binary files a/sound/AI/distressreceived.ogg and b/sound/AI/distressreceived.ogg differ
diff --git a/sound/AI/dropship_block.ogg b/sound/AI/dropship_block.ogg
new file mode 100644
index 00000000000..d9b429a17f9
Binary files /dev/null and b/sound/AI/dropship_block.ogg differ
diff --git a/sound/AI/dropship_emergency.ogg b/sound/AI/dropship_emergency.ogg
index c8ff2903df9..cc92deedc5f 100644
Binary files a/sound/AI/dropship_emergency.ogg and b/sound/AI/dropship_emergency.ogg differ
diff --git a/sound/AI/dropship_wrong.ogg b/sound/AI/dropship_wrong.ogg
new file mode 100644
index 00000000000..e0b4cec1733
Binary files /dev/null and b/sound/AI/dropship_wrong.ogg differ
diff --git a/sound/AI/evacuate.ogg b/sound/AI/evacuate.ogg
index a0fe44536b9..de440a92428 100644
Binary files a/sound/AI/evacuate.ogg and b/sound/AI/evacuate.ogg differ
diff --git a/sound/AI/evacuate_cancelled.ogg b/sound/AI/evacuate_cancelled.ogg
index ebb74b6d4eb..c1e30c8c5a5 100644
Binary files a/sound/AI/evacuate_cancelled.ogg and b/sound/AI/evacuate_cancelled.ogg differ
diff --git a/sound/AI/evacuation_complete.ogg b/sound/AI/evacuation_complete.ogg
index d611f7c5287..c01eab7c5e8 100644
Binary files a/sound/AI/evacuation_complete.ogg and b/sound/AI/evacuation_complete.ogg differ
diff --git a/sound/AI/evacuation_confirmed.ogg b/sound/AI/evacuation_confirmed.ogg
index a1fccb0ccb4..0de76fe3762 100644
Binary files a/sound/AI/evacuation_confirmed.ogg and b/sound/AI/evacuation_confirmed.ogg differ
diff --git a/sound/AI/hijack.ogg b/sound/AI/hijack.ogg
index 774de641173..c6723229692 100644
Binary files a/sound/AI/hijack.ogg and b/sound/AI/hijack.ogg differ
diff --git a/sound/AI/musical_pause.ogg b/sound/AI/musical_pause.ogg
new file mode 100644
index 00000000000..7dc323594c3
Binary files /dev/null and b/sound/AI/musical_pause.ogg differ
diff --git a/sound/AI/orbit_change.ogg b/sound/AI/orbit_change.ogg
new file mode 100644
index 00000000000..cafda86b579
Binary files /dev/null and b/sound/AI/orbit_change.ogg differ
diff --git a/sound/AI/poweroff.ogg b/sound/AI/poweroff.ogg
index a0617d0f0e7..d334c7e9809 100644
Binary files a/sound/AI/poweroff.ogg and b/sound/AI/poweroff.ogg differ
diff --git a/sound/AI/poweron.ogg b/sound/AI/poweron.ogg
index 2598c1b7560..77b2b619baf 100644
Binary files a/sound/AI/poweron.ogg and b/sound/AI/poweron.ogg differ
diff --git a/sound/AI/selfdestruct.ogg b/sound/AI/selfdestruct.ogg
index 0dc503f865f..9a0efd64d5a 100644
Binary files a/sound/AI/selfdestruct.ogg and b/sound/AI/selfdestruct.ogg differ
diff --git a/sound/AI/selfdestruct_deactivated.ogg b/sound/AI/selfdestruct_deactivated.ogg
index b214440a349..62fb665444d 100644
Binary files a/sound/AI/selfdestruct_deactivated.ogg and b/sound/AI/selfdestruct_deactivated.ogg differ
diff --git a/sound/AI/sup_drop.ogg b/sound/AI/sup_drop.ogg
new file mode 100644
index 00000000000..eb01e3817fa
Binary files /dev/null and b/sound/AI/sup_drop.ogg differ
diff --git a/sound/AI/sup_drop_act.ogg b/sound/AI/sup_drop_act.ogg
new file mode 100644
index 00000000000..ecf8f1b4239
Binary files /dev/null and b/sound/AI/sup_drop_act.ogg differ
diff --git a/sound/AI/sup_drop_enemy.ogg b/sound/AI/sup_drop_enemy.ogg
new file mode 100644
index 00000000000..2170aeeb41b
Binary files /dev/null and b/sound/AI/sup_drop_enemy.ogg differ
diff --git a/sound/AI/supply_increase.ogg b/sound/AI/supply_increase.ogg
new file mode 100644
index 00000000000..861bfb2d42a
Binary files /dev/null and b/sound/AI/supply_increase.ogg differ
diff --git a/sound/effects/OB_warning_announce.ogg b/sound/effects/OB_warning_announce.ogg
index 788a64790f2..540e7d58f51 100644
Binary files a/sound/effects/OB_warning_announce.ogg and b/sound/effects/OB_warning_announce.ogg differ