admin smites
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
/client/proc/breadify(atom/movable/target)
|
||||
var/obj/item/reagent_containers/food/snacks/store/bread/plain/funnyBread = new(get_turf(target))
|
||||
target.forceMove(funnyBread)
|
||||
|
||||
GLOBAL_LIST_EMPTY(transformation_animation_objects)
|
||||
/*
|
||||
* Creates animation that turns current icon into result appearance from top down.
|
||||
*
|
||||
* result_appearance - End result appearance/atom/image
|
||||
* time - Animation duration
|
||||
* transform_overlay - Appearance/atom/image of effect that moves along the animation - should be horizonatally centered
|
||||
* reset_after - If FALSE, filters won't be reset and helper vis_objects will not be removed after animation duration expires. Cleanup must be handled by the caller!
|
||||
*/
|
||||
/atom/movable/proc/transformation_animation(result_appearance,time = 3 SECONDS,transform_overlay,reset_after=TRUE)
|
||||
var/list/transformation_objects = GLOB.transformation_animation_objects[src] || list()
|
||||
//Disappearing part
|
||||
var/top_part_filter = filter(type="alpha",icon=icon('icons/effects/alphacolors.dmi',"white"),y=0)
|
||||
filters += top_part_filter
|
||||
var/filter_index = length(filters)
|
||||
animate(filters[filter_index],y=-32,time=time)
|
||||
//Appearing part
|
||||
var/obj/effect/overlay/appearing_part = new
|
||||
appearing_part.appearance = result_appearance
|
||||
appearing_part.appearance_flags |= KEEP_TOGETHER | KEEP_APART
|
||||
appearing_part.vis_flags = VIS_INHERIT_ID
|
||||
appearing_part.filters = filter(type="alpha",icon=icon('icons/effects/alphacolors.dmi',"white"),y=0,flags=MASK_INVERSE)
|
||||
animate(appearing_part.filters[1],y=-32,time=time)
|
||||
transformation_objects += appearing_part
|
||||
//Transform effect thing - todo make appearance passed in
|
||||
if(transform_overlay)
|
||||
var/obj/transform_effect = new
|
||||
transform_effect.appearance = transform_overlay
|
||||
transform_effect.vis_flags = VIS_INHERIT_ID
|
||||
transform_effect.pixel_y = 16
|
||||
transform_effect.alpha = 255
|
||||
transformation_objects += transform_effect
|
||||
animate(transform_effect,pixel_y=-16,time=time)
|
||||
animate(alpha=0)
|
||||
GLOB.transformation_animation_objects[src] = transformation_objects
|
||||
for(var/A in transformation_objects)
|
||||
vis_contents += A
|
||||
if(reset_after)
|
||||
addtimer(CALLBACK(src,.proc/_reset_transformation_animation,filter_index),time)
|
||||
/*
|
||||
* Resets filters and removes transformation animations helper objects from vis contents.
|
||||
*/
|
||||
/atom/movable/proc/_reset_transformation_animation(filter_index)
|
||||
var/list/transformation_objects = GLOB.transformation_animation_objects[src]
|
||||
for(var/A in transformation_objects)
|
||||
vis_contents -= A
|
||||
qdel(A)
|
||||
transformation_objects.Cut()
|
||||
GLOB.transformation_animation_objects -= src
|
||||
if(filters && length(filters) >= filter_index)
|
||||
filters -= filters[filter_index]
|
||||
//else
|
||||
// filters = null
|
||||
@@ -93,6 +93,9 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/command/bridge, /area/mainten
|
||||
return FALSE
|
||||
|
||||
switch(type_of_fattening)
|
||||
if(FATTENING_TYPE_ALMIGHTY)
|
||||
return TRUE
|
||||
|
||||
if(FATTENING_TYPE_ITEM)
|
||||
if(!client?.prefs?.weight_gain_items)
|
||||
return FALSE
|
||||
|
||||
@@ -87,6 +87,11 @@
|
||||
#define ADMIN_PUNISHMENT_FRY "Fry"
|
||||
#define ADMIN_PUNISHMENT_PERFORATE ":B:erforate"
|
||||
#define ADMIN_PUNISHMENT_CLUWNE "Cluwne"
|
||||
// GS13 PUNISHMENTS
|
||||
#define ADMIN_PUNISHMENT_BONK "Bonk"
|
||||
#define ADMIN_PUNISHMENT_BREADIFY "Breadify"
|
||||
#define ADMIN_PUNISHMENT_FATTEN "Fatten"
|
||||
#define ADMIN_PUNISHMENT_FATTEN_EVIL "Fatten (Permafat)"
|
||||
|
||||
#define AHELP_ACTIVE 1
|
||||
#define AHELP_CLOSED 2
|
||||
|
||||
@@ -588,5 +588,6 @@ GLOBAL_LIST_INIT(pda_reskins, list(
|
||||
#define FATTENING_TYPE_NANITES "nanites"
|
||||
#define FATTENING_TYPE_RADIATIONS "radiations"
|
||||
#define FATTENING_TYPE_WEIGHT_LOSS "weight_loss"
|
||||
#define FATTENING_TYPE_ALMIGHTY "almighty" //This ignores prefs, please only use this for smites and other admin controlled instances.
|
||||
|
||||
#define FATNESS_TO_WEIGHT_RATIO 0.25
|
||||
|
||||
@@ -1335,6 +1335,12 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
ADMIN_PUNISHMENT_FRY,
|
||||
ADMIN_PUNISHMENT_CRACK,
|
||||
ADMIN_PUNISHMENT_BLEED,
|
||||
//GS13 EDIT START
|
||||
ADMIN_PUNISHMENT_BONK,
|
||||
ADMIN_PUNISHMENT_BREADIFY,
|
||||
ADMIN_PUNISHMENT_FATTEN,
|
||||
ADMIN_PUNISHMENT_FATTEN_EVIL,
|
||||
//GS13 EDIT END
|
||||
ADMIN_PUNISHMENT_SCARIFY,
|
||||
ADMIN_PUNISHMENT_CLUWNE)
|
||||
|
||||
@@ -1507,6 +1513,35 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
to_chat(usr,"<span class='warning'>This must be used on a carbon mob.</span>")
|
||||
return
|
||||
target.cluwneify()
|
||||
// GS13 EDIT START
|
||||
if(ADMIN_PUNISHMENT_BONK)
|
||||
playsound(target, 'hyperstation/sound/misc/bonk.ogg', 100, 1)
|
||||
target.AddElement(/datum/element/squish, 60 SECONDS)
|
||||
to_chat(target, "<span class='warning big'>Bonk.</span>")
|
||||
if(ADMIN_PUNISHMENT_BREADIFY)
|
||||
#define BREADIFY_TIME (5 SECONDS)
|
||||
var/mutable_appearance/bread_appearance = mutable_appearance('icons/obj/food/burgerbread.dmi', "bread")
|
||||
var/mutable_appearance/transform_scanline = mutable_appearance('icons/effects/effects.dmi', "transform_effect")
|
||||
target.transformation_animation(bread_appearance, time = BREADIFY_TIME, transform_overlay=transform_scanline, reset_after=TRUE)
|
||||
addtimer(CALLBACK(src, PROC_REF(breadify), target), BREADIFY_TIME)
|
||||
#undef BREADIFY_TIME
|
||||
if(ADMIN_PUNISHMENT_FATTEN)
|
||||
var/mob/living/carbon/human/human_target = target
|
||||
if(!istype(human_target))
|
||||
to_chat(usr,"<span class='warning'>This must be used on a carbon mob.</span>")
|
||||
return
|
||||
human_target.adjust_fatness(10000, FATTENING_TYPE_ALMIGHTY, TRUE) // MR ELECTRIC, SEND HIM TO THE ADMIN JAIL AND HAVE HIM FATTENED!
|
||||
to_chat(target, span_boldwarning("You suddenly feel incredibly fat."))
|
||||
if(ADMIN_PUNISHMENT_FATTEN_EVIL)
|
||||
var/mob/living/carbon/human/human_target = target
|
||||
if(!istype(human_target))
|
||||
to_chat(usr,"<span class='warning'>This must be used on a carbon mob.</span>")
|
||||
return
|
||||
if(!human_target?.client?.prefs?.weight_gain_permanent)
|
||||
return FALSE
|
||||
human_target.fatness_perma += 10000 // Good luck getting this off, fatass.
|
||||
to_chat(target, span_boldwarning("You suddenly feel incredibly fat."))
|
||||
// GS13 EDIT END
|
||||
|
||||
punish_log(target, punishment)
|
||||
|
||||
|
||||
@@ -3904,6 +3904,7 @@
|
||||
#include "code\modules\zombie\items.dm"
|
||||
#include "code\modules\zombie\organs.dm"
|
||||
#include "GainStation13\code\__HELPERS\global_lists.dm"
|
||||
#include "GainStation13\code\__HELPERS\transformation.dm"
|
||||
#include "GainStation13\code\clothing\accessory.dm"
|
||||
#include "GainStation13\code\clothing\backpacks.dm"
|
||||
#include "GainStation13\code\clothing\calorite_collar.dm"
|
||||
|
||||
Reference in New Issue
Block a user