"}
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