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

Addiction rework #56923

Merged
merged 39 commits into from Feb 17, 2021
Merged

Addiction rework #56923

merged 39 commits into from Feb 17, 2021

Conversation

ghost
Copy link

@ghost ghost commented Feb 14, 2021

About The Pull Request & why it's good for the game

This PR removes all existing addiction code to replace it with a less cheese-able variant that also eases the workload for people who want to add new reagents.

The current addiction mechanic has many serious flaws. First of all it is easy to cheat. The threshhold mechanic allows you take huge amounts of drugs and yet avoid addiction by structuring your doses.

This makes addiction only a concern of clueless newbies and those who have drugs forcibly injected into them, not drug-fueled powergamers.

In addition, addiction is hyperspecific and often quite lethal. This makes seeking out medical treatment in order to kick the habit almost invariably the best option.

This PR removes the unit threshold on specific reagents, and introduces 5 categories of drugs (With the possibility of more in the future)

  • Stimulants
  • Opioids
  • Alcohol
  • Hallucinogens
  • Maintenance drugs

Every time you metabolize a drug, you will gain addiction points in the category it belongs to. Extremer drugs and alcohol will make you addicted more quickly. At a certain threshold, you will become proper addicted. By not taking said drugs and having high sanity at the same time you will slower the amount of addiction points, and if you reach a certain threshold you stop being addicted.

Withdrawal effects per category

Stimulants

Stimulant withdrawal makes you slow in a number of ways.

  • At the first stage you get craving messages about feeling tired and needing a little pick me up. Your actions also become slower(action speed penalty).

  • At the second stage you recieve a click cooldown penalty.

  • At the third stage you get a movement speed penalty and more craving messages.

Opiods

The main symptoms of opiod withdrawals in real life is hyperalgesia, nausea and diarrhea. Since only one of those symptoms is implemented as an actual game mechanic will we will focus on that one.

  • At the first stage you get craving messages about feels aches in your body, chills and needing opioids. You start yawning intermittently.

  • At the second stage your high blood pressure will increase rate of blood loss from any open wounds.

  • At the third stage you will get hit by waves of nausea and vomiting. This should probably check your current nausea level before adding more nausea to prevent vomit stun locking.

This can be made a lot more interesting if pain mechanics are ever implemented.

Alcohol

Alcohol withdrawal is easy to stave off due to the abundance of low alcohol content drinks available from the bar, but it is the only one that can be outright lethal.

  • At the first stage you get craving messages about feeling thirsty, wondering if the bar is still open and needing a little Dutch courage. You also start to jitter.

  • At the second stage you start to hallucinate.

  • At the third stage you start to suffer intermittant seizures that paralyze you for 1-3 seconds and cause 10-30 brain damage depending on duration. Your seizures also cause heavy jittering. Seizures can be prevented by taking neurine or sodium thiopental, which now give you TRAIT_ANTICONVULSANT while they are in your body.

Hallucinogens

  • At the first stage you get craving messages about feeling empty, spirtually detached and you start to wonder what the machine elves are up to.

  • At the second stage you get visual disturbances in the form of an annoying filter applied to your screen. https://streamable.com/fl83ma

  • At the third stage you enter a hypnotic trance. (Feel free to suggest something better, hypnosis is really cool but this steps on the toes of the trauma a little bit.)

Maintenance Drugs

  • At the first stage you get craving messages, start growling intermittently and your health indicator will become unreliable(like if you had ingested miners salve).

  • At the second stage you can only stomach GROSS food and you grow a scraggly beard if male.

  • At the third stage you will become very dizzy and confused when exposed to light, but it also gives you nightvision.

The reason for granting a positive effect: nightvision, at stage 3 is that it is simply not very fun or engaging to stay in the dark tunnels without being able to see anything.

Changelog

🆑 Kryson, Qustinnus
add: All drug addictions are now put into 5 categories: Stimulants, Opiods, Alcohol, hallucinogens, and maintenance drugs. There is no longer an addiction threshold and becoming addicted is done by gaining addiction points from doing drugs in a specific category, if you become addicted you can stop being addicted by lowering your addiction points until it reaches a low enough value.
/:cl:

WIP:

  • Make addiction points only go down at high sanity
  • Run a balance pass on the addiction/cycle values

Closes #56825.

@tgstation-server tgstation-server added the Feature Exposes new bugs in interesting ways label Feb 14, 2021
@tralezab
Copy link
Contributor

great pr ol chumster 👍

@wesoda25
Copy link
Contributor

I've attempted this PR like twice but im dumb so cant code THANK YOU

@Krysonism
Copy link
Contributor

I am going to give the numbers a balance pass tomorrow.

@Rowelll
Copy link
Contributor

Rowelll commented Feb 16, 2021

honestly I love this change

@RaveRadbury
Copy link
Member

I like this change, but it looks like you're just removing happiness addiction in general?

Under our current addiction system you can add any reagent to the addiction list and have the player experience the negative moodlets and to_chat messages about craving reagent. Will this still be doable under this new system, and if so, could happiness addiction be allowed this small moodlet-based withdrawal system?

The alternative is making a class of drug addiction for things sedatives/hypnotics (like benzodiazepenes, barbiturates) but seeing as happiness (and to a lesser extent, psicodine) are the only available medications in this class, it might not be worth the effort.

Features of sedative/hypnotic addiction and withdrawal (taken from Wikipedia's article on Benzodiazepine withdrawal syndrome
Benzodiazepine withdrawal is characterized by sleep disturbance, irritability, increased tension and anxiety, panic attacks, hand tremor, shaking, sweating, difficulty with concentration, confusion and cognitive difficulty, memory problems, dry retching and nausea, weight loss, palpitations, headache, muscular pain and stiffness, a host of perceptual changes, hallucinations, seizures, psychosis, and increased risk of suicide

@ghost
Copy link
Author

ghost commented Feb 16, 2021

I like this change, but it looks like you're just removing happiness addiction in general?

Under our current addiction system you can add any reagent to the addiction list and have the player experience the negative moodlets and to_chat messages about craving reagent. Will this still be doable under this new system, and if so, could happiness addiction be allowed this small moodlet-based withdrawal system?

The alternative is making a class of drug addiction for things sedatives/hypnotics (like benzodiazepenes, barbiturates) but seeing as happiness (and to a lesser extent, psicodine) are the only available medications in this class, it might not be worth the effort.

Features of sedative/hypnotic addiction and withdrawal (taken from Wikipedia's article on Benzodiazepine withdrawal syndrome
Benzodiazepine withdrawal is characterized by sleep disturbance, irritability, increased tension and anxiety, panic attacks, hand tremor, shaking, sweating, difficulty with concentration, confusion and cognitive difficulty, memory problems, dry retching and nausea, weight loss, palpitations, headache, muscular pain and stiffness, a host of perceptual changes, hallucinations, seizures, psychosis, and increased risk of suicide

happiness would give the withdrawal moodlets like before but wont lock your sanity super low as it used to.

@RaveRadbury
Copy link
Member

happiness would give the withdrawal moodlets like before but wont lock your sanity super low as it used to.

This is great news, thank you Qust.

@ghost ghost requested review from ShizCalev and Twaticus as code owners February 16, 2021 22:35
@tgstation-server tgstation-server added the Sprites A bikeshed full of soulless bikes. label Feb 16, 2021
code/__DEFINES/reagents.dm Outdated Show resolved Hide resolved
code/__DEFINES/traits.dm Outdated Show resolved Hide resolved
code/datums/status_effects/drug_effects.dm Outdated Show resolved Hide resolved
Qustinnus and others added 3 commits February 17, 2021 00:52
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
@Mothblocks Mothblocks merged commit ef80ed1 into tgstation:master Feb 17, 2021
Acensti pushed a commit to HippieStation/HippieStation that referenced this pull request Dec 26, 2021
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
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 Sprites A bikeshed full of soulless bikes.
Projects
None yet
Development

Successfully merging this pull request may close these issues.