CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.32k stars 4.14k forks source link

Convert gas and radiation immunity to use a coverage-based system #69825

Closed DoctorBoomstick closed 6 months ago

DoctorBoomstick commented 10 months ago

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

As part of #66424, a PR seeking to expand the variety and accuracy of CBRN equipment within CDDA, I was attempting to make the player have to dawn multiple pieces of equipment to gain full protection from gases and radiation: having to put on overboots, gloves, NBC trousers, a jacket, and a gasmask before they can be considered protected. However, based on what I found out after asking in the discord (https://discord.com/channels/598523535169945603/598535827169083403/1178701833162727505), it seems that when the player dawns a single item with the gas or radiation-proof flags, no matter the coverage, they will be completely protected regardless. At this stage, if I gave overboots the rad_proof flag, all the player would need to do is pull those on, at which point they could saunter into a reactor core in just their underwear and be completely fine.

Solution you would like.

I think that the player should only be considered gas- or radiation-proof if all their body parts are covered by equipment that provides the flag, rather than one magical item providing full protection regardless if it covers the whole body, torso, pinky finger, or left nostril.

Describe alternatives you have considered.

I suppose, for the purposes of the aforementioned PR, one could simply abstract all CBRN gear to a single item as they are currently, but I believe it’s very much not the ideal and fundamentally defeats the point of the PR.

Additional context

No response

fairyarmadillo commented 10 months ago

I'm beginning a coverage-based system for liquid attacks in #69555

Mine only currently involves bile and will later be expanded to include acid and similar. Shouldn't conflict with any gas stuff, but just a heads up.

Terrorforge commented 10 months ago

As far as I know, the GAS_PROOF flag doesn't even do anything. I can find no code that takes it into account, and in practical gameplay I've never found a reason to seek it out. All gasses in the game act exclusively on the mouth and/or eyes, so as long as you're wearing a gas mask you can run around in toxic gas completely naked.

This is at least in part because most of the gases we simulate, like smoke and tear gas, have little to no effect anything but mucus membranes and perhaps completely exposed skin. Toxic gas could absolutely be made more like something like mustard gas, which has very nasty effects on inadequately protected skin, but it currently isn't.

Speaking of simulation, one argument we've been having for ages is that more gradual armor-based system of protection against electricity and acid* would help from a balance perspective, but it's not particularly realistic. However, it would make sense for radiation, where protection tends to be more along the lines of "you get 10 minutes rather than 3" than total immunity. Indeed, CBRN gear may or may not protect from direct radiation at all - the main defense it provides is shielding you from radioactive materials that would otherwise collect in or on your body, continuing to irradiate you.

*we have this but it's kind of a relic system, and at any rate most acid damage is so low that adequate acid resist often means total immunity

github-actions[bot] commented 9 months ago

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[bot] commented 7 months ago

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.