mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Adds a new admin smite (#22292)
* infectious wibbly * Update wibblification.dm
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
28
code/datums/diseases/wibblification.dm
Normal file
28
code/datums/diseases/wibblification.dm
Normal 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)
|
||||
@@ -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))
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user