ParadiseSS13 / Paradise

Paradise Station's GitHub main repository.
https://www.paradisestation.org/forum
GNU Affero General Public License v3.0
396 stars 1.19k forks source link

PanD.E.M.I.C 2200 doesn't show the correct spread vector #26045

Closed Taurtura closed 2 months ago

Taurtura commented 2 months ago

Exploit Reports

BYOND Version

515.1626 (Beta)

Issue Description

Had a virus that spread through touch, PanD.E.M.I.C told me it was blood only.

What did you expect to happen?

For the PanD.E.M.I.C to tell me it spread through touch

What happened instead?

Told me it only spread through blood.

Why is this bad/What are the consequences?

It didn't spread only through blood, and now fifteen assistants are trying to break into my lab to lynch me before they die from the virus.

Bug bad, machine made to tell how virus work should do it's job correctly

Steps to reproduce the issue.

Get a virus with transmissibility above 2 See the PanD.E.M.I.C lie to you

When did the problem start happening?

ever since the pandemic UI reword, since it didn't have the feature before.

Extra information

image

Relevant log output/runtime error

No response

Arthri commented 2 months ago

The virus itself(not factoring any symptoms) technically spreads only through blood. However, the sneezing symptom forces the virus to spread through the air.

https://github.com/ParadiseSS13/Paradise/blob/f6b8d87e7850de83b2de149fbb9e7b204164fadc/code/datums/diseases/advance/advance.dm#L223

https://github.com/ParadiseSS13/Paradise/blob/f6b8d87e7850de83b2de149fbb9e7b204164fadc/code/datums/diseases/advance/symptoms/sneeze.dm#L38

Taurtura commented 2 months ago

The virus itself(not factoring any symptoms) technically spreads only through blood. However, the sneezing symptom forces the virus to spread through the air.

https://github.com/ParadiseSS13/Paradise/blob/f6b8d87e7850de83b2de149fbb9e7b204164fadc/code/datums/diseases/advance/advance.dm#L223

https://github.com/ParadiseSS13/Paradise/blob/f6b8d87e7850de83b2de149fbb9e7b204164fadc/code/datums/diseases/advance/symptoms/sneeze.dm#L38

I’d have to test with a virus that doesn’t contain sneezing, but from what I know, any transmissibility above 2 stops spreading via blood, and starts spreading via contact/airborne

Edit: though from the bit of code you provide, it does seem like there are more factors than what the wiki tells you.

Spaghetti-bit commented 2 months ago

This is intended, this would need a wiki update but this isn't an issue with the pandemic machine itself.

// The more symptoms we have, the less transmittable it is but some symptoms can make up for it.

    `SetSpread(clamp(2 ** (properties["transmittable"] - length(symptoms)), BLOOD, AIRBORNE))`