diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 97f07acc05..c10b10d3d2 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -81,6 +81,7 @@ #define ADMIN_PUNISHMENT_PICKLE "Pickle-ify" #define ADMIN_PUNISHMENT_FRY "Fry" #define ADMIN_PUNISHMENT_PERFORATE ":B:erforate" +#define ADMIN_PUNISHMENT_GOODBYE "Their final message" //sandstorm #define AHELP_ACTIVE 1 #define AHELP_CLOSED 2 diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 3bcaa89624..38b4af3a6d 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1298,7 +1298,8 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits ADMIN_PUNISHMENT_FRY, ADMIN_PUNISHMENT_CRACK, ADMIN_PUNISHMENT_BLEED, - ADMIN_PUNISHMENT_SCARIFY) + ADMIN_PUNISHMENT_SCARIFY, + ADMIN_PUNISHMENT_GOODBYE) var/punishment = input("Choose a punishment", "DIVINE SMITING") as null|anything in punishment_list @@ -1464,6 +1465,13 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits to_chat(usr,"[C] does not have knottable shoes!") return sick_kicks.adjust_laces(SHOES_KNOTTED) + if(ADMIN_PUNISHMENT_GOODBYE) //sandstorm punish :) it starts here + var/mob/living/C = target + if(C.stat == DEAD) + to_chat(usr, "[C] is dead!") + return + else + C.pregoodbye(C) //sandstorm punish and ends here. punish_log(target, punishment) diff --git a/sandcode/code/modules/mob/living/carbon/carbon.dm b/sandcode/code/modules/mob/living/carbon/carbon.dm new file mode 100644 index 0000000000..587c5d6206 --- /dev/null +++ b/sandcode/code/modules/mob/living/carbon/carbon.dm @@ -0,0 +1,29 @@ +//It's here so it doesn't make a big mess on randomverbs.dm, +//also because of this you can proccall it, why would you if you have smite? +/mob/living/proc/pregoodbye(C) + if(isanimal(C)) + var/mob/living/simple_animal/D = C + D.AIStatus = AI_OFF + Immobilize(1000, TRUE, TRUE)// currently the only ways of + next_action_immediate = 10000000000 // completely freezing someone as i know + playsound(C, "sandcode/sound/effects/admin_punish/changetheworld.ogg", 100, FALSE) + say("Change the world") + sleep(20) + playsound(C, "sandcode/sound/effects/admin_punish/myfinalmessage.ogg", 100, FALSE) + say("My final message") + sleep(20) + playsound(C, "sandcode/sound/effects/admin_punish/goodbye.ogg", 100, FALSE) + say("Goodbye.") + sleep(20) + playsound(C, "sandcode/sound/effects/admin_punish/endjingle.ogg", 100, FALSE) + goodbye() + +/mob/living/proc/goodbye() //this must be separate because it's a loop! + if(alpha <= 10) + sleep(2) + ghostize() + Destroy() + else + alpha = alpha - 7 + sleep(1) + goodbye() diff --git a/sandcode/sound/effects/admin_punish/changetheworld.ogg b/sandcode/sound/effects/admin_punish/changetheworld.ogg new file mode 100644 index 0000000000..2f82443409 Binary files /dev/null and b/sandcode/sound/effects/admin_punish/changetheworld.ogg differ diff --git a/sandcode/sound/effects/admin_punish/endjingle.ogg b/sandcode/sound/effects/admin_punish/endjingle.ogg new file mode 100644 index 0000000000..82f90ea382 Binary files /dev/null and b/sandcode/sound/effects/admin_punish/endjingle.ogg differ diff --git a/sandcode/sound/effects/admin_punish/goodbye.ogg b/sandcode/sound/effects/admin_punish/goodbye.ogg new file mode 100644 index 0000000000..6b53a70f31 Binary files /dev/null and b/sandcode/sound/effects/admin_punish/goodbye.ogg differ diff --git a/sandcode/sound/effects/admin_punish/myfinalmessage.ogg b/sandcode/sound/effects/admin_punish/myfinalmessage.ogg new file mode 100644 index 0000000000..f58bf19d83 Binary files /dev/null and b/sandcode/sound/effects/admin_punish/myfinalmessage.ogg differ diff --git a/tgstation.dme b/tgstation.dme index baa588c898..4422070f96 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3670,6 +3670,7 @@ #include "sandcode\code\modules\mob\living\say.dm" #include "sandcode\code\modules\mob\living\ssd_indicator.dm" #include "sandcode\code\modules\mob\living\typing_indicator_overrides.dm" +#include "sandcode\code\modules\mob\living\carbon\carbon.dm" #include "sandcode\code\modules\mob\living\carbon\give.dm" #include "sandcode\code\modules\mob\living\carbon\show.dm" #include "sandcode\code\modules\mob\living\carbon\human\human.dm"