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

Add Chronic Pain to People Upon Death #2677

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

Lyndomen
Copy link
Contributor

About the PR

adding pain on death that persists until you get a new body. painkiller stonks go up

Why / Balance

value to life, dont die, treat your character as if they want to not die

Technical details

c# and fucked if i know. draft because its a nightmare

Media

Requirements

  • I have tested all added content and changes.
  • I have added media to this PR or it does not require an ingame showcase.

Breaking changes

Changelog
🆑

  • add: Dying now causes your character to suffer from chronic pain, get prescribed painkillers!

@github-actions github-actions bot added size/S 16-63 lines Changes: C# Changes any cs files labels Jan 10, 2025
@Bonktrauma
Copy link
Contributor

I would argue excluding diona from this, considering they can reform themselves at will and i believe in ss13 servers with pain have them not feeling pain?

@Lyndomen
Copy link
Contributor Author

I would argue excluding diona from this, considering they can reform themselves at will and i believe in ss13 servers with pain have them not feeling pain?

new body no pain, same as cloning

@Bonktrauma
Copy link
Contributor

I would argue excluding diona from this, considering they can reform themselves at will and i believe in ss13 servers with pain have them not feeling pain?

new body no pain, same as cloning

What about the second point

@Lyndomen
Copy link
Contributor Author

I would argue excluding diona from this, considering they can reform themselves at will and i believe in ss13 servers with pain have them not feeling pain?

new body no pain, same as cloning

What about the second point

second point that some ss13 severs have it? their lore isnt ours :blunt:

@@ -87,4 +94,13 @@ public override void Update(float frameTime)
component.NextUpdateTime = curTime + TimeSpan.FromSeconds(1);
}
}

private void HandlePainTrigger(EntityUid uid, PainComponent component, TriggerEvent args)
Copy link
Member

Choose a reason for hiding this comment

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

subscribe to broadcast MobStateChangedEvent and if the new state is dead + the mob is a humanoid add pain

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ok this has been changed, it isnt firing off (or erroring out :trollface: ) ty for help

@Lyndomen
Copy link
Contributor Author

i hear complaints that people that dont opt in to pain might not like the blurred screen effect, does anyone have any ideas about similar visual effects that might not cause issues?

@FieldCommand
Copy link
Contributor

An idea, but not sure how it would look, but a combination of the nearsighted trait visual and a pulsing white fog ring (like the red one when you are wounded, just white). Or one of those two.

@github-actions github-actions bot added size/XS Under 16 lines and removed size/S 16-63 lines labels Jan 10, 2025
@Smugman
Copy link
Contributor

Smugman commented Jan 10, 2025

While I like the idea of making death have some negative consequence, I think this is a bit too punishing, will be severely upsetting to many players and will make chemists want to die.

Currently, during a 2 hour shift i can expect to need 200-300u of Soretizone to provide 2-3 refills. With this, I would reasonably have to expect to make Painkillers for around a Third of the Station, who all dont have a "buffer" of pills and will want to get rid of the obnoxious effect immediatly.

Plus, in the case of mass crew-death like during particularly loud nukies, I think this would get even worse.

However, I do like how this would make "teach a lesson" more punishing to be the victim of.

I think that adding some kind of penalty to needing defibrilation is good, but having it be immediatly this bad and only really resolvable via perpetual upkeep from chem or cloning, which is generally only available sometimes (epi 💤) and in limited amounts (biomass, but that might be a skill issue).

Plus, the Idea of people demanding to be swapped into a full new body because they died once seems a bit too out-there for my tastes.

@Lyndomen
Copy link
Contributor Author

Painkiller crate in logi real

@HTMLSystem
Copy link
Contributor

Perhaps there should be a way to turn the chronic pain filter off like you can with colorblindness, as the effect can cause some people migraines and worse. Yes, you should value life, but there are some times where you just die even though you were being careful. And ir would suck to have a migraine inducing filter over something you couldn't control.

@HTMLSystem
Copy link
Contributor

That or you can make it temporary, which I feel would make more sense. Whatever you wanna do.

@Lyndomen
Copy link
Contributor Author

Lyndomen commented Jan 10, 2025

Ok so I'm hearing two issues.

One, the visual effect can be an accommodation issue. I can check on mitigating that a bit.

Two, it might be too penalizing and should have a permanent solution that isn't just "get new body lol".

How do people feel about something like a pain inhibitor surgical implant? Rimworld joywire time

@@ -17,6 +19,7 @@ public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<PainComponent, MapInitEvent>(OnMapInit);
SubscribeLocalEvent<PainComponent, MobStateChangedEvent>(HandlePainDeath);
Copy link
Member

Choose a reason for hiding this comment

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

remove component

@@ -87,4 +90,12 @@ public override void Update(float frameTime)
component.NextUpdateTime = curTime + TimeSpan.FromSeconds(1);
}
}

private void HandlePainDeath(EntityUid ent, PainComponent component, ref MobStateChangedEvent args)
Copy link
Member

Choose a reason for hiding this comment

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

remove ent and component


private void HandlePainDeath(EntityUid ent, PainComponent component, ref MobStateChangedEvent args)
{
if (args.NewMobState == MobState.Dead && args.OldMobState != MobState.Dead && HasComp<HumanoidAppearanceComponent>(ent))
Copy link
Member

Choose a reason for hiding this comment

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

dont need to check old state, replace ent with the event's entity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: C# Changes any cs files size/XS Under 16 lines
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants