Adds a new admin smite (#22292)

* infectious wibbly

* Update wibblification.dm
This commit is contained in:
Molti
2024-07-06 15:40:07 -05:00
committed by GitHub
parent 8ae0687b80
commit 0e8f67347c
5 changed files with 37 additions and 2 deletions

View File

@@ -87,6 +87,7 @@
#define ADMIN_PUNISHMENT_SMSPIDER "SM Spider"
#define ADMIN_PUNISHMENT_FLASHBANG "Flashbang"
#define ADMIN_PUNISHMENT_WIBBLY "Wibblify"
#define ADMIN_PUNISHMENT_WIBBLY_VIRUS "Wibblify (infectious)"
#define ADMIN_PUNISHMENT_BACKROOMS "Backrooms"
#define AHELP_ACTIVE 1

View File

@@ -295,7 +295,7 @@ GLOBAL_LIST_INIT(master_filter_info, list(
if(!isnull(flags))
.["flags"] = flags
/proc/apply_wibbly_filters(atom/in_atom, length)
/proc/apply_wibbly_filters(atom/in_atom)
for(var/i in 1 to 7)
//This is a very baffling and strange way of doing this but I am just preserving old functionality
var/X

View File

@@ -0,0 +1,28 @@
/datum/disease/wibblification
name = "Wibblification"
desc = "If left untreated the subject will become very wibbly."
agent = "the weight of the universe"
max_stages = 3
viable_mobtypes = list(/mob/living)
bypasses_immunity = TRUE //pick a god and pray
severity = DISEASE_SEVERITY_BIOHAZARD
disease_flags = CAN_CARRY
spread_flags = DISEASE_SPREAD_CONTACT_SKIN
infectable_biotypes = ALL_BIOTYPES
var/previous_chat = 0
/datum/disease/wibblification/stage_act()
..()
if(previous_chat < stage) //only do the effect once
previous_chat = stage
switch(stage)
if(2)
to_chat(affected_mob, span_warning("You feel a little... wibbly?"))
if(3)
to_chat(affected_mob, span_warning("Something feels very... wibbly!"))
apply_wibbly_filters(affected_mob)
/datum/disease/wibblification/cure(add_resistance) //this ain't happening, but if it does
. = ..()
if(affected_mob)
remove_wibbly_filters(affected_mob)

View File

@@ -1148,6 +1148,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
ADMIN_PUNISHMENT_SMSPIDER,
ADMIN_PUNISHMENT_FLASHBANG,
ADMIN_PUNISHMENT_WIBBLY,
ADMIN_PUNISHMENT_WIBBLY_VIRUS,
ADMIN_PUNISHMENT_BACKROOMS)
var/punishment = input("Choose a punishment", "DIVINE SMITING") as null|anything in punishment_list
@@ -1333,8 +1334,12 @@ Traitors and the like can also be revived with the previous role mostly intact.
chucklenuts.flash_act()
if(ADMIN_PUNISHMENT_WIBBLY)
apply_wibbly_filters(target, 888)
apply_wibbly_filters(target)
to_chat(target, span_warning("Something feels very... wibbly!"))
if(ADMIN_PUNISHMENT_WIBBLY_VIRUS)
var/datum/disease/D = new /datum/disease/wibblification()
target.ForceContractDisease(D, FALSE, TRUE)
if(ADMIN_PUNISHMENT_BACKROOMS)
INVOKE_ASYNC(target, TYPE_PROC_REF(/mob/living, clip_into_backrooms))

View File

@@ -710,6 +710,7 @@
#include "code\datums\diseases\sleepy.dm"
#include "code\datums\diseases\transformation.dm"
#include "code\datums\diseases\tuberculosis.dm"
#include "code\datums\diseases\wibblification.dm"
#include "code\datums\diseases\wizarditis.dm"
#include "code\datums\diseases\advance\advance.dm"
#include "code\datums\diseases\advance\presets.dm"