Bullies janitor mains - Makes walking on tiles slowly make them dirty

This commit is contained in:
deathride58
2017-11-24 01:56:18 -05:00
parent 9f7b3a11c3
commit a85ef09c68
2 changed files with 46 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
//Yes, hi. This is the file that handles Citadel's turf modifications.
/turf/open/floor/Entered(atom/obj, atom/oldloc)
. = ..()
CitDirtify(obj, oldloc)
//Baystation-styled tile dirtification. Except 31 lines more complex than it probably has to be.
/turf/open/floor/proc/CitDirtify(atom/obj, atom/oldloc)
if(prob(50))
if(has_gravity(src) && !isobserver(obj))
var/dirtamount
var/obj/effect/decal/cleanable/dirt/dirt = locate(/obj/effect/decal/cleanable/dirt, src)
if(!dirt)
dirt = new/obj/effect/decal/cleanable/dirt(src)
dirt.alpha = 0
dirtamount = 0
dirtamount = dirt.alpha + 1
if(oldloc && istype(oldloc, /turf/open/floor))
var/obj/effect/decal/cleanable/dirt/spreadindirt = locate(/obj/effect/decal/cleanable/dirt, oldloc)
if(spreadindirt && spreadindirt.alpha)
dirtamount += round(spreadindirt.alpha * 0.05)
dirtamount = min(dirtamount,255)
var/mob/living/carbon/human/H = obj
if(H && istype(H, /mob/living/carbon/human))
var/obj/item/clothing/shoes/S = H.shoes
if(S && !(S.blood_state == BLOOD_STATE_NOT_BLOODY))
if(!dirt.atom_colours || !dirt.atom_colours.len)
dirt.add_atom_colour(color_matrix_identity(), FIXED_COLOUR_PRIORITY)
var/list/origdirtcolor = dirt.atom_colours[FIXED_COLOUR_PRIORITY]
var/list/colordirt = color_matrix_identity()
switch(S.blood_state)
if(BLOOD_STATE_HUMAN)
dirt.remove_atom_colour(FIXED_COLOUR_PRIORITY)
colordirt = list(0,0,0,0, 0,-0.15,0,0, 0,0,-0.15,0, 0,0,0,0, 0,0,0,0)
dirt.add_atom_colour(color_matrix_add(origdirtcolor, colordirt), FIXED_COLOUR_PRIORITY)
dirt.alpha = dirtamount
if(BLOOD_STATE_XENO)
dirt.remove_atom_colour(FIXED_COLOUR_PRIORITY)
colordirt = list(-0.15,0,0,0, 0,0,0,0, 0,0,-0.15,0, 0,0,0,0, 0,0,0,0)
dirt.add_atom_colour(color_matrix_add(origdirtcolor, colordirt), FIXED_COLOUR_PRIORITY)
if(BLOOD_STATE_OIL)
dirt.remove_atom_colour(FIXED_COLOUR_PRIORITY)
colordirt = list(-0.15,0,0,0, 0,-0.15,0,0, 0,0,-0.15,0, 0,0,0,0, 0,0,0,0)
dirt.add_atom_colour(color_matrix_add(origdirtcolor, colordirt), FIXED_COLOUR_PRIORITY)
dirt.alpha = dirtamount
return TRUE
+1
View File
@@ -2402,4 +2402,5 @@
#include "interface\skin.dmf"
#include "modular_citadel\cit_medkits.dm"
#include "modular_citadel\cit_screenshake.dm"
#include "modular_citadel\cit_turfs.dm"
// END_INCLUDE