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

Dizziness status QOL/tweaks #3933

Merged
merged 7 commits into from
Jul 25, 2023
Merged

Conversation

GoldenDarkness55
Copy link
Contributor

@GoldenDarkness55 GoldenDarkness55 commented Jul 19, 2023

About the pull request

Reduces maximum dizziness value, prevents screen from spinning when buckling or resting and adds associated chat messages.

Explain why it's good for the game

Clarity and ways to prevent nausea for people suffering from motion sickness are good.

Testing Photographs and Procedure

Screenshots & Videos

Put screenshots and videos here with an empty line between the screenshots and the <details> tags.

Changelog

🆑
add: Messages suggesting to lie down when dizzy and when the effect is over.
add: Prevents the screen from spinning when buckled or resting
tweak: Maximum dizzy value lowered by half
/:cl:

@github-actions github-actions bot added the Removal snap label Jul 19, 2023
@github-actions
Copy link
Contributor

You currently have a negative Fix/Feature pull request delta of -5. Maintainers may close this PR at will. Fixing issues or improving the codebase will improve this score.

@Diegoflores31
Copy link
Contributor

Dizzy effect can be healed with chems.

@ihatethisengine
Copy link
Contributor

It's soulful, plus depending on severity it can affect your aim.

@GoldenDarkness55
Copy link
Contributor Author

Dizzy effect can be healed with chems.

yeah bro everyone should carry tea or have the game bully him irl with nausea.

It's soulful, plus depending on severity it can affect your aim.

I fail to see the soul in effects that make me want to ghost or alt f4. And no, I've had it at high severity hence why it lasted for minutes, it does not throw aim off at all. That only happens with sharp screen movements like buck PB shakes that were removed.
Screen blur or literally any other vision effect would both be more soulful and impactful so I really dunno why you feel the need to defend the only one that affects people irl

@Diegoflores31
Copy link
Contributor

The dizzy effect is on all ss13 servers. For YEARS i havent seen anyone ever complaining about irl effects specially with how infrequent the shake is . If you want it different go ahead and do a rework dont just nuke it out because it anoys you

@GoldenDarkness55
Copy link
Contributor Author

Here's the full 5 minute effect anyways https://streamable.com/ln4sv1 and god forbid you catch a whiff of more neuro during this cause it'll potentially never go away.

For YEARS i havent seen anyone ever complaining about irl effects specially with how infrequent the shake is

You get to see it now then because someone has implemented an abominably long shake effect. Might wanna google motion sickness if you're really this ignorant.

If you want it different go ahead and do a rework dont just nuke it out because it anoys you

The only rework I'd be willing to do regarding this is deleting it as offscreen globs were already removed once for good reason. But no, there's actually no need to replace it with anything because as I said - it is mechanically insignificant and serves only to harass the player.

Copy link
Contributor

@Drulikar Drulikar left a comment

Choose a reason for hiding this comment

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

I am pretty sensitive to motion sickness, but this effect doesn't feel too bad - just maybe potentially too long. So how about we implement another realistic way to mitigate this in game:

  • Add a check inside the while loop of /mob/proc/dizzy_process() where if you're buckled or resting, your pixel_x and pixel_y get set to 0 instead (or cap the movement to something very small so you can still see the tiniest amount of it).
  • Add a to_chat message at the end (when it leaves the while loop) mentioning the dizziness has passed (so you know to get up).
  • Optionally lower the max dizziness value from 1000 to maybe 500 in /mob/proc/make_dizzy(amount)

@Drulikar Drulikar marked this pull request as draft July 25, 2023 00:04
@GoldenDarkness55
Copy link
Contributor Author

I am pretty sensitive to motion sickness, but this effect doesn't feel too bad - just maybe potentially too long. So how about we implement another realistic way to mitigate this in game:

  • Add a check inside the while loop of /mob/proc/dizzy_process() where if you're buckled or resting, your pixel_x and pixel_y get set to 0 instead (or cap the movement to something very small so you can still see the tiniest amount of it).
  • Add a to_chat message at the end (when it leaves the while loop) mentioning the dizziness has passed (so you know to get up).
  • Optionally lower the max dizziness value from 1000 to maybe 500 in /mob/proc/make_dizzy(amount)

Setting it to 500 doesn't seem to change much, possibly makes it even worse.
As for the lying down, that's just confusing for everyone around the marine as they'll try to shake, drag, etc and achieves the same thing as standing in a corner and alt tabbing or minimizing the window.

If the effect absolutely has to stay can it not be shortened to a sane value instead - around half a minute to match the jittery effect? Should be infinitely more bearable that way.

@Drulikar
Copy link
Contributor

Drulikar commented Jul 25, 2023

If the effect absolutely has to stay can it not be shortened to a sane value instead - around half a minute to match the jittery effect? Should be infinitely more bearable that way.

Reducing the max from 1000 to 500 is exactly that - cutting the maximum duration and intensity in half. So as I said you could neuter the visual effects when resting/buckled. As far as people shaking you - communicate.

Please use VSC and find all references of this variable so you can understand how it is implemented, and why I am suggesting what I am suggesting.

And actually, looks like resting already is implemented such that it eats away at the dizziness faster:
image

@GoldenDarkness55
Copy link
Contributor Author

GoldenDarkness55 commented Jul 25, 2023

If the effect absolutely has to stay can it not be shortened to a sane value instead - around half a minute to match the jittery effect? Should be infinitely more bearable that way.

Reducing the max from 1000 to 500 is exactly that - cutting the maximum duration and intensity in half. So as I said you could neuter the visual effects when resting/buckled. As far as people shaking you - communicate.

Please use VSC and find all references of this variable so you can understand how it is implemented, and why I am suggesting what I am suggesting.

And actually, looks like resting already is implemented such that it eats away at the dizziness faster

Isn't 1000 to 500 still 500 seconds at max though? As for intensity I tested it after changing the value to 500 and as I said it is not much different.
I guess it's acceptable with that rest code, but is there some easy way to give the dizzy players a message every few seconds that lying down makes it pass faster?

@Drulikar
Copy link
Contributor

Drulikar commented Jul 25, 2023

The value is not seconds, and as I showed just above it is reduced by either 3 or 15 every /mob/living/carbon/human/handle_regular_status_updates which is called every stun_callback ((stunned/recovery_constant) * 2 SECONDS if stunned), knocked_down_callback ((knocked_down/recovery_constant) * 2 SECONDS if knocked down), knocked_out_callback ((knocked_out/recovery_constant) * 2 SECONDS if knocked out), and /mob/living/carbon/human/Life (2 SECONDS).

So assuming you aren't stunned, knocked down, or knocked out: The value is effectively 0.6 seconds for every 1 dizziness or 0.13 seconds for every 1 dizziness if resting.

I do recommend also doing the other two things I suggested; so far you only have implemented the third optional one I suggested.

To periodically suggest resting, inside /mob/proc/dizzy_process() when you aren't resting throw in a low prob to send a to_chat message to suggest it; or add var that you can assign world.time to so you only send it every so often.

@GoldenDarkness55 GoldenDarkness55 changed the title Removes neuro gas screen spin effect Dizziness status QOL/tweaks Jul 25, 2023
@GoldenDarkness55
Copy link
Contributor Author

The value is not seconds, and as I showed just above it is reduced by either 3 or 15 every /mob/living/carbon/human/handle_regular_status_updates which is called every stun_callback ((stunned/recovery_constant) * 2 SECONDS if stunned), knocked_down_callback ((knocked_down/recovery_constant) * 2 SECONDS if knocked down), knocked_out_callback ((knocked_out/recovery_constant) * 2 SECONDS if knocked out), and /mob/living/carbon/human/Life (2 SECONDS).

So assuming you aren't stunned, knocked down, or knocked out: The value is effectively 0.6 seconds for every 1 dizziness or 0.13 seconds for every 1 dizziness if resting.

I do recommend also doing the other two things I suggested; so far you only have implemented the third optional one I suggested.

To periodically suggest resting, inside /mob/proc/dizzy_process() when you aren't resting throw in a low prob to send a to_chat message to suggest it; or add var that you can assign world.time to so you only send it every so often.

I see, thank you for the explanation. Done the other 2 now, added the prob message and updated title, description and CL to match.

code/modules/mob/mob.dm Outdated Show resolved Hide resolved
code/modules/mob/mob.dm Outdated Show resolved Hide resolved
Copy link
Contributor

@Drulikar Drulikar left a comment

Choose a reason for hiding this comment

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

Code changes should be fine, just be sure to test it out to make sure its doing what you want now and undraft when you're ready.

@Drulikar Drulikar added Feature Feature coder badge and removed Removal snap labels Jul 25, 2023
@GoldenDarkness55 GoldenDarkness55 marked this pull request as ready for review July 25, 2023 12:22
@harryob harryob added this pull request to the merge queue Jul 25, 2023
Merged via the queue into cmss13-devs:master with commit 47f8cad Jul 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Feature coder badge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants