diff --git a/code/__DEFINES/~skyrat_defines/preferences.dm b/code/__DEFINES/~skyrat_defines/preferences.dm index 3c2d5f469c6..42a1e65bee3 100644 --- a/code/__DEFINES/~skyrat_defines/preferences.dm +++ b/code/__DEFINES/~skyrat_defines/preferences.dm @@ -3,5 +3,6 @@ #define CHAT_LOOC_ADMIN (1<<1) #define APHRO_PREF (1<<2) #define CUMFACE_PREF (1<<3) +#define ADMINDEL_ZAP_PREF (1<<4) #define TOGGLES_DEFAULT_SKYRAT (CHAT_LOOC_ADMIN|APHRO_PREF|CUMFACE_PREF) diff --git a/code/modules/admin/view_variables/admin_delete.dm b/code/modules/admin/view_variables/admin_delete.dm index 947ad5db2ca..27105b6f30a 100644 --- a/code/modules/admin/view_variables/admin_delete.dm +++ b/code/modules/admin/view_variables/admin_delete.dm @@ -2,8 +2,9 @@ var/atom/A = D var/coords = "" var/jmp_coords = "" + var/turf/T // SKYRAT EDIT -- Bluespace sparks on admin delete if(istype(A)) - var/turf/T = get_turf(A) + T = get_turf(A) // SKYRAT EDIT, orginal: var/turf/T = get_turf(A) if(T) coords = "at [COORD(T)]" jmp_coords = "at [ADMIN_COORDJMP(T)]" @@ -15,10 +16,17 @@ message_admins("[key_name_admin(usr)] deleted [D] [jmp_coords]") SSblackbox.record_feedback("tally", "admin_verb", 1, "Delete") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! if(isturf(D)) - var/turf/T = D + T = D // SKYRAT EDIT, orginal: var/turf/T = D T.ScrapeAway() else vv_update_display(D, "deleted", VV_MSG_DELETED) qdel(D) if(!QDELETED(D)) vv_update_display(D, "deleted", "") + // Skyrat edit addition start -- optional bluespace sparks on delete + if(T && prefs.skyrat_toggles & ADMINDEL_ZAP_PREF) + playsound(T, 'sound/magic/Repulse.ogg', 100, 1) + var/datum/effect_system/spark_spread/quantum/sparks = new + sparks.set_up(10, 1, T) + sparks.attach(T) + sparks.start() diff --git a/code/modules/buildmode/submodes/advanced.dm b/code/modules/buildmode/submodes/advanced.dm index 1dbc5fbb348..8f5c265b79b 100644 --- a/code/modules/buildmode/submodes/advanced.dm +++ b/code/modules/buildmode/submodes/advanced.dm @@ -60,4 +60,12 @@ else if(right_click) if(isobj(object)) log_admin("Build Mode: [key_name(c)] deleted [object] at [AREACOORD(object)]") + // SKYRAT EDIT -- BS delete sparks. Original was just qdel(object) + var/turf/T = get_turf(object) qdel(object) + if(T && c.prefs.skyrat_toggles & ADMINDEL_ZAP_PREF) + playsound(T, 'sound/magic/Repulse.ogg', 100, 1) + var/datum/effect_system/spark_spread/quantum/sparks = new + sparks.set_up(10, 1, T) + sparks.attach(T) + sparks.start() diff --git a/code/modules/buildmode/submodes/basic.dm b/code/modules/buildmode/submodes/basic.dm index a5abd94fdd0..1bb229368d5 100644 --- a/code/modules/buildmode/submodes/basic.dm +++ b/code/modules/buildmode/submodes/basic.dm @@ -38,7 +38,15 @@ var/turf/T = object T.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) else if(isobj(object)) + // SKYRAT EDIT -- BS delete sparks. Original was just qdel(object) + var/turf/T = get_turf(object) qdel(object) + if(T && c.prefs.skyrat_toggles & ADMINDEL_ZAP_PREF) + playsound(T, 'sound/magic/Repulse.ogg', 100, 1) + var/datum/effect_system/spark_spread/quantum/sparks = new + sparks.set_up(10, 1, T) + sparks.attach(T) + sparks.start() return else if(istype(object,/turf) && alt_click && left_click) log_admin("Build Mode: [key_name(c)] built an airlock at [AREACOORD(object)]") diff --git a/code/modules/buildmode/submodes/delete.dm b/code/modules/buildmode/submodes/delete.dm index 8a4129fc40f..dad3ff33f3b 100644 --- a/code/modules/buildmode/submodes/delete.dm +++ b/code/modules/buildmode/submodes/delete.dm @@ -15,7 +15,15 @@ var/turf/T = object T.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) else if(isatom(object)) + // SKYRAT EDIT -- BS delete sparks. Original was just qdel(object) + var/turf/T = get_turf(object) qdel(object) + if(T && c.prefs.skyrat_toggles & ADMINDEL_ZAP_PREF) + playsound(T, 'sound/magic/Repulse.ogg', 100, 1) + var/datum/effect_system/spark_spread/quantum/sparks = new + sparks.set_up(10, 1, T) + sparks.attach(T) + sparks.start() if(LAZYACCESS(modifiers, RIGHT_CLICK)) if(check_rights(R_DEBUG|R_SERVER)) //Prevents buildmoded non-admins from breaking everything. diff --git a/modular_skyrat/modules/verbs/code/modules/client/preferences_toggles.dm b/modular_skyrat/modules/verbs/code/modules/client/preferences_toggles.dm index cc2abd1a36d..dac3338d6b7 100644 --- a/modular_skyrat/modules/verbs/code/modules/client/preferences_toggles.dm +++ b/modular_skyrat/modules/verbs/code/modules/client/preferences_toggles.dm @@ -7,3 +7,14 @@ usr.client.prefs.save_preferences() to_chat(usr, "You will [(usr.client.prefs.skyrat_toggles & CHAT_LOOC) ? "now" : "no longer"] see messages on the LOOC channel.") SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle Seeing LOOC", "[usr.client.prefs.skyrat_toggles & CHAT_LOOC ? "Enabled" : "Disabled"]")) + +/client/verb/admin_delete_zap_pref() + set name = "Toggle Delete Sparks" + set category = "Preferences.Admin" + set desc = "Toggles the appearance of bluespace zaps when you use the Delete command on stuff. Also applies to simple/advanced/del buildmode." + if(!holder) + return + usr.client.prefs.skyrat_toggles ^= ADMINDEL_ZAP_PREF + usr.client.prefs.save_preferences() + to_chat(usr, "There will [(usr.client.prefs.skyrat_toggles & ADMINDEL_ZAP_PREF) ? "now" : "no longer"] be bluespace sparks when you Delete objects.") + SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle Delete Sparks", "[usr.client.prefs.skyrat_toggles & ADMINDEL_ZAP_PREF ? "Enabled" : "Disabled"]"))