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

Medicines. Expand description #76811

Closed
IdleSol opened this issue Oct 4, 2024 · 4 comments
Closed

Medicines. Expand description #76811

IdleSol opened this issue Oct 4, 2024 · 4 comments
Labels
stale Closed for lack of activity, but still valid. <Suggestion / Discussion> Talk it out before implementing

Comments

@IdleSol
Copy link

IdleSol commented Oct 4, 2024

Is your feature request related to a problem? Please describe.

There are many medicines in the game. Many of them have rather vague descriptions. And the result of their action is not always accurately defined.

For example, let's take a hemostatic powder and a potassium iodide tablet.

If with the powder, everything is clear enough. Take it and apply it to the wound. If the bleeding does not stop, repeat. Instant results that any player can understand.

What about the tablet? Will there be a result from taking two tablets at the same time? How long does this tablet last. Does it work at all?

Solution you would like.

Therefore, I suggest that the following information be added to the description of medicines:

  • how long the drug lasts
  • whether there is a benefit from increasing the dose (at least a verbal description: none, small, significant, etc.)
  • (optionally) the effect of the action expressed in figures. In addition to the verbal description, add some figures
  • (optional) adverse effects

For an example, let's take potassium iodide tablets:

"name": { "str": "potassium iodide tablet" },

"A potassium iodide tablet. If taken prior to exposure, they help to mitigate injury caused by radiation absorption.",

Its descriptions could be supplemented: Take one tablet every two hours. Increasing the dosage has no effect. Has no side effects. (Reduces the radiation exposure received, by a factor of about 3)

Either, more standardized:

  • action time: 2 hours
  • dose escalation effect: none
  • side effects: none
  • effect: reduces the level of radiation received by a factor of about 3

"effects": [ { "id": "iodine", "duration": 7200 } ]

(The effect is hard coded. And I'm not sure I found the right lines in the srс)

Second example: a Prussian blue tablet.

"name": { "str": "Prussian blue tablet" },

  • time of action: 1 hour
  • dose escalation effect: small increase in the duration of the drug
  • side effects: none
  • effect: removes up to 10 mSv

"effects": [ { "id": "pblue", "duration": 3600 } ]

"id": "pblue",
"base_mods": { "rad_chance": [ 600 ], "rad_min": [ -1 ] },

Describe alternatives you have considered.

Instead of fixing the description, you can add appropriate fields (effect duration) to display in the interface.

Additional context

No response

@IdleSol IdleSol added the <Suggestion / Discussion> Talk it out before implementing label Oct 4, 2024
@GuardianDll
Copy link
Member

put it to the extreme degree, having medicine boxed with relative instructions would be interesting
stepping back from extreme, yes, sure, having information about need to be taken three times a day, X pills max, possible side effects and would be a reasonable information to have

tho it has a problem of our medicine being still pretty abstract, i think it would be a fine addition

@worm-girl
Copy link
Contributor

worm-girl commented Oct 4, 2024

People may not be aware that certain medicines got large overhauls this year, particularly analgesics, and now function as vitamins, and afaik this was intended as the model going forward for all drugs. For those medicines, it shouldn't be hard for the game to gather up the data on vitamin content in the drug, the maximum safe amount a person can take, the amount required to be effective, and the decay timer, and intelligently put together a readout about how much to take, how often to take it, and at what point overdose will occur. It'd be really neat if this readout required some kind of proficiency to see.

Since various mutations etc. might change these parameters, you could have the box display the dosage for average adult/child (just calculate for a medium and small character, respectively), so that non-proficient characters could simply read the packaged instructions, and loose pills would be a bit of a gamble for them. Similarly, you could hide the dosage information for mutants or particularly exotic drugs behind more difficult proficiencies.

The game already kind of does this for regular vitamins, and smartphones etc. have the app that tracks nutrition, so it'd be a matter of copying that method and adjusting the readout and stuff.

See #70239 for more info.

@IdleSol
Copy link
Author

IdleSol commented Oct 5, 2024

I looked more closely at med.json and topic #70239. And it looks like a problem. Or a lot of manual labor.

The problem is that different drugs use different recording structures.

For example. Let's take the pill from the first post. The duration of action is defined in the duration of effect field.

"id": "prussian_blue",

    "use_action": {
      "type": "consume_drug",
      "activation_message": "You take some Prussian blue.",
      "effects": [ { "id": "pblue", "duration": 3600 } ]
    }

For ibuprofen, vitamins are additionally added, which will have their own different effect and their own duration.

    "use_action": {
      "type": "consume_drug",
      "activation_message": "You take some %s.",
      "effects": [ { "id": "pkill1_nsaid", "duration": 9000 } ]
    },
    "vitamins": [ [ "vit_ibuprofen", 216 ] ]

"id": "vit_ibuprofen",

    "excess": "nsaid_eff",
...
    "rate": "100 s",

Duration of effect: 216 x 100 / 60 x 60 = 6 h. (This is an effect that increases blood pressure. An additional problem is that the effect does not have a name field and cannot be substituted in the descriptions in the side effects section).

But that's not all. Let's take a stimulant:

    "stim": 24,
    "fun": 10,
...
    "use_action": { "type": "consume_drug", "activation_message": "You take some %s." }

In this case, instead of the effect and its duration, the value of the dose(?) is specified. And the duration, apparently, is hard-coded somewhere in the functions(?).

And that's just at first look. Perhaps there are some other variants. And this is either manual work or a multilevel function of the if-then-else kind.

I certainly hope someone will take it up. But it is more rational to postpone it until standardization (will it take place?). Or limit yourself to adding only one “effect duration” field to the drug information window.

Look at the use_action section, effects subsection. If there is a duration parameter, convert it to hours and display it in the pill information window. If there is no field, do nothing.

Copy link
Contributor

github-actions bot commented Jan 7, 2025

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not bump or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.

@github-actions github-actions bot added the stale Closed for lack of activity, but still valid. label Jan 7, 2025
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Jan 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale Closed for lack of activity, but still valid. <Suggestion / Discussion> Talk it out before implementing
Projects
None yet
Development

No branches or pull requests

3 participants