Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Seriously, it's ready]Virology Rework: The Thresholdening #28556

Merged
merged 20 commits into from
Jul 13, 2017

Conversation

XDTM
Copy link
Contributor

@XDTM XDTM commented Jun 18, 2017

🆑 XDTM
experiment: Viruses and symptoms have been havily reworked.
add: Symptoms now have statistic thresholds, that give them new properties or improve their existing ones if the overall virus statistic is above the threshold. Check the pull request in github or the wiki (soon) for the full list.
del: Some symptoms no longer scale linearly with stats, and instead have thresholds.
tweak: The symptom limit is now 6.
del: Viruses can no longer be made invisible to the Pandemic
tweak: Symptoms no longer trigger with a 5% chance every second, but instead have a minimum and maximum number of seconds between each activation, making them more consistent.
del: The symptoms Blood Vomit and Projectile Vomit have been removed, and are now bonuses for the base Vomit symptom.
del: The Weakness symptom has been removed as it was completely useless.
tweak: The Sensory Destruction symptom has been reworked into Narcolepsy, which causes drowsiness and sleep.
tweak: Viral Aggressive Metabolism now has a timer before it starts decaying the virus. It scales with the highest between Resistance or Stage Speed.
add: You can now neuter symptoms, making them inactive. They will still affect stats. Adding formaldehyde to a virus will neuter a random symptom. A bottle of formaldehyde starts in the virus fridge.
/:cl:

Full list of threshold bonuses:

  • Facial Hypertrichosis - None
  • Choking
    • Stage Speed 8 : Acts more often
    • Stealth 4: Suppresses early warnings
  • Acute respiratory distress syndrome
    • Stage Speed 8: Adds paralyzing chems (removed from base version)
    • Infect 8: Stronger damage
  • Confusion
    • Stealth 4: Suppresses early warnings
    • Resistance 6: Also deals some brain damage, not above 80
    • Infect 6: Stronger confusion
  • Cough
    • If AIRBORNE: Coughing causes a spread at range 1
    • Resistance 3: Coughing drops small items (removed from base)
    • Resistance 10: Can cause coughing fits that stun briefly
    • Speed 6: Increases cough frequency
  • Deafness
    • Stealth 4: Suppresses early warnings
    • Resist 9: Deafness is permanent instead of temporary
  • Dizziness
    • Stealth 4: Suppresses early warnings
    • Infect 6: Also adds the druggy effect
  • Fever
    • Resist 5: Heats more, can go above the damage threshold
    • Resist 10: Heats even more per activation
  • Shiver
    • Speed 5: Cools more, can go below the damage threshold
    • Speed 10: Cools even more
  • Spontaneous Combustion
    • Stealth 4: Suppresses early warnings
    • Speed 5: Increases fire stacks and damage
    • Speed 10: Increases fire_stacks and damage even more
    • Infect 8: Spreads the virus when igniting
  • Alkali Perspiration
    • Resist 9: Increases time between ignitions but increases power as well
    • Speed 8: Doubles the explosion range when wet
    • Infect 8: Also adds napalm and clf3 (removed from base version)
  • Necrotizing Fasciitis
    • Resist 7: Causes extra bleeding
    • Infect 8: Deals additional stamina damage
  • Autophagocytosis Necrosis
    • Stealth 5: Suppresses early warnings
    • Speed 7: Adds Heparin and Lipolicide (removed from base version)
    • [PROPOSED REQUESTING APPROVAL] Infect 13: Adds romerol, turning the victim into a zombie on death.
  • DNA Saboteur
    • Stealth 5: DNA won't reset after curing
    • Speed 10: Increases mutation frequency
    • Resist 8: Mutate twice instead of once
  • Hallucigen
    • Stealth 4: Suppresses early warnings, and gives off the messages of positive symptoms instead
    • Speed 7: Stronger hallucinations
  • Headache
    • Stealth 4: Reduces early message frequency
    • Speed 6: Deals some stamina damage when headaching
    • Speed 9: Reduces frequency, headaches are strong enough to stun
  • Healing Symptoms
    • Stealth 4: Hides the overlay when healing
    • Speed 7: Increases healing rate
    • Speed 15: Further increases healing rate
  • Itching
    • Infect 6: Increases frequency
    • Speed 7: Itching causes scratching, dealing minor brute damage (0.5)
  • Narcolepsy
    • Infect 7: Deals stamina damage when it triggers
    • Resistance 10: Triggers more often
  • Self-Respiration
    • Resist 8: Regenerates blood
  • Sensory Restoration
    • Resist 6: Also heals brain damage (removed from base)
    • Infect 8: Also purges alcohol (removed from base)
  • Sneezing
    • Infect 9: Increases spread range
    • Stealth 4: Suppresses early warnings
  • Hyphema
    • Stealth 4: Suppresses early warnings
    • [REQUESTING APPROVAL] Resist 13: Eyes fall off instead of just being blinded
  • Voice Change
    • Stealth 3: Suppresses early warnings
    • Speed 7: Changes voice fater
    • [REQUESTING APPROVAL] Infect 14: Changes the infectee's language along with the voice
  • Vomit
    • Stealth 4: Suppresses early warnings
    • Resist 7: Blood Vomit
    • Infect 7: Projectile Vomit

Unlisted symptoms do not have threshold bonuses!

All balance is not final, i'll tweak the numbers as necessary.

Why

Threshold bonuses: The reasoning behind these is that they feel more rewarding and impactful than simple number scaling, and gives the option to dedicate symptom space to more symptoms or to upgrade a few central ones instead.
Symptom activation change: the intention behind this is RNG consistency and ease of balance. Currently all symptoms have a 5% chance of activate with few exceptions, making it complicated to tweak.
Neutering: Upgrading positive symptoms by putting a ton of negative ones doesn't work well, in my opinion, especially when they'll trigger their own thresholds making the virus somewhat dangerous instead. Neutering allows players to sidestep that, but i recognize that it swings a bit too far on the other side of the risk/reward balance. I plan on finding a better system to manage virus statistics in the future.

@tgstation-server tgstation-server added Feature Exposes new bugs in interesting ways Removal This was too fun, too fun! I'm turning this feature around Tweak labels Jun 18, 2017
@silicons
Copy link
Contributor

6 symptoms 3 viruses again or 6 symptoms one virus because the latter is REALLY weak.

@DoctoreMad
Copy link

[PROPOSED REQUESTING APPROVAL] Infect 13: Adds romerol, turning the victim into a zombie on death.

I SERIOUSLY HOPE THIS ISN'T APPROVED MYSELF

@XDTM
Copy link
Contributor Author

XDTM commented Jun 18, 2017

@kevinz000 Overall symptoms are stronger, i think, and i really want to err on the side of underpowered rather than virology killing everyone

@silicons
Copy link
Contributor

damnit rip my healing virus cheese electric boogaloo :'(

@XDTM XDTM changed the title Another Virology Rework Virology Rework Jun 18, 2017
@XDTM XDTM changed the title Virology Rework Virology Rework: The Thresholdening Jun 18, 2017
@ghost
Copy link

ghost commented Jun 18, 2017

doctor i know you hate fun but just work with me here

@DoctoreMad
Copy link

Can you tune it down to normal non-antag zombies instead of a TC item? Looks like powercreep to me.

@PKPenguin321
Copy link
Contributor

Zombies miiiight be sketchy but personally I like it

Other two things you want approval on I think should definitely go through they're hilarious

@XDTM
Copy link
Contributor Author

XDTM commented Jun 18, 2017

lzimann was very against zombies, i dunno if maintainer or headmin ranks higher here

@PKPenguin321
Copy link
Contributor

He's not the only maintainer you know

@AKlimentyev
Copy link

> Neutering lets you get the stat boosts from bad symptoms while not having the symptom itself

No. Just no. This is just a flat out buff to heal viruses at this point.

@XDTM
Copy link
Contributor Author

XDTM commented Jun 18, 2017

Two less max symptoms, you ain't reaching thresholds if you put in all 4 healing symptoms.

@Nabski89
Copy link
Contributor

Did you change it so that Transmission doesn't subtract one for each symptom? If not the only ones of these that you can actually get are on vomiting and coughing.

Resistance: Hyphema 13 is unreachable.

Stealth: All of these work, however the nature of stealth means they will likely be even more frustrating than normal. You can't see what's in it, you can see what the cure is, and you can't even use all the symptoms to math it out. Stealth spreading is the new death plagues.

Speed: Spontaneous 10 is unreachable. All the healing at 15 is unreachable.

So many of these you'll have to blank out symptoms every time, that or they'll be on no matter what.

For example on stage speed to max it you'll want Accel, Youth, Fever, Itching, (Shivering or Headache)
This gives speed 17 with resist 11 or 9 (modified by whatever you mix with it).
This activates Fever, Itching, and (Shivering/Headache) all at once, in addition to whatever you add.

The activation is a great change, but either the activation numbers, the formulas, or viral numbers, need some tweaking.

@Cyberboss Cyberboss added Merge Conflict Adding upstream files to your repo via drag and drop won't resolve conflicts Refactor Makes the code harder to read labels Jun 19, 2017
@XDTM
Copy link
Contributor Author

XDTM commented Jun 19, 2017

Thanks, i was sure i botched some numbers. As for the last point, it's the reason i added neutering; you'd have to add neutered fever etc to the healing symptom.

@Nabski89
Copy link
Contributor

I struggle at reading code. Is the neutering targeted or more RNG hell?

If you can neuter symptoms what's the point of having the Viral Accel/Viral Self-Adaptation/Eternal Youth since these are all just effectless things used for their stats already and a mandatory add for the stat you want (speed/stealth/resist) {sneezing for transmission but it has an activated}.

Would you have any issue with the symptoms on virus's being revisited in a later PR to spread out the stat buffs from tier one?

Also this is a good system for balancing, as negative thresholds could be used to keep things in check as well.

@hamzah-hayat
Copy link
Contributor

Sounds great, I especially like the consistency in virus activation going up over time instead of being rng and the pandemic seeing all viruses.
I also like the idea of viruses getting bonuses from certain stats, but I fear this will be a feature that is only available to people with the wiki open or lots of experience. It might end up being a change that makes virology needlessly over complex for little gain for most virologists.
Also, does the pandemic show any of the threshold bonuses you currently have active, as well as what symptoms are neutered?

@XDTM
Copy link
Contributor Author

XDTM commented Jun 24, 2017

It does show neutered symptoms, but thresholds are still undocumented. I plan on adding being able to click on a symptom on the pandemic to see its details.

@AKlimentyev
Copy link

@Nabski89
Copy link
Contributor

Nabski89 commented Jul 4, 2017

There's some bad math going on in that post. You can't get 12 speed with three healing symptoms.

Accel +5
Youth +4
Fever Itching +3 +3
Uranium Tier -2 -2

11

Enough for 2 uranium at 2x or 1 at 3x.
OR
You could also add in self resp and the plasma stuff to have a more reasonable amount of healing.

Either way you don't have enough healing to pull you out of reasonable crit without uranium.

@silicons
Copy link
Contributor

silicons commented Jul 4, 2017

Fuck I thought #21029 was merged @Nabski89

@silicons
Copy link
Contributor

silicons commented Jul 4, 2017

hey xdtm go reopen 21029 :^)

@silicons
Copy link
Contributor

silicons commented Jul 4, 2017

@Nabski89 if it was it'd be +6 for stagespeed because you could just reroll but >>>people hate fun
-_-

@XDTM XDTM changed the title Virology Rework: The Thresholdening [Been ready for a while now]Virology Rework: The Thresholdening Jul 6, 2017
@Cyberboss Cyberboss changed the title [Been ready for a while now]Virology Rework: The Thresholdening Virology Rework: The Thresholdening Jul 6, 2017
@Cyberboss
Copy link
Member

Shh we know

@@ -52,8 +52,8 @@

// Sensory Destruction

/datum/disease/advance/sensory_destruction/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0)
/datum/disease/advance/narcolepsy/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TRUE and FALSE

@XDTM
Copy link
Contributor Author

XDTM commented Jul 7, 2017

fuck

@XDTM XDTM reopened this Jul 7, 2017
@XDTM
Copy link
Contributor Author

XDTM commented Jul 7, 2017

never using command line again

@XDTM XDTM changed the title Virology Rework: The Thresholdening [Seriously, it's ready]Virology Rework: The Thresholdening Jul 13, 2017
@optimumtact optimumtact merged commit 7de5bde into tgstation:master Jul 13, 2017
ghost referenced this pull request in HippieStation/HippieStationdeprecated2020 Jul 13, 2017
🆑 XDTM
experiment: Viruses and symptoms have been havily reworked.
add: Symptoms now have statistic thresholds, that give them new properties or improve their existing ones if the overall virus statistic is above the threshold. Check the pull request in github or the wiki (soon) for the full list.
del: Some symptoms no longer scale linearly with stats, and instead have thresholds.
tweak: The symptom limit is now 6.
del: Viruses can no longer be made invisible to the Pandemic
tweak: Symptoms no longer trigger with a 5% chance every second, but instead have a minimum and maximum number of seconds between each activation, making them more consistent.
del: The symptoms Blood Vomit and Projectile Vomit have been removed, and are now bonuses for the base Vomit symptom.
del: The Weakness symptom has been removed as it was completely useless.
tweak: The Sensory Destruction symptom has been reworked into Narcolepsy, which causes drowsiness and sleep.
tweak: Viral Aggressive Metabolism now has a timer before it starts decaying the virus. It scales with the highest between Resistance or Stage Speed.
add: You can now neuter symptoms, making them inactive. They will still affect stats. Adding formaldehyde to a virus will neuter a random symptom. A bottle of formaldehyde starts in the virus fridge.
/🆑

Full list of threshold bonuses:

    Facial Hypertrichosis - None
    Choking
        Stage Speed 8 : Acts more often
        Stealth 4: Suppresses early warnings
    Acute respiratory distress syndrome
        Stage Speed 8: Adds paralyzing chems (removed from base version)
        Infect 8: Stronger damage
    Confusion
        Stealth 4: Suppresses early warnings
        Resistance 6: Also deals some brain damage, not above 80
        Infect 6: Stronger confusion
    Cough
        If AIRBORNE: Coughing causes a spread at range 1
        Resistance 3: Coughing drops small items (removed from base)
        Resistance 10: Can cause coughing fits that stun briefly
        Speed 6: Increases cough frequency
    Deafness
        Stealth 4: Suppresses early warnings
        Resist 9: Deafness is permanent instead of temporary
    Dizziness
        Stealth 4: Suppresses early warnings
        Infect 6: Also adds the druggy effect
    Fever
        Resist 5: Heats more, can go above the damage threshold
        Resist 10: Heats even more per activation
    Shiver
        Speed 5: Cools more, can go below the damage threshold
        Speed 10: Cools even more
    Spontaneous Combustion
        Stealth 4: Suppresses early warnings
        Speed 5: Increases fire stacks and damage
        Speed 10: Increases fire_stacks and damage even more
        Infect 8: Spreads the virus when igniting
    Alkali Perspiration
        Resist 9: Increases time between ignitions but increases power as well
        Speed 8: Doubles the explosion range when wet
        Infect 8: Also adds napalm and clf3 (removed from base version)
    Necrotizing Fasciitis
        Resist 7: Causes extra bleeding
        Infect 8: Deals additional stamina damage
    Autophagocytosis Necrosis
        Stealth 5: Suppresses early warnings
        Speed 7: Adds Heparin and Lipolicide (removed from base version)
        [PROPOSED REQUESTING APPROVAL] Infect 13: Adds romerol, turning the victim into a zombie on death.
    DNA Saboteur
        Stealth 5: DNA won't reset after curing
        Speed 10: Increases mutation frequency
        Resist 8: Mutate twice instead of once
    Hallucigen
        Stealth 4: Suppresses early warnings, and gives off the messages of positive symptoms instead
        Speed 7: Stronger hallucinations
    Headache
        Stealth 4: Reduces early message frequency
        Speed 6: Deals some stamina damage when headaching
        Speed 9: Reduces frequency, headaches are strong enough to stun
    Healing Symptoms
        Stealth 4: Hides the overlay when healing
        Speed 7: Increases healing rate
        Speed 15: Further increases healing rate
    Itching
        Infect 6: Increases frequency
        Speed 7: Itching causes scratching, dealing minor brute damage (0.5)
    Narcolepsy
        Infect 7: Deals stamina damage when it triggers
        Resistance 10: Triggers more often
    Self-Respiration
        Resist 8: Regenerates blood
    Sensory Restoration
        Resist 6: Also heals brain damage (removed from base)
        Infect 8: Also purges alcohol (removed from base)
    Sneezing
        Infect 9: Increases spread range
        Stealth 4: Suppresses early warnings
    Hyphema
        Stealth 4: Suppresses early warnings
        [REQUESTING APPROVAL] Resist 13: Eyes fall off instead of just being blinded
    Voice Change
        Stealth 3: Suppresses early warnings
        Speed 7: Changes voice fater
        [REQUESTING APPROVAL] Infect 14: Changes the infectee's language along with the voice
    Vomit
        Stealth 4: Suppresses early warnings
        Resist 7: Blood Vomit
        Infect 7: Projectile Vomit

Unlisted symptoms do not have threshold bonuses!

All balance is not final, i'll tweak the numbers as necessary.
Why

Threshold bonuses: The reasoning behind these is that they feel more rewarding and impactful than simple number scaling, and gives the option to dedicate symptom space to more symptoms or to upgrade a few central ones instead.
Symptom activation change: the intention behind this is RNG consistency and ease of balance. Currently all symptoms have a 5% chance of activate with few exceptions, making it complicated to tweak.
Neutering: Upgrading positive symptoms by putting a ton of negative ones doesn't work well, in my opinion, especially when they'll trigger their own thresholds making the virus somewhat dangerous instead. Neutering allows players to sidestep that, but i recognize that it swings a bit too far on the other side of the risk/reward balance. I plan on finding a better system to manage virus statistics in the future.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Exposes new bugs in interesting ways Refactor Makes the code harder to read Removal This was too fun, too fun! I'm turning this feature around
Projects
None yet
Development

Successfully merging this pull request may close these issues.