diff --git a/code/modules/power/engines/supermatter/supermatter.dm b/code/modules/power/engines/supermatter/supermatter.dm index 3bce6ff85194..c2a1f702ecf5 100644 --- a/code/modules/power/engines/supermatter/supermatter.dm +++ b/code/modules/power/engines/supermatter/supermatter.dm @@ -300,10 +300,10 @@ switch(get_status()) if(SUPERMATTER_DELAMINATING) playsound(src, 'sound/misc/bloblarm.ogg', 100, FALSE, 40, 30, falloff_distance = 10) - GLOB.major_announcement.Announce("ВНИМАНИЕ, АКТИВНАЯ ЗОНА РЕАКТОРА НАХОДИТСЯ В КРИТИЧЕСКОМ СОСТОЯНИИ!", "РЕАКТОР СУПЕРМАТЕРИИ: СОСТОЯНИЕ КРИТИЧЕСКОЕ!", 'modular_ss220/aesthetics_sounds/sound/supermatter/meltdown.ogg') //SS220 EDIT - ADDITION + GLOB.major_announcement.Announce("ВНИМАНИЕ, АКТИВНАЯ ЗОНА РЕАКТОРА НАХОДИТСЯ В КРИТИЧЕСКОМ СОСТОЯНИИ!", "РЕАКТОР СУПЕРМАТЕРИИ: СОСТОЯНИЕ КРИТИЧЕСКОЕ!", 'modular_ss220/aesthetics_sounds/sound/supermatter/meltdown.ogg') // SS220 EDIT - ADDITION if(SUPERMATTER_EMERGENCY) playsound(src, 'sound/machines/engine_alert1.ogg', 100, FALSE, 30, 30, falloff_distance = 10) - GLOB.major_announcement.Announce("ВНИМАНИЕ, АКТИВНАЯ ЗОНА РЕАКТОРА НАХОДИТСЯ В СОСТОЯНИИ КРИТИЧЕСКОГО ПЕРЕГРЕВА. ЯДЕРНАЯ КАТАСТРОФА НЕИЗБЕЖНА!", "РЕАКТОР СУПЕРМАТЕРИИ: СОСТОЯНИЕ КРИТИЧЕСКОЕ!", 'modular_ss220/aesthetics_sounds/sound/supermatter/core_overheating.ogg') //SS220 EDIT - ADDITION + GLOB.major_announcement.Announce("ВНИМАНИЕ, АКТИВНАЯ ЗОНА РЕАКТОРА НАХОДИТСЯ В СОСТОЯНИИ КРИТИЧЕСКОГО ПЕРЕГРЕВА. ЯДЕРНАЯ КАТАСТРОФА НЕИЗБЕЖНА!", "РЕАКТОР СУПЕРМАТЕРИИ: СОСТОЯНИЕ КРИТИЧЕСКОЕ!", 'modular_ss220/aesthetics_sounds/sound/supermatter/core_overheating.ogg') // SS220 EDIT - ADDITION if(SUPERMATTER_DANGER) playsound(src, 'sound/machines/engine_alert2.ogg', 100, FALSE, 30, 30, falloff_distance = 10) if(SUPERMATTER_WARNING) diff --git a/modular_ss220/maps220/code/Station/station_areas.dm b/modular_ss220/maps220/code/Station/station_areas.dm index 34f9682574ba..2b9af9214e8c 100644 --- a/modular_ss220/maps220/code/Station/station_areas.dm +++ b/modular_ss220/maps220/code/Station/station_areas.dm @@ -47,12 +47,15 @@ name = "Заброшенное Складское Помещение" icon_state = "cargobay" +/area/station/supply/expedition/gate + name = "Гейт" + /area/station/public/pool name = "Бассейн" icon_state = "dorms" /area/station/public/vacant_store - name = "Вакантный Офис" + name = "Вакантный Магазин" icon = 'modular_ss220/maps220/icons/areas.dmi' icon_state = "vacantstore" @@ -65,7 +68,7 @@ icon_state = "kitchen" /area/station/maintenance/old_detective - name = "Старый офис Детектива" + name = "Старый Офис Детектива" icon_state = "detective" /area/station/maintenance/virology_maint @@ -97,9 +100,6 @@ name = "Атриум" icon_state = "bar" -/area/station/supply/expedition/gate - name = "Гейт" - /* CentCom */ /area/centcom/ss220 name = "ЦК" diff --git a/modular_ss220/sm_space_drop/code/paper_sm_info.dm b/modular_ss220/sm_space_drop/code/paper_sm_info.dm index b6be2c66c2f5..e90566cabd89 100644 --- a/modular_ss220/sm_space_drop/code/paper_sm_info.dm +++ b/modular_ss220/sm_space_drop/code/paper_sm_info.dm @@ -1,9 +1,6 @@ -// Инструкция пользование системы сброса СМ - +/// Инструкция пользование системы сброса СМ /obj/item/paper/sm_paper - name = "\improper инструкция по использованию СБСКС" - icon = 'icons/obj/bureaucracy.dmi' - icon_state = "paper" + name = "\proper инструкция по использованию СБСКС" info = {"

Инструкция по использованию Системы Быстрого Сброса Кристалла Суперматерии


1. Ни при каких обстоятельствах не нажимать на кнопку ради проверки ее работоспособности.
@@ -15,9 +12,9 @@
5. Создание помехи при необходимости сброса кристалла квалифицируется статьей 400 Космического Закона.
-
Поздравляю! Теперь в случае вероятности взрыва кристалла Супер Материи, вы в состоянии сохранить целостность станции.
+
Поздравляю! Теперь в случае вероятности взрыва кристалла Суперматерии, вы в состоянии сохранить целостность станции.
-
ПРИМЕЧАНИЕ: Кнопка сброса СМ находится в его буферной зоне на стене возле правого вента.
+
ПРИМЕЧАНИЕ: Кнопка сброса СМ находится в его буферной зоне на правой стене.

"} diff --git a/modular_ss220/sm_space_drop/code/sm_button_NEW.dm b/modular_ss220/sm_space_drop/code/sm_button_NEW.dm deleted file mode 100644 index 5440f3a5eee1..000000000000 --- a/modular_ss220/sm_space_drop/code/sm_button_NEW.dm +++ /dev/null @@ -1,97 +0,0 @@ - -////////////////////////////////////// -// СБССМ Кнопки // -////////////////////////////////////// - -/obj/machinery/driver_button/sm_drop_button - name = "supermatter launch trigger" - desc = "ВНИМАНИЕ:Сброс кристала суперматерии. Неправомерное использование может привести к тюремному заключению." - icon = 'modular_ss220/sm_space_drop/icons/sm_buttons.dmi' - icon_state = "button" - anchored = TRUE - armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 10, rad = 100, fire = 90, acid = 70) - idle_power_consumption = 2 - active_power_consumption = 4 - resistance_flags = LAVA_PROOF | FIRE_PROOF - id_tag = "SpaceDropSM" - req_access = list(ACCESS_CE) - - var/glass = TRUE - var/launched = FALSE - -// In case we're annihilated by a meteor -/obj/machinery/driver_button/sm_drop_button/Destroy() - if(!launched) - launch_sequence() - return ..() - - -/obj/machinery/driver_button/sm_drop_button/update_icon() - if(launched) - icon_state = "[initial(icon_state)]_launched" - else if(!glass) - icon_state = "[initial(icon_state)]_open" - else - icon_state = "[initial(icon_state)]" - ..() - -/obj/machinery/driver_button/sm_drop_button/attack_hand(mob/user) - if(stat & (NOPOWER|BROKEN)) - return - - if(active) - return - - add_fingerprint(user) - - if(!allowed(usr)) - return - - use_power(5) - - // Already launched - if(launched) - to_chat(user, span_warning("Кнопку уже нажали")) - - // Glass present - else if(glass) - if(user.a_intent == INTENT_HARM) - user.custom_emote(EMOTE_VISIBLE, "разбивает стекло [src.name]!") - glass = FALSE - playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', 100, 1) - update_icon() - else - user.custom_emote(EMOTE_VISIBLE, "дружески похлопывает по [src.name].") - to_chat(user, span_warning("Если вы пытаетесь разбить стекло, вам придется ударить по нему сильнее...")) - // Must be !glass and !launched - else - user.custom_emote(EMOTE_VISIBLE, "нажимает кнопку сброса [src.name]!") - visible_message(span_notice("Кнопка громко щелкает.")) - launch_sequence() - playsound(src, pick('modular_ss220/sm_space_drop/sound/button.ogg','modular_ss220/sm_space_drop/sound/button1.ogg','modular_ss220/sm_space_drop/sound/button2.ogg','modular_ss220/sm_space_drop/sound/button3.ogg','modular_ss220/sm_space_drop/sound/button4.ogg'), 100, 1) - update_icon() - - if(SSticker && SSticker.current_state == GAME_STATE_PLAYING) - var/area/area = get_area(src) - if(area) - message_admins("Supermatter Crystal has been launched to space by [key_name_admin(user)] [ADMIN_JMP(src)].") - investigate_log("has been launched to space at ([area.name]) by [key_name(user)].","supermatter") - -/obj/machinery/driver_button/sm_drop_button/launch_sequence() - if(launched) - return - launched = TRUE - update_icon() - - for(var/obj/machinery/atmospherics/supermatter_crystal/engine/crystal in SSair.atmos_machinery) - if(crystal.id_tag == id_tag) - crystal.anchored = FALSE - break - - ..() - -/obj/machinery/driver_button/sm_drop_button/rearm() - active = FALSE - -/obj/machinery/driver_button/drop_sm/multitool_act(mob/user, obj/item/I) - return FALSE diff --git a/modular_ss220/sm_space_drop/code/sm_drop_button.dm b/modular_ss220/sm_space_drop/code/sm_drop_button.dm new file mode 100644 index 000000000000..96350436ca09 --- /dev/null +++ b/modular_ss220/sm_space_drop/code/sm_drop_button.dm @@ -0,0 +1,117 @@ +////////////////////////////////////// +// Кнопка СБСКС // +////////////////////////////////////// +/// Supermatter Drop button +/obj/machinery/driver_button/sm_drop_button + name = "supermatter launch trigger" + desc = "Кнопка экстренного сброс кристалла Суперматерии.\nВНИМАНИЕ: Неправомерное использование может привести к тюремному заключению." + icon = 'modular_ss220/sm_space_drop/icons/sm_buttons.dmi' + icon_state = "button" + // We don't want it to be randomly destroyed + max_integrity = 500 + armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 10, rad = 100, fire = 90, acid = 70) + id_tag = "SpaceDropSM" + req_access = list(ACCESS_CE) + /// If the safety glass is still in place + var/glass = TRUE + /// If it's already used and launched + var/launched = FALSE + var/obj/machinery/atmospherics/supermatter_crystal/engine/crystal + +// In case we're annihilated by a meteor +/obj/machinery/driver_button/sm_drop_button/Destroy() + if(!launched) + launch_sequence() + crystal = null + return ..() + +/obj/machinery/driver_button/sm_drop_button/update_icon_state() + if(launched) + icon_state = "[initial(icon_state)]_launched" + else if(!glass) + icon_state = "[initial(icon_state)]_open" + else + icon_state = "[initial(icon_state)]" + ..() + +/obj/machinery/driver_button/sm_drop_button/examine(mob/user) + . = ..() + if(!glass) + . += span_notice("У [name] разбито защитное стекло.") + if(launched) + . += span_notice("Кнопка медленно мигает, сигнализируя о том, что она была нажата.") + +/obj/machinery/driver_button/sm_drop_button/attack_hand(mob/user) + user.changeNext_move(CLICK_CD_MELEE) + + if(stat & (NOPOWER|BROKEN)) + return + + if(active) + return + + add_fingerprint(user) + use_power(5) + + if(!allowed(user) && !glass && !launched) + to_chat(user, span_warning("В доступе отказано.")) + return + + // Already launched + if(launched) + to_chat(user, span_warning("Кнопка уже нажата.")) + return + + // Glass present + else if(glass) + if(user.a_intent == INTENT_HARM) + user.visible_message(span_warning("[user] разбивает стекло [name]!"), span_warning("Вы разбиваете стекло [name]!")) + user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) + glass = FALSE + playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 100, TRUE) + update_icon_state() + else + user.visible_message(span_notice("[user] дружески похлопывает по [name]."), span_notice("Вы дружески похлопываете по [name].")) + playsound(loc, 'sound/effects/glassknock.ogg', 50, TRUE) + to_chat(user, span_warning("Если вы пытаетесь разбить стекло, вам придется ударить по нему сильнее...")) + else + // Must be !glass and !launched and crystal is in emergency state (around 10%) + for(crystal in SSair.atmos_machinery) + if(crystal?.id_tag == id_tag && crystal?.get_integrity() < SUPERMATTER_EMERGENCY) + user.visible_message(span_warning("[user] нажимает кнопку сброса [name]!"), span_warning("Вы нажимаете кнопку сброса!")) + playsound(loc, "modular_ss220/sm_space_drop/sound/button[rand(1, 5)].ogg", 100, TRUE) + visible_message(span_notice("Кнопка громко щелкает.")) + launch_sequence() + update_icon_state() + if(SSticker && SSticker.current_state == GAME_STATE_PLAYING) + var/area/area = get_area(src) + if(area) + message_admins("Supermatter Crystal has been launched to space by [key_name_admin(user)] [ADMIN_JMP(src)].") + investigate_log("has been launched to space at ([area.name]) by [key_name(user)].", "supermatter") + break + else + playsound(loc, "modular_ss220/sm_space_drop/sound/button[rand(1, 5)].ogg", 100, TRUE) + to_chat(user, span_warning("Система безопасности заблокировала попытку сброса. Кристалл не находится в состоянии расслоения!")) + return + +/obj/machinery/driver_button/sm_drop_button/launch_sequence() + if(launched) + return + launched = TRUE + GLOB.major_announcement.Announce("ВНИМАНИЕ, ПРОИЗВОДИТСЯ ЭКСТРЕННЫЙ СБРОС КРИСТАЛЛА!", "РЕАКТОР СУПЕРМАТЕРИИ: ЭКСТРЕННЫЙ СБРОС.", 'sound/effects/engine_alert2.ogg') + + for(crystal in SSair.atmos_machinery) + if(crystal?.id_tag == id_tag) + crystal.anchored = FALSE + break + + ..() + +/obj/machinery/driver_button/sm_drop_button/rearm() + active = FALSE + +/obj/machinery/driver_button/sm_drop_button/wrench_act() + return + +/obj/machinery/driver_button/sm_drop_button/multitool_act() + return diff --git a/modular_ss220/sm_space_drop/code/sm_space_drop.dm b/modular_ss220/sm_space_drop/code/sm_engine.dm similarity index 67% rename from modular_ss220/sm_space_drop/code/sm_space_drop.dm rename to modular_ss220/sm_space_drop/code/sm_engine.dm index d6e5b79952ec..26dd42fcf1c0 100644 --- a/modular_ss220/sm_space_drop/code/sm_space_drop.dm +++ b/modular_ss220/sm_space_drop/code/sm_engine.dm @@ -1,4 +1,2 @@ /obj/machinery/atmospherics/supermatter_crystal/engine - is_main_engine = TRUE - anchored = TRUE var/id_tag = "SpaceDropSM" diff --git a/modular_ss220/sm_space_drop/code/sm_mass_driver.dm b/modular_ss220/sm_space_drop/code/sm_mass_driver.dm index 5969bee02750..7d5709565e1f 100644 --- a/modular_ss220/sm_space_drop/code/sm_mass_driver.dm +++ b/modular_ss220/sm_space_drop/code/sm_mass_driver.dm @@ -1,14 +1,21 @@ /obj/machinery/mass_driver/sm_mass_driver - name = "\improper пусковая установка СМ" - desc = "Запускает СМ бороздить просторы космоса." - icon = 'icons/obj/objects.dmi' - icon_state = "mass_driver" - anchored = TRUE - idle_power_consumption = 2 - active_power_consumption = 50 + name = "supermatter mass driver" + desc = "Запускает кристалл Суперматерии бороздить просторы космоса." + // We don't want it to be randomly destroyed + max_integrity = 500 resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF id_tag = "SpaceDropSM" -/obj/machinery/sm_mass_driver/multitool_act(mob/user, obj/item/I) - return FALSE +// You can't manipulate with mass driver to avoid grief +/obj/machinery/mass_driver/sm_mass_driver/screwdriver_act() + return + +/obj/machinery/mass_driver/sm_mass_driver/multitool_act() + return + +/obj/machinery/mass_driver/sm_mass_driver/emp_act() + return + +/obj/machinery/mass_driver/sm_mass_driver/emag_act() + return diff --git a/modular_ss220/sm_space_drop/icons/sm_buttons.dmi b/modular_ss220/sm_space_drop/icons/sm_buttons.dmi index c8628e4e96c6..104adabe5981 100644 Binary files a/modular_ss220/sm_space_drop/icons/sm_buttons.dmi and b/modular_ss220/sm_space_drop/icons/sm_buttons.dmi differ diff --git a/modular_ss220/sm_space_drop/sm_space_drop.dme b/modular_ss220/sm_space_drop/sm_space_drop.dme index 57173c811a82..8bdb06f2a14a 100644 --- a/modular_ss220/sm_space_drop/sm_space_drop.dme +++ b/modular_ss220/sm_space_drop/sm_space_drop.dme @@ -1,6 +1,6 @@ #include "sm_space_drop.dm" -#include "code/sm_button_NEW.dm" -#include "code/sm_space_drop.dm" -#include "code/sm_mass_driver.dm" #include "code/paper_sm_info.dm" +#include "code/sm_drop_button.dm" +#include "code/sm_mass_driver.dm" +#include "code/sm_engine.dm" diff --git a/modular_ss220/sm_space_drop/sound/button.ogg b/modular_ss220/sm_space_drop/sound/button.ogg deleted file mode 100644 index 79b458317acf..000000000000 Binary files a/modular_ss220/sm_space_drop/sound/button.ogg and /dev/null differ diff --git a/modular_ss220/sm_space_drop/sound/button1.ogg b/modular_ss220/sm_space_drop/sound/button1.ogg index 3499e2d1722e..79b458317acf 100644 Binary files a/modular_ss220/sm_space_drop/sound/button1.ogg and b/modular_ss220/sm_space_drop/sound/button1.ogg differ diff --git a/modular_ss220/sm_space_drop/sound/button2.ogg b/modular_ss220/sm_space_drop/sound/button2.ogg index 83970986e328..3499e2d1722e 100644 Binary files a/modular_ss220/sm_space_drop/sound/button2.ogg and b/modular_ss220/sm_space_drop/sound/button2.ogg differ diff --git a/modular_ss220/sm_space_drop/sound/button3.ogg b/modular_ss220/sm_space_drop/sound/button3.ogg index a28da269ad61..83970986e328 100644 Binary files a/modular_ss220/sm_space_drop/sound/button3.ogg and b/modular_ss220/sm_space_drop/sound/button3.ogg differ diff --git a/modular_ss220/sm_space_drop/sound/button4.ogg b/modular_ss220/sm_space_drop/sound/button4.ogg index 9fceed1611fa..a28da269ad61 100644 Binary files a/modular_ss220/sm_space_drop/sound/button4.ogg and b/modular_ss220/sm_space_drop/sound/button4.ogg differ diff --git a/modular_ss220/sm_space_drop/sound/button5.ogg b/modular_ss220/sm_space_drop/sound/button5.ogg new file mode 100644 index 000000000000..9fceed1611fa Binary files /dev/null and b/modular_ss220/sm_space_drop/sound/button5.ogg differ