diff --git a/code/__defines/admin_vr.dm b/code/__defines/admin_vr.dm index 6e5e8c1a9b..bd3cdd9fd8 100644 --- a/code/__defines/admin_vr.dm +++ b/code/__defines/admin_vr.dm @@ -1,3 +1,4 @@ #define SMITE_SHADEKIN_ATTACK "Shadekin (Attack)" #define SMITE_SHADEKIN_NOMF "Shadekin (Devour)" #define SMITE_REDSPACE_ABDUCT "Redspace Abduction" +#define SMITE_AUTOSAVE "10 Second Autosave" diff --git a/code/modules/admin/verbs/smite_vr.dm b/code/modules/admin/verbs/smite_vr.dm index b0d4b8aa8c..71fc821b1d 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) + var/list/smite_types = list(SMITE_SHADEKIN_ATTACK,SMITE_SHADEKIN_NOMF,SMITE_REDSPACE_ABDUCT,SMITE_AUTOSAVE) var/smite_choice = input("Select the type of SMITE for [target]","SMITE Type Choice") as null|anything in smite_types if(!smite_choice) @@ -50,7 +50,7 @@ shadekin.death() if(SMITE_SHADEKIN_NOMF) - var/list/kin_types = list( + var/static/list/kin_types = list( "Red Eyes (Dark)" = /mob/living/simple_mob/shadekin/red/dark, "Red Eyes (Light)" = /mob/living/simple_mob/shadekin/red/white, "Red Eyes (Brown)" = /mob/living/simple_mob/shadekin/red/brown, @@ -122,6 +122,9 @@ if(SMITE_REDSPACE_ABDUCT) redspace_abduction(target, src) + if(SMITE_AUTOSAVE) + fake_autosave(target, src) + else return //Injection? Don't print any messages. @@ -211,3 +214,42 @@ var/redspace_abduction_z to_chat(user,"The mob has been moved. ([admin_jump_link(target,usr.client.holder)])") target.transforming = FALSE + +/proc/fake_autosave(mob/living/target, user) + if(!istype(target) || !target.client) + to_chat(user, "Not a living mob or no client, so no point!") + return + + target.move_delay = 99999999 + + to_chat(target, "Autosaving your progress, please wait...") + target << 'sound/effects/ding.ogg' + + var/static/list/bad_tips = list( + "Did you know that black shoes protect you from electrocution while hacking?", + "Did you know that airlocks always have a wire that disables ID checks?", + "You can always find at least 3 pairs of glowing purple gloves in maint!", + "Phoron is not toxic if you've had a soda within 30 seconds of exposure!", + "Space Mountain Wind makes you immune to damage from space for 30 seconds!", + "A mask and air tank are all you need to be safe in space!", + "When exploring maintenance, wearing no shoes makes you move faster!", + "Did you know that the bartender's shotgun is loaded with harmless ammo?", + "Did you know that the tesla and singulo only need containment for 5 minutes?") + + var/tip = pick(bad_tips) + to_chat(target, "Tip of the day:
[tip]") + + var/obj/screen/loader = new(target) + loader.name = "Autosaving..." + loader.desc = "A disc icon that represents your game autosaving. Please wait." + loader.icon = 'icons/obj/discs_vr.dmi' + loader.icon_state = "quicksave" + loader.screen_loc = "NORTH-1, EAST-1" + target.client.screen += loader + + spawn(10 SECONDS) + if(target) + target.move_delay = 0 + to_chat(target, "Autosave complete!") + if(target.client) + target.client.screen -= loader diff --git a/icons/obj/discs_vr.dmi b/icons/obj/discs_vr.dmi index 7e9eb8a4ca..f2d511fc49 100644 Binary files a/icons/obj/discs_vr.dmi and b/icons/obj/discs_vr.dmi differ