diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm
index 20dc45099c..ed996e3f1e 100644
--- a/code/game/objects/effects/decals/Cleanable/humans.dm
+++ b/code/game/objects/effects/decals/Cleanable/humans.dm
@@ -114,13 +114,19 @@ var/global/list/image/splatter_cache=list()
amount = 2
/obj/effect/decal/cleanable/blood/drip
- name = "drips of blood"
- desc = "It's red."
- gender = PLURAL
- icon = 'icons/effects/drip.dmi'
- icon_state = "1"
- random_icon_states = list("1","2","3","4","5")
- amount = 0
+ name = "drips of blood"
+ desc = "It's red."
+ gender = PLURAL
+ icon = 'icons/effects/drip.dmi'
+ icon_state = "1"
+ random_icon_states = list("1","2","3","4","5")
+ amount = 0
+ var/list/drips = list()
+
+/obj/effect/decal/cleanable/blood/drip/New()
+ ..()
+ spawn(1)
+ drips |= icon_state
/obj/effect/decal/cleanable/blood/writing
icon_state = "tracks"
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 9c3acb9c78..f090d8665d 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -653,6 +653,7 @@ var/global/floorIsLava = 0
Ghost Mode
Make all players retarded
Make all items look like guns
+ Paintball Mode
Japanese Animes Mode
Egalitarian Station Mode
Launch a shuttle
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index bb1416dac0..7c2a12e1d5 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -2399,6 +2399,16 @@
W.item_color = "schoolgirl"
message_admins("[key_name_admin(usr)] activated Japanese Animes mode")
world << sound('sound/AI/animes.ogg')
+ if("paintball")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","PB")
+ for(var/species in all_species)
+ var/datum/species/S = all_species[species]
+ S.blood_color = "rainbow"
+ for(var/obj/effect/decal/cleanable/blood/B in world)
+ B.basecolor = "rainbow"
+ B.update_icon()
+ message_admins("[key_name_admin(usr)] activated Paintball mode")
if("eagles")//SCRAW
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","EgL")
diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm
index 8d4144a550..067ef6a42e 100644
--- a/code/modules/organs/blood.dm
+++ b/code/modules/organs/blood.dm
@@ -290,29 +290,24 @@ proc/blood_splatter(var/target,var/datum/reagent/blood/source,var/large)
source.data["blood_type"] = donor.dna.b_type
// Are we dripping or splattering?
- if(!large)
-
- // Only a certain number of drips can be on a given turf.
- var/list/drips = list()
- var/list/drip_icons = list("1","2","3","4","5")
-
- for(var/obj/effect/decal/cleanable/blood/drip/drop in T)
- drips += drop
- drip_icons.Remove(drop.icon_state)
-
- // If we have too many drips, remove them and spawn a proper blood splatter.
- if(drips.len >= 5)
- //TODO: copy all virus data from drips to new splatter?
- for(var/obj/effect/decal/cleanable/blood/drip/drop in drips)
- del drop
- else
- decal_type = /obj/effect/decal/cleanable/blood/drip
+ var/list/drips = list()
+ // Only a certain number of drips (or one large splatter) can be on a given turf.
+ for(var/obj/effect/decal/cleanable/blood/drip/drop in T)
+ drips |= drop.drips
+ del(drop)
+ if(!large && drips.len < 3)
+ decal_type = /obj/effect/decal/cleanable/blood/drip
// Find a blood decal or create a new one.
B = locate(decal_type) in T
if(!B)
B = new decal_type(T)
+ var/obj/effect/decal/cleanable/blood/drip/drop = B
+ if(istype(drop) && drips && drips.len && !large)
+ drop.overlays |= drips
+ drop.drips |= drips
+
// If there's no data to copy, call it quits here.
if(!source)
return B
@@ -330,11 +325,7 @@ proc/blood_splatter(var/target,var/datum/reagent/blood/source,var/large)
else
B.blood_DNA[source.data["blood_DNA"]] = "O+"
- // Update virus information. //Looks like this is out of date.
- //for(var/datum/disease/D in source.data["viruses"])
- // var/datum/disease/new_virus = D.Copy(1)
- // source.viruses += new_virus
- // new_virus.holder = B
+ // Update virus information.
if(source.data["virus2"])
B.virus2 = virus_copylist(source.data["virus2"])