diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index b9d460d430a..952afff467a 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -94,7 +94,9 @@ var/list/admin_verbs_fun = list( /client/proc/forceEvent, /client/proc/bluespace_artillery, /client/proc/admin_change_sec_level, - /client/proc/toggle_nuke + /client/proc/toggle_nuke, + /client/proc/mass_zombie_infection, + /client/proc/polymorph_all ) var/list/admin_verbs_spawn = list( /datum/admins/proc/spawn_atom, /*allows us to spawn instances*/ diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index c446f16244a..f241b9de3b6 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -992,3 +992,63 @@ var/list/datum/outfit/custom_outfits = list() //Admin created outfits for(var/obj/machinery/shuttle_manipulator/M in machines) M.ui_interact(usr) + +/client/proc/mass_zombie_infection() + set category = "Fun" + set name = "Mass Zombie Infection" + set desc = "Infects all humans with a latent organ that will zombify \ + them on death." + + if(!holder) + return + + var/confirm = alert(src, "Please confirm you want to add latent zombie organs in all humans?", "Confirm Zombies", "Yes", "No") + if(confirm != "Yes") + return + + for(var/mob/living/carbon/human/H in mob_list) + new /obj/item/organ/body_egg/zombie_infection(H) + + message_admins("[key_name_admin(usr)] added a latent zombie infection to all humans.") + log_admin("[key_name(usr)] added a latent zombie infection to all humans.") + feedback_add_details("admin_verb","MZI") + +/client/proc/polymorph_all() + set category = "Fun" + set name = "Polymorph All" + set desc = "Applies the effects of the bolt of change to every single mob." + + if(!holder) + return + + var/confirm = alert(src, "Please confirm you want polymorph all mobs?", "Confirm Polymorph", "Yes", "No") + if(confirm != "Yes") + return + + var/keep_name = alert(src, "Do you want mobs to retain their names?", "Keep The Names?", "Yes", "No") + + var/list/mobs = shuffle(living_mob_list.Copy()) // might change while iterating + var/who_did_it = key_name_admin(usr) + spawn(5) // let other things clear this tick + for(var/mob/living/M in mobs) + CHECK_TICK + + if(!M || !M.name || !M.real_name) + continue + + M.audible_message("...wabbajack...wabbajack...") + playsound(M.loc, 'sound/magic/Staff_Change.ogg', 50, 1, -1) + var/name = M.name + var/real_name = M.real_name + + var/mob/living/new_mob = wabbajack(M) + if(keep_name == "Yes" && new_mob) + new_mob.name = name + new_mob.real_name = real_name + + + message_admins("Mass polymorph started by [who_did_it] is complete.") + + message_admins("[key_name_admin(usr)] started polymorphed all living mobs.") + log_admin("[key_name(usr)] polymorphed all living mobs.") + feedback_add_details("admin_verb","MASSWABBAJACK")