-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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 conjunctivitis from boomer bile #74681
Conversation
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kevin Granade <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Only reason I didn't take eye coverage into account before is because my thought process was, "anything that protects against being boomered would protect against conjuctivitis". I'm an idiot, because literally no eyewear lets you see through it if it's covered in gunk. |
This was the thrust of my work on fluids that wound up getting reverted. If you like, you can comb through what I did there (a check against coverage and breathability via a spell attack) but it seemed like Kevin and Fris were simply not interested in that solution at all. Doing it via flags as you've done in your other PR makes some sense, but it's creating an either/or situation, adding to the already sizable burden of flag compliance that new contributions need to account for, and fails to account for durability damage or other factors that might impede an item's effectiveness. It also means we can't have things like sunglasses or hoods that offer partial protection. I don't want to stop you from what you're doing as my solution isn't the only possible one, but those were the problems I was trying to tackle. I think conjunctivitis is going to either be unnecessarily punitive or come down to a simple gear check without that problem being solved. I made conjunctivitis and the boomer overhaul as a low-impact proof of concept that could set up a much higher-impact system for realistically dealing with acid. On its own, the benefit/gameplay effect of having the disease in place is so marginal that I'm not sure it's worth spending too much brainpower on. |
Yeah there's actually no reason why I can't just check the coverage against a random number instead of a flat 90, I put that in, as well as a multiplier on the duration roll.
Like you mentioned in #72010, I noticed that environmental protection is used as a major hack, with this being just plain ridiculous: if( ft.has_acid ) {
return !is_on_ground() && get_env_resist( body_part_foot_l ) >= 15 &&
get_env_resist( body_part_foot_r ) >= 15 &&
get_env_resist( body_part_leg_l ) >= 15 &&
get_env_resist( body_part_leg_r ) >= 15 &&
// FIXME: Hardcoded damage type
get_armor_type( damage_acid, body_part_foot_l ) >= 5 &&
get_armor_type( damage_acid, body_part_foot_r ) >= 5 &&
get_armor_type( damage_acid, body_part_leg_l ) >= 5 &&
get_armor_type( damage_acid, body_part_leg_r ) >= 5; And as pointed out in #66297, there is a lot of inconsistencies with the water-related flags. I've been questioning what a material giving resistance to acid in |
My plan was to have acid go from a floor hazard that burns your feet (how is it puddling up that much? Most floors are permeable) to something that could splash on you and damage your body and equipment. In that case, material acid protection values were only going to indicate how well-protected the item itself was from acid. Coverage and breathability woud be what it checked to see if it actually kept the acid from reaching your skin. |
One thing I noticed is that some materials have |
Another thing is that waterproof breathable fabrics exist and are standard for things like raincoats, so breathability and water-permeability aren't synonymous. |
I believe I had plans to make the waterproof flags offer some benefit after the regular breathability was calculated - I think I was going to just treat them as 0% breathable for defensive purposes. Didn't get around to it, but it's a simple issue to tackle. |
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
I think in general the interaction between clothes and water should be reworked from being based on a few flags and environmental protection to being based on new material properties. |
If you review the old PRs, I did not take the environmental protection stat into account at all and don't believe any future solution should either. Enviro stats are completely arbitrary and are nowadays used mostly to represent microbial, gas, and radiation(????) protection. Breathability and coverage stats along with WATERPROOF flags are already a good basis for liquid protection. Used in tandem with acid protection, there's plenty to work with as is. The formula was essentially ( chance ) - ( (coverage - breathability) / 2 )%, where chance was a base probability defined by the attack. There was room to account for other factors, such as weather, flags, partial dodges, etc as well, but I didn't get that far. So if an acid blob hit your arm, it would check the average of breathability and coverage on that part and roll a d100 or whatever, going layer by layer until the attack was blocked or the skin was reached. There was more to it, you'd have to review #71584 to get the full picture. |
Also note that acid protection as currently implemented is bugged, see #72010 for a fix that didn't get merged. That's only tangentially relevant but I figured I'd point it out to you in case you wanted to keep working on this stuff in the future. PS I'm not trying to argue too much, just explaining the route I tried to take and why in the hope that the information will be useful to you on your coding journey. 🙏 |
I've been reviewing all your PRs and the discussions on them and the reversions. I reviewed the environmental protection assignments in the JSON, and all references in the code, and it seems to mostly be a rough measure of the "seal" on clothing. All the wetsuit clothing is on the same level as a cleansuit, for example. This is actually useful information, but it's not at all clear and not used very well. I'll attempt to remedy that. I think it's the missing piece I've been looking for.
Don't worry, your input is very valuable, keep it up. |
Glad to hear it. There was one other factor vis a vis acid - I hadn't implemented it, but I was going to count the clothing's current durability against its coverage. That way a pair of leather boots might offer equal protection to rubber ones on the first acid splash, but it would have a chance to become damaged, while the rubber would be functionally immune to that damage thanks to the material's high acid protection value. Thereafter, the damaged leather boots would be more likely to let acid through to the skin, which would exacerbate as subsequent attacks further damaged the leather. This way you could still have non-specialized gear offering a modicum of protection, but you'd really be wanting to look for polyester, oiled leather, rubber/rubberized equipment, or metal to keep your skin and your more delicate equipment safe. In testing, it was pretty handy to throw on a rain poncho over your regular gear, which is something that felt like a logical move in a world where stuff is throwing acid at you. |
I was doing far too much research into chemical protective equipment, and I saw that things like rubber boots and rubber gloves have certain official safety standards. Resistance to abrasions, cuts, tears, and punctures. Because obviously, the instant a piece of chemical protective equipment has a breach, wearing it is a risk. There are also massive charts on manufacturer websites showing the times it takes for a long list of like 50 different caustic chemicals to go through the different gloves they have: acid resist as you want it has a numerical equivalent in official safety standards. The "soft" flag, the cut damage verb, and/or the cut resistance could be used in combination with the durability to determine acid penetration. Something with "scratched" as the cut damage verb may not have as many holes or punctures in it when damaged. |
Getting into the nitty gritty of "butyl rubber protects from acid x and acid y but not acid z, and only at these temperatures" is probably creating too much work for future contributors. There's a reason it's currently all just "acid" damage. Even if there is an eventual desired goal like that, a first pass probably shouldn't seek to split acid damage into twenty new damage types. IMO you'd just want to get something working as-is and then go from there. |
That would be ridiculous. We only have one or two types of rubber gloves and one or two type of zombie acid anyway, I believe. We might be getting a bit off-topic (waiting to see if someone gives us a hand slap). My Discord is |
Summary
Features "Add conjunctivitis from boomer bile"
Purpose of change
Reimplementation of a piece of #69555 by @fairyarmadillo.
Currently you can tank gallons of zombie bile directly to your eyes with no lasting effects.
Describe the solution
Now tanking gallons of zombie bile can inflame your eyes (conjunctivitis, AKA pink eye).
A few notes on the effect:
smoke_eyes
).Describe alternatives you've considered
Make boomer bile injectable as a low-cost alternative to heroin.
Testing
I took a bunch of bile to the face until I caught a case of the pink, and then I used the wait function to verify that it was adding occasional additional suffering.
Additional context
None.