mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-29 02:21:44 +00:00
## About The Pull Request Reworks sneezing. Instead of a range check that checks if you're facing someone, it is now a skill check https://github.com/tgstation/tgstation/assets/7501474/c11ffa16-9bd2-4ed1-8022-2094360657bc All sneezes shoot projectiles, but depends on the virus if they're infectious. Using the sneeze emote is the only method that doesn't shoot a sneeze ## Why It's Good For The Game I think the invisible infection mechanics are unfun. A lot of station dangers challenge your knowledge and mechanical skill, while viruses are gotten by being around people in a roleplay game. You can get a round seriously ruined if you walk past someone with a sneezing virus and don't immediately rush spaceillin or chemistry, which I don't think is mechanically interesting. Now if you get infected, it's a skill issue. Get good and dodge the sneeze Note that this is just one method of infection. I didn't touch coughing and airborne viruses, which do constant area checks and infect everyone around. I plan to, but not now. I'll probably make coughing do a cone or something, and ignore the airborne viruses since they can't be modified and are generally less broken ## Changelog 🆑 balance: You can now dodge sneezes balance: Infectious simple diseases that use sneezes now infect with sneezes and have lowered airborn transmission balance: Damageless attacks, projectiles, hugs etc no longer drain shields /🆑 - [x] Make sneezes shoot to your cursor so you can either intentionally sneeze on people or sneeze away from people if you react fast --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
52 lines
2.0 KiB
Plaintext
52 lines
2.0 KiB
Plaintext
/datum/disease/cold
|
|
name = "The Cold"
|
|
desc = "If left untreated the subject will contract the flu."
|
|
max_stages = 3
|
|
cure_text = "Rest & Spaceacillin"
|
|
cures = list(/datum/reagent/medicine/spaceacillin)
|
|
agent = "XY-rhinovirus"
|
|
viable_mobtypes = list(/mob/living/carbon/human)
|
|
spreading_modifier = 0.1
|
|
spread_text = "Airborne"
|
|
severity = DISEASE_SEVERITY_NONTHREAT
|
|
required_organ = ORGAN_SLOT_LUNGS
|
|
|
|
|
|
/datum/disease/cold/stage_act(seconds_per_tick, times_fired)
|
|
. = ..()
|
|
if(!.)
|
|
return
|
|
|
|
switch(stage)
|
|
if(2)
|
|
if(SPT_PROB(0.5, seconds_per_tick))
|
|
affected_mob.infectious_sneeze(src, TRUE)
|
|
if(SPT_PROB(0.5, seconds_per_tick))
|
|
affected_mob.emote("cough")
|
|
if(SPT_PROB(0.5, seconds_per_tick))
|
|
to_chat(affected_mob, span_danger("Your throat feels sore."))
|
|
if(SPT_PROB(0.5, seconds_per_tick))
|
|
to_chat(affected_mob, span_danger("Mucous runs down the back of your throat."))
|
|
if((affected_mob.body_position == LYING_DOWN && SPT_PROB(23, seconds_per_tick)) || SPT_PROB(0.025, seconds_per_tick)) //changed FROM prob(10) until sleeping is fixed // Has sleeping been fixed yet?
|
|
to_chat(affected_mob, span_notice("You feel better."))
|
|
cure()
|
|
return FALSE
|
|
if(3)
|
|
if(SPT_PROB(0.5, seconds_per_tick))
|
|
affected_mob.infectious_sneeze(src, TRUE)
|
|
if(SPT_PROB(0.5, seconds_per_tick))
|
|
affected_mob.emote("cough")
|
|
if(SPT_PROB(0.5, seconds_per_tick))
|
|
to_chat(affected_mob, span_danger("Your throat feels sore."))
|
|
if(SPT_PROB(0.5, seconds_per_tick))
|
|
to_chat(affected_mob, span_danger("Mucous runs down the back of your throat."))
|
|
if(SPT_PROB(0.25, seconds_per_tick) && !LAZYFIND(affected_mob.disease_resistances, /datum/disease/flu))
|
|
var/datum/disease/Flu = new /datum/disease/flu()
|
|
affected_mob.ForceContractDisease(Flu, FALSE, TRUE)
|
|
cure()
|
|
return FALSE
|
|
if((affected_mob.body_position == LYING_DOWN && SPT_PROB(12.5, seconds_per_tick)) || SPT_PROB(0.005, seconds_per_tick)) //changed FROM prob(5) until sleeping is fixed
|
|
to_chat(affected_mob, span_notice("You feel better."))
|
|
cure()
|
|
return FALSE
|