diff --git a/code/__defines/admin_vr.dm b/code/__defines/admin_vr.dm index bd3cdd9fd8..62c4add906 100644 --- a/code/__defines/admin_vr.dm +++ b/code/__defines/admin_vr.dm @@ -2,3 +2,4 @@ #define SMITE_SHADEKIN_NOMF "Shadekin (Devour)" #define SMITE_REDSPACE_ABDUCT "Redspace Abduction" #define SMITE_AUTOSAVE "10 Second Autosave" +#define SMITE_AUTOSAVE_WIDE "10 Second Autosave (AoE)" diff --git a/code/modules/admin/verbs/smite_vr.dm b/code/modules/admin/verbs/smite_vr.dm index 71fc821b1d..fb52f18b50 100644 --- a/code/modules/admin/verbs/smite_vr.dm +++ b/code/modules/admin/verbs/smite_vr.dm @@ -8,7 +8,7 @@ if(!istype(target)) return - var/list/smite_types = list(SMITE_SHADEKIN_ATTACK,SMITE_SHADEKIN_NOMF,SMITE_REDSPACE_ABDUCT,SMITE_AUTOSAVE) + var/list/smite_types = list(SMITE_SHADEKIN_ATTACK,SMITE_SHADEKIN_NOMF,SMITE_REDSPACE_ABDUCT,SMITE_AUTOSAVE,SMITE_AUTOSAVE_WIDE) var/smite_choice = input("Select the type of SMITE for [target]","SMITE Type Choice") as null|anything in smite_types if(!smite_choice) @@ -125,6 +125,9 @@ if(SMITE_AUTOSAVE) fake_autosave(target, src) + if(SMITE_AUTOSAVE_WIDE) + fake_autosave(target, src, TRUE) + else return //Injection? Don't print any messages. @@ -215,9 +218,14 @@ var/redspace_abduction_z target.transforming = FALSE -/proc/fake_autosave(mob/living/target, user) +/proc/fake_autosave(var/mob/living/target, var/client/user, var/wide) if(!istype(target) || !target.client) - to_chat(user, "Not a living mob or no client, so no point!") + to_chat(user, "Skipping [target] because they are not a /mob/living or have no client.") + return + + if(wide) + for(var/mob/living/L in orange(user.view, user.mob)) + fake_autosave(L, user) return target.move_delay = 99999999 diff --git a/icons/obj/discs_vr.dmi b/icons/obj/discs_vr.dmi index f2d511fc49..90c5a7e0c9 100644 Binary files a/icons/obj/discs_vr.dmi and b/icons/obj/discs_vr.dmi differ