CleverRaven / Cataclysm-DDA

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

Boomers are a bit frustrating #72160

Closed AnotherSeawhite closed 5 months ago

AnotherSeawhite commented 5 months ago

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

71964 introduced new boomer splash attacks, which can make the character's clothes filthy, or give a disease to characters.

It's a good change, but it also makes gameplay a bit of irritating in some ways.

Since fat zombies upgrade into boomers, they can be anywhere, everywhere. Not just one, but at least three or four in a town. This forces the players to either flee out of any combat or switch to ranged weapons. (or they might not have/use ranged weapons for reasons)

Solution you would like.

Boomers could either:

Describe alternatives you have considered.

all written above.

Additional context

I mean, I love this change. It makes the game more challenging, but I also noticed it's a bit too much.

Inglonias commented 5 months ago

The hard counter for getting conjunctivitis is wearing glasses or goggles - eye protection. As for filthy clothing, that's not as major an issue. Are there other diseases you can get?

Karol1223 commented 5 months ago

I feel like the issue with boomers and filthy clothing is less that boomers can make clothing filthy and more that boomers are the only thing that can make clothes filthy so it really stands out. Personally, I'd be in favor of doing it similar to how PZ does it with clothes getting bloodied/covered in whatever as you fight and wear them, but I think I heard that this was vetoed before.

AnotherSeawhite commented 5 months ago

I already said this in Devcord, but I'll leave the comment just in case.

My point here was that they spawn way too much for early special zombie. The "filthy" and "diseases" part was just an explanation of the PR. And the point of this issue is that boomers could need more ways for players to avoid them for their spawn rate, or it could have reduced spawn rate. I'm sorry if I worded it poorly.

TheSaddestGoomba commented 5 months ago

Perhaps exploding zombies in general could give some kind of sound cue? Maybe a turn or two delay for the ones that can self-detonate before death.

A couple of things that I've heard mentioned as desirable changes that could mitigate this are a hygiene overhaul and the ability to push/shove enemies away from you. Those are both big projects though.

XygenSS commented 5 months ago

Maybe boomers could do with a wind-up in their attack. A visible pre-movement that is noted on the log so the player can take action against it.

This gives melee fighters a chance to kill boomers without getting showered with gore & gives an option for players to run away from a boomer that is about to shoot bile.

To make running away from bile harder, their projectile range could be made higher than the attack trigger range, so that the player has to run a good few tiles away to guarantee that the bile will not reach.

Vsevolod-Shustov commented 5 months ago

It's a good change

I'd like to argue that. I, personally, had enough "fun" with filthy clothes back when washing board only spawned in museums and wasn't craftable. If someone can't live without washing their clothes after every fight, they can make a mod and call it "cataclysm: powerwash simulator ahead", not force their filthy tastes on everyone.

fairyarmadillo commented 5 months ago

Their spawn rate or the rate at which they use their special attack could easily be adjusted, as it was set back when they were no threat at all, and having filthy clothing is not a big deal. I'd also be curious as to how often people's clothes are getting filthy. In testing it was not happening often even with less than idea equipment.

Their explosion attack is dodgeable, as is the barf attack. You're not required to be out of melee, that's just one way to handle them.

72169 is reverting the change so maybe it's moot. It looks like for now they're going back to the way they were, I'm not sure what'll happen after that.

I feel like the issue with boomers and filthy clothing is less that boomers can make clothing filthy and more that boomers are the only thing that can make clothes filthy so it really stands out. Personally, I'd be in favor of doing it similar to how PZ does it with clothes getting bloodied/covered in whatever as you fight and wear them, but I think I heard that this was vetoed before.

I feel like that would be better suited to a more generalized hygiene system, which IMO would require a lot of automation.

IdleSol commented 5 months ago

@Vsevolod-Shustov

I'd like to argue that.

I'm interested in your opinion.

What if there are intermediate stages? Say dirt stains. Collect 10 and you get filthy clothes. Use water and loosen the stain so it takes 20 of them to turn the clothes into filthy clothes?

fairyarmadillo commented 5 months ago

Actually I should specifically ask the OP: How often are your clothes getting filthy? Did you have an entirely brown outfit by the end of week 2, or is this just something you are worried about but haven't directly experienced?

Another solution might be to reduce the range of the basic boomer explosion to 1, allowing at least their death effect to be hard countered with a spear. Delaying the explosion might be nice too, but that would require some extra code magic.

AnotherSeawhite commented 5 months ago

Actually I should specifically ask the OP: How often are your clothes getting filthy? Did you have an entirely brown outfit by the end of week 2, or is this just something you are worried about but haven't directly experienced?

I think it happened for like, around 7 times. I stopped counting. I faced a lot, I mean, a lot of boomers in a month and a week save. My character's mood was important for crafting items and learning, so I immediately avoided any combat I was doing if I encountered one. And when I do get hit by bile (mainly by puke, i have 5 level of dodge but low dodge attempts for some reason) and get my clothes dirty, my Squeamish character has to keep wearing it until I find a replacement or some soap to wash it off.

fairyarmadillo commented 5 months ago

That's good feedback, thanks. The intent was that you would put on a cloak or a poncho or something over your armor to protect it, and either wash or discard that item when it got too gross. Having a couple different outfits at home and changing out of your filthy armor before a crafting project might help, that was all intended for immersion. It was also an attempt to tempt people into using guns instead of just meleeing everything. There are guns all over the place now, no need for people to be shy about using them, but it sounds like the rate of filth is too high in any case. The PR that added it said the intent was for it to be an occasional thing, not frequent at all.

To sum my thoughts up: the thing to do is reduce the rate at which the attacks cause filth and make boomers less common overall. Reducing the radius of their death attacks and making that only happen after a couple of seconds would be neat, and would add some interesting situations like trying to get away from a boomer corpse before it goes off, but there's a zombie trying to grab you. Boomers could also barf less often.

But it looks like it's all being reverted and I'm not sure if it will be re-implemented, so problem solved either way I guess.

AnotherSeawhite commented 5 months ago

I honestly liked the change. I hope it returns in better shape.

IdleSol commented 5 months ago

Since fat zombies upgrade into boomers, they can be anywhere, everywhere. Not just one, but at least three or four in a town. This forces the players to either flee out of any combat or switch to ranged weapons. (or they might not have/use ranged weapons for reasons)

I'm a melee fighter. Knives and rapiers.

I don't see a problem with that. If firearms are not available. Use throwing, traps, thorn bushes. A street lamp gives protection from boomers (slippery surfaces made more difficult).

Cataclysm is... Adapt or die.

fairyarmadillo commented 5 months ago

You can also throw most combat knives, bayonets, etc for quite a bit of damage.

AnotherSeawhite commented 5 months ago

If firearms are not available. Use throwing, traps, thorn bushes. A street lamp gives protection from boomers.

I would, if there's just one boomer and not four...

IdleSol commented 5 months ago

Hit them with a car.

Tough situations happen. But four boomers is just four boomers. The most you'll be threatened with is having to clean your clothes.

Of course, if you rush into battle unprepared, you're in trouble. But is it the boomers' fault?

ADekema commented 5 months ago

Perhaps only the outmost clothing should get filthy.

Vsevolod-Shustov commented 5 months ago

I'm interested in your opinion.

"Literally why. Why someone decided to spend their time on implementing this instead of, idk, nested containers in AIM. Or fixing bugs. Oh well, time to add all boomers variants to blacklist, unseen hunter was getting lonely there."

fairyarmadillo commented 5 months ago

Perhaps only the outmost clothing should get filthy.

That is essentially how it worked. It was a bit more complicated than that, but you generally had about a 5% chance to have a single item get dirty if you failed to dodge. It could go as low as 2% if you wore the right gear on the outer layer.

idk, nested containers in AIM. Or fixing bugs

I don't have any problems with inventory management when I play and I fix bugs pretty often. I also don't really understand how the inventory code works, it's extremely complicated, so even if I did have any problems there I wouldn't be able to fix them.

IdleSol commented 5 months ago

I would, if there's just one boomer and not four...

A naked party ended with an unexpected encounter.

gif ![test](https://github.com/CleverRaven/Cataclysm-DDA/assets/155764584/62e888b9-93fe-476c-ad0d-094ae9dfbdd1)

Of course, this could be considered using a bug or a cheat. And maybe someone will want to fix it. But for the moment (2024-03-03-03-1344) this is a working method.

LucioMagno commented 5 months ago

I really dont think this should be reverted, its a good change.

fairyarmadillo commented 5 months ago

You might have more luck commenting on the pull requests doing the actual reversions.

Montimorency commented 5 months ago

What I don't like about boomers now is that the slip factor of their bile is such that seemingly any character, with any stats or equipment, has a 99% chance of falling on an affected tile. Even if they just wait a tick on that tile. Is that even intended performance? It's funny watching every zombie fall over themselves when crossing bile, but the effect is altogether too strong. I wouldn't be sad to see it gone entirely for pavement at least.

(Actually, the slip effect is quite annoying for own vomit, but at least that's not a threat.)

fairyarmadillo commented 5 months ago

What I don't like about boomers now is that the slip factor of their bile is such that seemingly any character, with any stats or equipment, has a 99% chance of falling on an affected tile. Even if they just wait a tick on that tile. Is that even intended performance? It's funny watching every zombie fall over themselves when crossing bile, but the effect is altogether too strong. I wouldn't be sad to see it gone entirely for pavement at least.

(Actually, the slip effect is quite annoying for own vomit, but at least that's not a threat.)

image image

No slip, even walking back and forth or waiting long periods of time. This character has 10 dex and 3 athletics. No traits, starting equipment.

The slip chance is controlled by dexterity, athletics, and your balance and footing scores. You get a bonus for the deft trait, a penalty for the clumsy trait, a penalty for being on skates, a penalty for being on smooth ground, a penalty for running, a bonus for the slimy trait, and some leg mutations make you immune. You're also immune if you're crouching, and the slipperiness of a tile is modified by the amount of bile in it.

If you're slipping and falling a lot, it's probably because you're extremely overencumbered, badly wounded, or you have no athletics skill. Fixing any of those things should make bile something that rarely affects you, and even so, you can just go around it.

It was hitting monsters too often. The splash attack PR included a fix for that. It also made it so that boomers left less bile on the ground by making it spread in a patchy pattern rather than a single massive pool. Both are being reverted along with the slip chance entirely, so, merry christmas I guess.

Montimorency commented 5 months ago

Here is what happens when I just stand on a puddle of bile on a road. Just stand on it, pressing '5'.

32t

Dex: 10 Athletics: 6 Footwear: dive socks, combat boots, riot armor, Foot encumbrance: 13 Carry Weight: 6% Health: 4.5 bars

On any character, at any stage, I experience a 99% chance of slip. It does not decrease with health, or gear, or skills, or stats. To repeat, the slip chance is static and near-absolute for me. Maybe I'm always bugged, but yeah, scrapping the feature sounds good. Corpse juice shouldn't magically eliminate friction.

fairyarmadillo commented 5 months ago

It doesn't, as I have demonstrated. You are probably doing something that makes it worse, or you have encountered a bug. Bugs are fixable, and if you're doing something wrong I can point it out to you.

What is your torso encumbrance, arm emcumbrance, head encumbrance? Are you running? Any stat debuffs? Skating? What traits do you have? Mods? A screenshot of your @ screen and a list of mods would probably be enough to figure out what's wrong.

No one else has reported this issue in four months, and I've had feedback from many players that it's working as intended. I have played extensively and it's been working fine on my end.

Montimorency commented 5 months ago

So, when you're speaking of torso, head, and arm encumbrance, that may already be a sign that the formula is imbalanced toward slipping. Wearing a heavy backpack or a heavy helmet should basically never cause a slip when just standing. For that matter, if such a slip chance were justified, merely crouching shouldn't nullify it (if anything, why wouldn't it worsen it?).

I experimented with various encumbrances, which didn't help. What does make a difference is torso encumbrance.

To start with, I went clean with only armor, no bags. The same 3 tiles - 1 each of "puddle of bile", "bile splatter", and "bile stain" - were used to cover the spread of terrain effects (though anecdotally I suspect "bile stain" is somehow the strongest). When waiting I waited one minute on each bile effect and took the highest number of slips. When not Running I used Walking posture. Base character sheet:

base

Torso encumbrance: 18. Carry weight: 20%. In one minute of running, I slipped 6 times (which I do find unwarranted with my stats and skills). In one minute of walking, I never slipped. In one minute of standing, I never slipped.

Next, I donned a high-volume rucksack, and a hunting backpack, both empty. This brought my torso encumbrance to 44+18, and my carry weight to 28%. In one minute of running, 15 slips. Walking, 3 slips. Standing, 3 slips. This is already looking pretty silly.

Next, I added an (empty) backpack. Torso encumbrance: 46+20. Carry weight: 29%. Running, 18 slips. Walking, 2 slips. Standing, 2 slips.

Next, I added my main storage, a hiking backpack with some stuff, and another empty backpack. Encumbrance: 69+32. Carry weight: 48%. Running, 26 slips. Walking, 18 slips. Standing, 21 slips.

I'm stopping here because I'm appraching the game's limit in how many times a character can cycle through slipping and standing up in a given period of time.

The only gameplay mods on this char are MoM, Dinomod, and Bombastic Perks. My effects are Vaccinated, Happy, Nether Attunement [6], and Enhanced Blocking. No traits related to movement. No running or skating. No strength-enhancing powers used. Full stamina with each set.

y45w

So it seems to boil down to two unacceptable elements:

  1. The slip chance for standing seems to be at least as high as for walking.
  2. Torso encumbrance is outlandishly penalized in slip chance starting at very moderate encumbrance, at least for walking.

If there were no slip chance for standing, slip chance for running were cut in half, and slip chance per point of torso encumbrance/weight were scaled down an order of magnitude, it would be fine...

fairyarmadillo commented 5 months ago

So, when you're speaking of torso, head, and arm encumbrance, that may already be a sign that the formula is imbalanced toward slipping. Wearing a heavy backpack or a heavy helmet should basically never cause a slip when just standing. For that matter, if such a slip chance were justified, merely crouching shouldn't nullify it (if anything, why wouldn't it worsen it?).

I didn't design limb scores, that's just how they work. No, it's not imbalanced toward slipping, it's heavily weighted for dex and athletics - 10 dex is only average, 6 athletics is above average. The crouch thing is because crouching is used in this game for walking slowly and carefully, that's why it's silent.

3 slips in 60 seconds is not a big deal.

Your problem is that you're wearing two backpacks, one of them is a hiking backpack, which is extremely encumebring - 69 is comically high. This would also cause you to get totally wrecked in combat. Your character is walking around like one of the junkyard ladies in Labyrinth, of course they'd have trouble keeping their balance. That's penalizing you in waaaay more ways than just your slip rate. That's why the first thing people tell you in this game is to drop your backpack when you're anywhere near anything dangerous.

There's currently no difference between standing still and walking. A fix is planned for this, the current implementation is step one in a multistep process - at that time, standing-still slips would go away.

Montimorency commented 5 months ago

3 slips in 60 seconds is not a big deal.

I would definitely disagree with that baseline. You can test this in real life, if you have to. Induce yourself to vomit on asphalt (since bile in-game has the same ground effect as vomit, or close to it). Put on as many layers of clothing as you can, and wear two backpacks filled with bricks. Step repeatedly on vomit without slipping. Add a banana peel for kicks.

But - if no one objects to these slip rates, why are they being reverted?

fairyarmadillo commented 5 months ago

But - if no one objects to these slip rates, why are they being reverted?

The reversions have nothing to do with the slip rates, and this issue isn't even about the slipping, it's about bile making your clothes filthy, so this conversation has gotten pretty far off-topic. I replied because I figured that you were doing something wrong and wanted to help - and I hope I have.

The reasons given for the reversion involve how big the PRs that added them were and some disagreements about the code implementation itself.

Montimorency commented 5 months ago

I see that there was some discussion about discriminating terrain types more exactly, which I agree with. Note that I've only mentioned road/pavement terrain here, not other terrains that happen to have ROAD flags. I'm fine with wooden or metal floors being slippery to laden characters (albeit at a much more generous formula, but nevertheless); they are a slight slip hazard even to an unencumbered person and without being coated with anything.

But, for example, a fit infantryman wearing full battle kit (>100 lb) should really not be slipping in their combat boots on a synthetic surface, unless, like, sprinting in a panic.

fairyarmadillo commented 5 months ago

But, for example, a fit infantryman wearing full battle kit (>100 lb) should really not be slipping in their combat boots on a synthetic surface, unless, like, sprinting in a panic.

IMO the core of the problem is that backpacks themselves encumber too much. The extremely high encumbrance on them feels like a relic of older game design. Like yeah I wouldn't want to swordfight while wearing a backpack, but I'd certainly be able to.

There's probably room to quibble over which floors should be slippery and how much - I agree it's not perfect currently - but if it gets tossed altogether then that's all out the window so I don't see much of a point at the moment.

Montimorency commented 5 months ago

Hmmm....

For reference, the game has a full suit of tempered steel plate armor at 44 lb and 20 torso encumbrance. Sure, I guess we could revamp the encumbrance system overall and see how that interacts, but giving the slip formula less reliance on balance and other scores with current encumbrance would probably be easier.

IdleSol commented 5 months ago
flowchart TD

Boomer --> splash_attack --> check_dodge --> |miss|nothing_happens
check_dodge --> |hit|check_body_part --> check_clothing_layers --> |sort layers| text1

text1 --> text2 -->|No| text1
text2 -->|Yes|text4 --> text5 --> |Yes|text6 -->|Yes|text7 --> add_flag_FILTHY --> text8 -->text1
text5 -->|No| text8
text6 -->|No| text8

splash_attack ----> |liquid_volume| liquid_amount --> text3 -->text1

text1("for (for all layers of all clothing??)")
text2("rng( 1, 100 ) <= armor.get_coverage && liquid_remaining > 0")
text3(liquid_remaining =liquid_amount )
text4(add_message: Your ITEM is splashed with ... liquid)
text5("rng( 1, std::max( 2, 200 - armor.breathability ) ) < liquid_remaining")
text6("some conditions && rng( 1, std::max( 2, 200 - armor.breathability ) ) < liquid_remaining")
text7(add_message: ... is covered in filth)
text8("liquid_remaining = std::max( 0, liquid_remaining - ( ( armor.get_coverage + armor.breathability ) / 2 ) )")

Did I miss anything?

In the view of a person far from programming.

Unnecessary check of condition (rng( 1, std::max( 2, 200 - armor.breathability ) ) < liquid_remaining). Too many actions in one loop. Perhaps the while liquid_remaining > 0 loop would be better?

Some simplifications have been made in the code. For better perception.

Montimorency commented 5 months ago

That's impressive flowcharting!

The liquid and splash attack mechanics are interesting Fairy, I hope your work gets developed further.