Files
Paradise/code/datums/diseases/lycancoughy.dm
Nathan WintersandGitHub dad3774e7b Buffs the Virus Outbreak event (#23285)
* Spring cleaning

* The great virus reclassification

* Add severity comment to Fake GBS

* Fix Jungle Fever being uncurable

* Fix Shock causing fainting slightly too often

* Makes Brainrot kill more reliably (yes, it already did)

* Make Wizarditis replace clothes a bit less eagerly, cleanup

* Buff Wizarditis effects' probabilities

* Add a bit of variety to Wizarditis flavor messages

* Clean up, nerf, and add some variety to Lycancoughy

* Refactor Spanish Inquisition Flu

* Refactor and slightly rebalance ICE9 Cold

* Fix DROPDEL items not GCing properly sometimes

* Lightly overhaul Pierrot's Throat

* Remove unnecessary `null` declaration assignment

* Deduplicate Critical disease properties

* Spring cleaning 2: Electric Boogaloo

* whoops

* Fixes DROPDEL items not GCing properly someothertimes

* Make Wizarditis clothes DROPDEL too

* Lewcc review

* Deduplicate Pierrot's Throat symptoms

* Spread out Cold9 and Spanish Flu's damage

* Clean up Adv. Kingstons

* Fix Adv. Kingstons *healing* brute damage
2023-12-31 10:21:45 +00:00

73 lines
2.4 KiB
Plaintext

/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 = HARMFUL
var/barklimit = 10
var/list/puppy_types = list(/mob/living/simple_animal/pet/dog/corgi/puppy, /mob/living/simple_animal/pet/dog/pug, /mob/living/simple_animal/pet/dog/fox)
var/list/plush_types = list(/obj/item/toy/plushie/orange_fox, /obj/item/toy/plushie/corgi, /obj/item/toy/plushie/robo_corgi, /obj/item/toy/plushie/pink_fox)
/datum/disease/lycan/stage_act()
if(!..())
return FALSE
var/mob/living/carbon/human/H = affected_mob
switch(stage)
if(2)
if(prob(2))
H.emote("cough")
if(prob(3))
to_chat(H, "<span class='notice'>You itch.</span>")
H.adjustBruteLoss(rand(4, 6))
if(3)
var/obj/item/organ/external/stomach = H.bodyparts_by_name[pick("chest", "groin")]
if(prob(3))
H.emote("cough")
stomach.receive_damage(rand(0, 5))
if(prob(3))
to_chat(H, "<span class='notice'>You hear faint barking.</span>")
stomach.receive_damage(rand(4, 6))
if(prob(2))
to_chat(H, "<span class='notice'>You crave meat.</span>")
if(prob(3))
to_chat(H, "<span class='danger'>Your stomach growls!</span>")
stomach.receive_damage(rand(5, 10))
if(4)
var/obj/item/organ/external/stomach = H.bodyparts_by_name[pick("chest", "groin")]
if(prob(5))
H.emote("cough")
stomach.receive_damage(rand(0, 5))
if(prob(5))
to_chat(H, "<span class='danger'>Your stomach barks?!</span>")
stomach.receive_damage(rand(5, 10))
if(prob(5))
H.visible_message(
"<span class='danger'>[H] howls!</span>",
"<span class='userdanger'>You howl!</span>"
)
H.AdjustConfused(rand(12 SECONDS, 16 SECONDS))
stomach.receive_damage(rand(0, 5))
if(prob(5))
if(!barklimit)
to_chat(H, "<span class='danger'>Your stomach growls!</span>")
stomach.receive_damage(rand(5, 10))
else
var/atom/hairball = pick(prob(50) ? puppy_types : plush_types)
H.visible_message(
"<span class='danger'>[H] coughs up \a [initial(hairball.name)]!</span>",
"<span class='userdanger'>You cough up \a [initial(hairball.name)]?!</span>"
)
new hairball(H.loc)
barklimit--
stomach.receive_damage(rand(10, 15))