diff --git a/code/datums/diseases/kingstons.dm b/code/datums/diseases/kingstons.dm new file mode 100644 index 00000000000..abad7dcf720 --- /dev/null +++ b/code/datums/diseases/kingstons.dm @@ -0,0 +1,95 @@ +/datum/disease/kingstons + name = "Kingstons Syndrome" + max_stages = 4 + spread_text = "Airborne" + cure_text = "Milk" + cures = list("milk") + cure_chance = 50 + agent = "Nya Virus" + viable_mobtypes = list(/mob/living/carbon/human) + permeability_mod = 0.75 + desc = "If left untreated the subject will turn into a feline. In felines it has... OTHER... effects." + severity = DANGEROUS + +/datum/disease/kingstons/stage_act() + ..() + switch(stage) + if(1) + if(prob(10)) + if(affected_mob.get_species() == "Tajaran") + to_chat(affected_mob, "You feel good.") + else + to_chat(affected_mob, "You feel like playing with string.") + if(2) + if(prob(10)) + if(affected_mob.get_species() == "Tajaran") + to_chat(affected_mob, "Something in your throat itches.") + else + to_chat(affected_mob, "You NEED to find a mouse.") + if(3) + if(prob(10)) + if(affected_mob.get_species() == "Tajaran") + to_chat(affected_mob, "You feel something in your throat!") + affected_mob.emote("cough") + else + affected_mob.say(pick(list("Mew", "Meow!", "Nya!~"))) + if(4) + if(prob(5)) + if(affected_mob.get_species() == "Tajaran") + affected_mob.visible_message("[affected_mob] coughs up a hairball!", \ + "You cough up a hairball!") + affected_mob.Stun(5) + else + affected_mob.visible_message("[affected_mob]'s form contorts into something more feline!", \ + "YOU TURN INTO A TAJARAN!") + var/mob/living/carbon/human/catface = affected_mob + catface.set_species("Tajaran") + + +/datum/disease/kingstons/advanced + name = "Advanced Kingstons Syndrome" + spread_text = "Airborne" + cure_text = "Plasma" + cures = list("plasma") + cure_chance = 50 + agent = "AMB45DR Bacteria" + viable_mobtypes = list(/mob/living/carbon/human) + permeability_mod = 0.75 + desc = "If left untreated the subject will mutate to a different species." + severity = BIOHAZARD + var/list/virspecies = list("Human", "Tajaran", "Unathi", "Skrell", "Vulpkanin")//no karma races sorrys. + var/list/virsuffix = list("pox", "rot", "flu", "cough", "-gitis", "cold", "rash", "itch", "decay") + var/chosentype + var/chosensuff + +/datum/disease/kingstons/advanced/New() + chosentype = pick(virspecies) + chosensuff = pick(virsuffix) + + name = "[chosentype] [chosensuff]" + +/datum/disease/kingstons/advanced/stage_act() + ..() + switch(stage) + if(1) + if(prob(10)) + to_chat(affected_mob, "You feel awkward.") + if(2) + if(prob(10)) + to_chat(affected_mob, "You itch.") + if(3) + if(prob(10)) + to_chat(affected_mob, "Your skin starts to flake!") + + if(4) + if(prob(5)) + if(affected_mob.get_species() != chosentype) + affected_mob.visible_message("[affected_mob]'s skin splits and form contorts!", \ + "Your body mutates into a [chosentype]!") + var/mob/living/carbon/human/twisted = affected_mob + twisted.set_species(chosentype) + else + affected_mob.visible_message("[affected_mob] scratches at thier skin!", \ + "You scratch your skin to try not to itch!") + affected_mob.adjustBruteLoss(-5) + affected_mob.adjustStaminaLoss(5) \ No newline at end of file diff --git a/code/datums/diseases/lycancoughy.dm b/code/datums/diseases/lycancoughy.dm new file mode 100644 index 00000000000..2c5a8752cbb --- /dev/null +++ b/code/datums/diseases/lycancoughy.dm @@ -0,0 +1,45 @@ +/datum/disease/lycan + name = "Lycancoughy" + form = "Infection" + max_stages = 4 + spread_text = "On contact" + spread_flags = CONTACT_GENERAL + cure_text = "Ethanol" + cures = list("ethanol") + agent = "Excess Snuggles" + viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey) + desc = "If left untreated subject will regurgitate... puppies." + severity = MEDIUM + +/datum/disease/lycan/stage_act() + ..() + switch(stage) + if(2) //also changes say, see say.dm + if(prob(5)) + to_chat(affected_mob, "You itch.") + affected_mob.emote("cough") + if(3) + if(prob(10)) + to_chat(affected_mob, "You hear faint barking.") + if(prob(5)) + to_chat(affected_mob, "You crave meat.") + affected_mob.emote("cough") + if(prob(2)) + to_chat(affected_mob, "Your stomach growls!") + if(4) + if(prob(10)) + to_chat(affected_mob, "Your stomach barks?!") + if(prob(5)) + affected_mob.visible_message("[affected_mob] howls!", \ + "You howl!") + affected_mob.AdjustConfused(rand(6, 8)) + if(prob(3)) + var/list/puppytype = list(/mob/living/simple_animal/pet/corgi/puppy, /mob/living/simple_animal/pet/pug, /mob/living/simple_animal/pet/fox) + var/mob/living/puppypicked = pick(puppytype) + affected_mob.visible_message("[affected_mob] coughs up [initial(puppypicked.name)]!", \ + "You cough up [initial(puppypicked.name)]?!") + affected_mob.emote("cough") + affected_mob.adjustBruteLoss(5) + new puppypicked(affected_mob.loc) + new puppypicked(affected_mob.loc) + return diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm index 2bf0ca308a8..f2f9e1371b1 100644 --- a/code/datums/diseases/pierrot_throat.dm +++ b/code/datums/diseases/pierrot_throat.dm @@ -26,3 +26,38 @@ if(4) if(prob(5)) affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) ) + + +/datum/disease/pierrot_throat/advanced + name = "Advanced Pierrot's Throat" + spread_text = "Airborne" + cure_text = "Banana products, especially banana bread." + cures = list("banana") + cure_chance = 75 + agent = "H0NI<42.B4n4 Virus" + viable_mobtypes = list(/mob/living/carbon/human) + permeability_mod = 0.75 + desc = "If left untreated the subject will probably drive others to insanity and go insane themselves." + severity = DANGEROUS + +/datum/disease/pierrot_throat/advanced/stage_act() + ..() + switch(stage) + if(1) + if(prob(10)) + to_chat(affected_mob, "You feel very silly.") + if(prob(5)) + to_chat(affected_mob, "You feel like making a joke.") + if(2) + if(prob(10)) + to_chat(affected_mob, "You don't just start seeing rainbows... YOU ARE RAINBOWS!") + if(3) + if(prob(10)) + to_chat(affected_mob, "Your thoughts are interrupted by a loud HONK!") + affected_mob << 'sound/items/AirHorn.ogg' + if(4) + if(prob(5)) + affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) ) + + if(!istype(affected_mob.wear_mask, /obj/item/clothing/mask/gas/virusclown_hat)) + affected_mob.equip_to_slot(new /obj/item/clothing/mask/gas/virusclown_hat(src), slot_wear_mask) \ No newline at end of file diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 80350b3f3fe..645d0cdf633 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -131,6 +131,7 @@ desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask." icon_state = "clown" item_state = "clown_hat" + flags = NODROP /obj/item/clothing/mask/gas/sexyclown name = "sexy-clown wig and mask" diff --git a/paradise.dme b/paradise.dme index aa7b1f84a02..53247311384 100644 --- a/paradise.dme +++ b/paradise.dme @@ -258,7 +258,9 @@ #include "code\datums\diseases\fluspanish.dm" #include "code\datums\diseases\food_poisoning.dm" #include "code\datums\diseases\gbs.dm" +#include "code\datums\diseases\kingstons.dm" #include "code\datums\diseases\kuru.dm" +#include "code\datums\diseases\lycancoughy.dm" #include "code\datums\diseases\magnitis.dm" #include "code\datums\diseases\pierrot_throat.dm" #include "code\datums\diseases\retrovirus.dm"