diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm
index d8ab92f3d53..e9b602043bc 100644
--- a/code/game/objects/effects/decals/Cleanable/humans.dm
+++ b/code/game/objects/effects/decals/Cleanable/humans.dm
@@ -384,3 +384,17 @@
spawn(DRYING_TIME * 2)
dry=1
+/obj/effect/decal/cleanable/blood/viralsputum
+ name = "viral sputum"
+ desc = "It's black and nasty."
+// basecolor="#030303"
+ icon = 'icons/mob/robots.dmi'
+ icon_state = "floor1"
+ random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7")
+
+ Del()
+ for(var/datum/disease/D in viruses)
+ D.cure(0)
+ ..()
+
+
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 31e8e7dc6eb..7655de69577 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -406,6 +406,39 @@
viewers(user) << "[user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide."
return (BRUTELOSS|OXYLOSS)
+
+
+
+/*
+ * Snap pops viral shit
+ */
+/obj/item/toy/snappop/virus
+ name = "unstable goo"
+ desc = "Your palm is oozing this stuff!"
+ icon = 'icons/mob/slimes.dmi'
+ icon_state = "red slime extract"
+ throwforce = 30.0
+ throw_speed = 10
+ throw_range = 30
+ w_class = 1
+
+
+ throw_impact(atom/hit_atom)
+ ..()
+ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
+ s.set_up(3, 1, src)
+ s.start()
+ new /obj/effect/decal/cleanable/ash(src.loc)
+ src.visible_message("\red The [src.name] explodes!","\red You hear a bang!")
+
+
+ playsound(src, 'sound/effects/snap.ogg', 50, 1)
+ del(src)
+
+
+
+
+
/*
* Snap pops
*/
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index 9a74f545e96..1b777e0f24f 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -90,6 +90,15 @@
item_state = "sunglasses"
darkness_view = -1
+
+/obj/item/clothing/glasses/virussunglasses
+ desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes."
+ name = "sunglasses"
+ icon_state = "sun"
+ item_state = "sunglasses"
+ darkness_view = -1
+
+
/obj/item/clothing/glasses/welding
name = "welding goggles"
desc = "Protects the eyes from welders, approved by the mad scientist association."
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index 47362ed8a2e..708e0e977fe 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -105,6 +105,14 @@
M << "Your Clown Mask has now morphed into [choice], all praise the Honk Mother!"
return 1
+
+/obj/item/clothing/mask/gas/virusclown_hat
+ name = "clown wig and mask"
+ desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask."
+ icon_state = "clown"
+ item_state = "clown_hat"
+
+
/obj/item/clothing/mask/gas/sexyclown
name = "sexy-clown wig and mask"
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm
index 2a4eb67cec0..d0e793a3882 100644
--- a/code/modules/virus2/effect.dm
+++ b/code/modules/virus2/effect.dm
@@ -72,6 +72,8 @@
activate(var/mob/living/carbon/mob,var/multiplier)
return
+
+
////////////////////////STAGE 4/////////////////////////////////
/datum/disease2/effect/gibbingtons
@@ -158,6 +160,9 @@
for (var/datum/organ/external/C in E.children)
C.status &= ~ORGAN_DEAD
+
+
+
/datum/disease2/effect/immortal
name = "Longevity Syndrome"
stage = 4
@@ -223,6 +228,182 @@
for (var/datum/organ/external/E in H.organs)
E.min_broken_damage = initial(E.min_broken_damage)
+
+
+
+
+
+
+/datum/disease2/effect/scc
+ name = "Spontaneous Cellular Collapse"
+ stage = 4
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ //
+ var/mob/living/carbon/human/H = mob
+ mob.reagents.add_reagent("pacid", 10)
+ mob << " Your body burns as your cells break down."
+ shake_camera(mob,5*multiplier)
+
+ for (var/datum/organ/external/E in H.organs)
+ if(pick(1,0))
+ //
+ E.createwound(CUT, pick(2,4,6,8,10))
+ E.fracture()
+
+
+
+
+
+/datum/disease2/effect/necrosis
+ name = "Necrosis"
+ stage = 4
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ //
+ var/mob/living/carbon/human/H = mob
+ //
+ var/inst = pick(1,2,3)
+ switch(inst)
+ if(1)
+ mob << "A chunk of meat falls off you!"
+ var/totalslabs = 1
+ var/obj/item/weapon/reagent_containers/food/snacks/meat/allmeat[totalslabs]
+ if( istype(mob, /mob/living/carbon/human/) )
+ //
+ var/sourcename = mob.real_name
+ var/sourcejob = mob.job
+ var/sourcenutriment = mob.nutrition / 15
+ //var/sourcetotalreagents = mob.reagents.total_volume
+
+ for(var/i=1 to totalslabs)
+ var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat = new
+ newmeat.name = sourcename + newmeat.name
+ newmeat.subjectname = sourcename
+ newmeat.subjectjob = sourcejob
+ newmeat.reagents.add_reagent("nutriment", sourcenutriment / totalslabs) // Thehehe. Fat guys go first
+ //src.occupant.reagents.trans_to(newmeat, round (sourcetotalreagents / totalslabs, 1)) // Transfer all the reagents from the
+ allmeat[i] = newmeat
+
+
+
+ var/obj/item/meatslab = allmeat[i]
+ var/turf/Tx = locate(mob.x, mob.y, mob.z)
+ meatslab.loc = mob.loc
+ meatslab.throw_at(Tx,i,3)
+ if (!Tx.density)
+ new /obj/effect/decal/cleanable/blood/gibs(Tx,i)
+
+
+ if(2)
+ //mob << "\red i dont think i need this here"
+
+ for (var/datum/organ/external/E in H.organs)
+ if(pick(1,0))
+ E.droplimb(1)
+
+
+ if(3)
+ if(H.species.name != "Skellington")
+ mob << " Your necrotic skin ruptures!"
+
+
+ for (var/datum/organ/external/E in H.organs)
+ if(pick(1,0))
+ E.createwound(CUT, pick(2,4,6,8,10))
+
+
+ if(prob(30))
+ //
+
+ if(H.species.name != "Skellington")
+ if(H.set_species("Skellington"))
+ mob << " A massive amount of flesh sloughs off your bones!"
+ H.regenerate_icons()
+ else
+ return
+
+
+
+
+
+/datum/disease2/effect/fizzle
+ name = "Fizzle Effect"
+ stage = 4
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ mob.emote("me",1,pick("sniffles...", "clears their throat..."))
+
+
+
+
+
+/datum/disease2/effect/spawn
+ name = "Arachnogenesis Effect"
+ stage = 4
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ //var/mob/living/carbon/human/H = mob
+ var/placemob = locate(mob.x + pick(1,-1), mob.y, mob.z)
+ playsound(mob.loc, 'sound/effects/splat.ogg', 50, 1)
+
+ new /mob/living/simple_animal/hostile/giant_spider/hunter(placemob)
+ mob.emote("me",1,"vomits up a live spider!")
+
+
+
+/datum/disease2/effect/orbweapon
+ name = "Biolobulin Effect"
+ stage = 4
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ //
+
+ var/obj/item/toy/snappop/virus = new /obj/item/toy/snappop/virus
+ mob.equip_to_slot(virus, slot_l_hand)
+
+
+
+/obj/item/clothing/mask/gas/virusclown_hat
+
+ dropped(mob/user as mob)
+ canremove = 1
+ ..()
+
+ equipped(var/mob/user, var/slot)
+ if (slot == slot_l_hand)
+ canremove = 1 //curses!
+ ..()
+
+
+
+
+/datum/disease2/effect/plasma
+ name = "Toxin Sublimation"
+ stage = 4
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ //var/src = mob
+ var/hack = mob.loc
+ var/turf/simulated/T = get_turf(hack)
+ if(!T)
+ return
+ var/datum/gas_mixture/GM = new
+ if(prob(10))
+ GM.toxins += 100
+ //GM.temperature = 1500+T0C //should be enough to start a fire
+ mob << "\red You exhale a large plume of toxic gas!"
+ else
+ GM.toxins += 10
+ GM.temperature = istype(T) ? T.air.temperature : T20C
+ mob << " A toxic gas emanates from your pores!"
+ T.assume_air(GM)
+ return
+
+
+
+
+
+////////////////////////STAGE 3/////////////////////////////////
+
+
+
+
+
/datum/disease2/effect/toxins
name = "Hyperacidity"
stage = 3
@@ -311,6 +492,161 @@
var/iter = rand(1,2)
for(i=0,iYou feel a little horse!"
+
+
+/obj/item/clothing/mask/horsehead/magic
+ //flags_inv = null //so you can still see their face... no. How can you recognize someone when their face is completely different?
+ voicechange = 1 //NEEEEIIGHH
+
+ dropped(mob/user as mob)
+ canremove = 1
+ ..()
+
+ equipped(var/mob/user, var/slot)
+ if (slot == slot_wear_mask)
+ canremove = 0 //curses!
+ ..()
+
+
+
+
+
+/datum/disease2/effect/spaceadapt
+ name = "Space Adaptation Effect"
+ stage = 3
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ var/mob/living/carbon/human/H = mob
+ mob.reagents.add_reagent("dexalinp", 200)
+ mob.reagents.add_reagent("leporazine", 200)
+ mob.reagents.add_reagent("bicaridine", 200)
+ mob.reagents.add_reagent("dermaline", 200)
+ mob.emote("me",1,"exhales slowly.")
+
+ var/datum/organ/external/chest/chest = H.get_organ("chest")
+ for(var/datum/organ/internal/I in chest.internal_organs)
+ I.damage = 0
+
+
////////////////////////STAGE 2/////////////////////////////////
/datum/disease2/effect/scream
@@ -387,6 +723,90 @@
if (mob.reagents.get_reagent_amount("ethanol") < 325)
mob.reagents.add_reagent("ethanol", 5*multiplier)
+/datum/disease2/effect/gaben
+ name = "Gaben Syndrome"
+ stage = 2
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ mob << "Your clothing fits a little tighter!!"
+ if (prob(10))
+ mob.reagents.add_reagent("nutriment", 1000)
+ mob.overeatduration = 1000
+
+
+
+/datum/disease2/effect/beard
+ name = "Bearding"
+ stage = 2
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ if(istype(mob, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = mob
+ if(H.species.name == "Human" && !(H.f_style == "Full Beard"))
+ H << "Your chin and neck itch!."
+ spawn(50)
+ H.f_style = "Full Beard"
+ H.update_hair()
+
+
+/datum/disease2/effect/poop
+ name = "Uncontrollable Bowel Syndrome"
+ stage = 2
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ if (prob(50))
+ mob << "[pick("Your stomach rumbles strangely.", "You feel like you're going shit your pants any second now!")]"
+
+ else
+ mob.visible_message("[mob] has explosive diarrhea all over the floor!")
+ mob.nutrition -= 20
+ mob.adjustToxLoss(-3)
+ var/obj/effect/decal/cleanable/poop/P = new(get_turf(mob))
+ P.virus2 = virus_copylist(mob.virus2)
+ playsound(P.loc, 'sound/effects/splat.ogg', 50, 1)
+
+
+
+
+/datum/disease2/effect/bloodynose
+ name = "Intranasal Hemorrhage"
+ stage = 2
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ if (prob(30))
+ var/obj/effect/decal/cleanable/blood/D= locate(/obj/effect/decal/cleanable/blood) in get_turf(mob)
+ if(D==null)
+ D = new(get_turf(mob))
+
+ D.virus2 |= virus_copylist(mob.virus2)
+
+
+
+
+
+
+
+/datum/disease2/effect/viralsputum
+ name = "Respiratory Putrification"
+ stage = 2
+ activate(var/mob/living/carbon/mob,var/multiplier)
+
+ if (prob(30))
+ mob.say("*cough")
+ var/obj/effect/decal/cleanable/blood/viralsputum/D= locate(/obj/effect/decal/cleanable/blood/viralsputum) in get_turf(mob)
+ if(D==null)
+ D = new(get_turf(mob))
+
+ D.virus2 |= virus_copylist(mob.virus2)
+
+
+
+
+/datum/disease2/effect/lantern
+ name = "Lantern Syndrome"
+ stage = 2
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ mob.SetLuminosity(4)
+ mob << "You are glowing!"
+
+
+
////////////////////////STAGE 1/////////////////////////////////
/datum/disease2/effect/sneeze
@@ -412,7 +832,7 @@
name = "Flemmingtons"
stage = 1
activate(var/mob/living/carbon/mob,var/multiplier)
- mob << "\red Mucous runs down the back of your throat."
+ mob << " Mucous runs down the back of your throat."
/datum/disease2/effect/drool
name = "Saliva Effect"
@@ -432,17 +852,34 @@
activate(var/mob/living/carbon/mob,var/multiplier)
mob << " Your head hurts a bit"
-/datum/disease2/effect/poop
- name = "Uncontrollable Bowel Syndrome"
+/datum/disease2/effect/itching
+ name = "Itching"
stage = 1
activate(var/mob/living/carbon/mob,var/multiplier)
- if (prob(50))
- mob << "[pick("Your stomach rumbles strangely.", "You feel like you're going shit your pants any second now!")]"
+ mob << "Your skin itches!"
- else
- mob.visible_message("[mob] has explosive diarrhea all over the floor!")
- mob.nutrition -= 20
- mob.adjustToxLoss(-3)
- var/obj/effect/decal/cleanable/poop/P = new(get_turf(mob))
- P.virus2 = virus_copylist(mob.virus2)
- playsound(P.loc, 'sound/effects/splat.ogg', 50, 1)
+/datum/disease2/effect/drained
+ name = "Drained Feeling"
+ stage = 1
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ mob << "You feel drained."
+
+/datum/disease2/effect/eyewater
+ name = "Watery Eyes"
+ stage = 1
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ mob << ""
+
+/datum/disease2/effect/wheeze
+ name = "Wheezing"
+ stage = 1
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ mob.emote("me",1,"wheezes.")
+
+
+/datum/disease2/effect/optimistic
+ name = "Full Glass Syndrome"
+ stage = 1
+ activate(var/mob/living/carbon/mob,var/multiplier)
+ mob << " You feel optimistic!"
+ mob.reagents.add_reagent("tricordazine", 1)