Cataclysm-DDA icon indicating copy to clipboard operation
Cataclysm-DDA copied to clipboard

Grabs required for crush scale with size

Open RenechCDDA opened this issue 1 year ago • 5 comments

Summary

None

Purpose of change

Any creature with a grab can theoretically suffocate you, even if there is a massive size difference. Mostly this is relevant when the player is very, very big

Describe the solution

Grabbers required has gone from: tiny/small/medium/large/huge 2/2/2/2/2 to 1/1/2/3/4 Only characters with mutated different sizes will be affected, otherwise the grabber requirements remain 2 and all calculations are the same as before.

Oxygen loss scales to as before, relative to the required grabbers.

Changed out the magic numbers for the crush_grabs_req variable so it can be a one-line change in the future if we want to recalculate this

Describe alternatives you've considered

Factoring in the grabber's size as well? The same enum-->integer cast could be used

Scale by grab_strength?

Testing

Got a new character grabbed, ran through it, oxygen loss values were as expected. (character was torn to shreds dozens of turns before oxygen loss was a problem)

Additional context

Honestly this is not a serious problem, since your character can just swat the enemies away like flies. A character has to crushed for upwards of 82 turns (avg vs 2 zombies, 0 walls) before damage even starts being applied. But I was already looking at the code and found ways it could be better. So I made it better. Yay.

RenechCDDA avatar Sep 11 '24 09:09 RenechCDDA

I also considered the idea that TINY characters should just be pancaked instantly by a zombie 10x their size, but I guess that wouldn't be very fun.

RenechCDDA avatar Sep 11 '24 10:09 RenechCDDA

grab_strength is a bit on the magic side, I wouldn't add more functions to it.

Scaling off the grabbers' size (or the size difference) would be a good idea, though instead of setting the limit it could determine if the given grabber counts as a crush source - ex. tiny grabbing mobs can't crush normal characters but might just be enough for a mouse mutant.

Venera3 avatar Sep 11 '24 10:09 Venera3

You've only playtested large? It looks like playing a tiny or small character would become practically impossible.

Psithief avatar Sep 12 '24 03:09 Psithief

Meleeing as a tiny mutant (30ish kg bodyweight) would be deadly, which is an important distinction. All the usual force multipliers are still there.

Venera3 avatar Sep 12 '24 05:09 Venera3

You've only playtested large? It looks like playing a tiny or small character would become practically impossible.

If the tiny mutant is strangled for two whole minutes by its opponent, then, sure you can call it "practically impossible".

Literally all you have to do is break the grab or kill the zombie sometime within that two minute window.

RenechCDDA avatar Sep 12 '24 08:09 RenechCDDA

Tiny characters will generally have very high dodge and dexterity scores, which should help them deal with grabs being more dangerous.

worm-girl avatar Sep 14 '24 05:09 worm-girl

Rebased to resolve the build error from the bad commit it was on.

Scaling off the grabbers' size (or the size difference) would be a good idea, though instead of setting the limit it could determine if the given grabber counts as a crush source - ex. tiny grabbing mobs can't crush normal characters but might just be enough for a mouse mutant.

I like the idea, but eh... not a lot of desire to do any more work on this right now. Would be a cool followup PR if either you or anyone reading is willing 😉

RenechCDDA avatar Oct 04 '24 10:10 RenechCDDA