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

Heighten the bar for monsters to be considered ``LARGE``

Open Karol1223 opened this issue 1 year ago • 6 comments

Summary

None

Purpose of change

During the work on #71170 it came to light that our bar for a monster to be considered LARGE was laughably low at 77.5l of volume. Historically this was the middle ground between the volume of a human and a cow, but our cow volume has since been revised and entered HUGE territory, making this entire line of reason fall apart.

Describe the solution

Bump the minimum volume to 108l. This is the rough middle ground between our current volumes for humans and black bears. I have a hunch that our black bear volume is just not updated to be accurate, frankly, but it'll do the job for now...

Describe alternatives you've considered

Testing

I didn't, but I asked Guardian to compile the game with the bar set at 120l and supposedly nothing fell apart. Now just to see if the tests get an aneurysm or not.

Additional context

This should not have massive balance concerns, but it is important to note that some enemies will now be subject to more Martial Art bullshit to my understanding (for example the wrestler escaped the grasp of sweeping during its last audit, now it goes back to being sweepable). Other thing that this will affect is that there may be some more wiggle room for animal container type items, but I am not even sure we have one that worked specifically on monsters up to MEDIUM

Karol1223 avatar Feb 17 '24 08:02 Karol1223

Napkin math says this works out for a 7 foot human too (they'd land around 110 at nominal BMI), so this checks out on the mutation front.

worm-girl avatar Feb 17 '24 16:02 worm-girl

Napkin math says this works out for a 7 foot human too (they'd land around 110 at nominal BMI), so this checks out on the mutation front.

Thanks for calculating that, I genuinely forgot we had mutations that increased size. Though... I don't think we change corpse volume for mutations, do we? 🤔 I'm assuming it affects the volume of the NPC/Character while they're alive, though, and that's the important part here

Karol1223 avatar Feb 17 '24 17:02 Karol1223

Thanks for calculating that, I genuinely forgot we had mutations that increased size. Though... I don't think we change corpse volume for mutations, do we? 🤔 I'm assuming it affects the volume of the NPC/Character while they're alive, though, and that's the important part here

AFAIK the specific volume of a Character is never recorded anywhere, just their size category, weight, height, and BMI. All Characters leave the same generic corpse object when they die.

You'll want to update boomers. In #71584 I noticed that huge boomers were never huge, only large, and here in this PR they're cut down to medium. I rename them to Big Boomer in my PR, but don't touch their size. All boomers (and bloated zombies, tearjerkers, gasoline zombies, etc) are supposed to be large so that they're too fat to fit through windows, and big boomers are supposed to be bigger than that, but probably not huge.

Boomer Gluttons do seem like they're supposed to be huge, as they're the "hulk" of the boomer line. You might also want to bump corrosive zombies up so they're on the bigger end of large, as they're basically a cross between a boomer and an acid zombie.

Mi-go also probably need a bump, as they too were intended to be too big to get through a window. In most cases, stepping a monster down from Large is actually going to make them more dangerous for precisely this reason. There were very few large monsters as it was and this knocks almost all of them to medium as their volumes were just copy-pasted at just above the threshold, rather than actually thoughtfully picked out.

worm-girl avatar Feb 17 '24 17:02 worm-girl

I was under the wrong impression that going through windows came to play at HUGE. This PR will affect more balance than I assumed, then. I'll have to draft that and come back to this soon.

Karol1223 avatar Feb 17 '24 19:02 Karol1223

I was under the wrong impression that going through windows came to play at HUGE. This PR will affect more balance than I assumed, then. I'll have to draft that and come back to this soon.

Largeness does at least all of the following, and probably way more:

  • increases a monster's chance to break traps when it steps on them
  • limits its ability to traverse through certain vehicle tiles
  • increases the accuracy of all ranged attacks and shrapnel vs that monster
  • increases how long it takes to butcher
  • penalizes the monster's dodge
  • reduces the length of stun effects, both the beanbag/riot turret stun and general "lose turns" stuns
  • reduces the effectiveness of some poison and venom effects
  • increases the carrying capacity of pets
  • reduces the monster's ability to be protected or hidden by cover (ie furniture)
  • increases the sound of a monster's footsteps
  • makes the monster get a roll bonus to being pushed over or knocked down by any effect (this is hardcoded and separate from technique stuff)
  • makes the monster unable to travel through windows or other narrow passageways

I would suggest not changing anything unless you were willing to do a full largeness audit, because it would significantly impact a lot of stuff. Most monsters are not set to their "actual" size, they're just set to whatever size that most/all monsters of their intended size category have, which is usually 92.5L for Large monsters and 62.5L for Medium ones. I suspect this was done via a script at some point back when monsters were given actual numerical volumes and not just a basic size category.

worm-girl avatar Feb 17 '24 20:02 worm-girl

I would suggest not changing anything unless you were willing to do a full largeness audit, because it would significantly impact a lot of stuff. Most monsters are not set to their "actual" size, they're just set to whatever size that most/all monsters of their intended size category have, which is usually 92.5L for Large monsters and 62.5L for Medium ones. I suspect this was done via a script at some point back when monsters were given actual numerical volumes and not just a basic size category.

I do want to go through a zombie volume audit, this is what sparked #71170 and so if I don't do the C++ part now I'll just have to deal with it later. In the meantime, with the changes in the abovementioned PR this would make fat zombies unable to go through windows because the minimum volume for LARGE is so abysmally low. I will likely just go through the monsters affected by the change here and manually audit their weight and volume to still be large until I finish hooking up the copy-froms and can audit things properly.

Karol1223 avatar Feb 18 '24 12:02 Karol1223

Mother of god you actually did it lol.

I'd recommend changing the notes in creature.h line 66+ to something like

enum class creature_size : int {
    // Keep it starting at 1 - damage done to monsters depends on it
    // Cat, human toddler
    tiny = 1,
    // Labrador, human child
    small,
    // Wolf, human adult
    medium,
    // Tiger, human sumo wrestler
    large,
    // Cow, shoggoth
    huge,
    // must always be at the end, is actually number + 1 since we start counting at 1
    num_sizes
};

worm-girl avatar Feb 23 '24 18:02 worm-girl

Mother of god you actually did it lol.

Mostly thanks to @harakka making a script that handily pointed me towards exactly which monsters got caught in the crossfire. Was smooth sailing from there.

I'd recommend changing the notes in creature.h line 66+ to something like

enum class creature_size : int {
    // Keep it starting at 1 - damage done to monsters depends on it
    // Cat, human toddler
    tiny = 1,
    // Labrador, human child
    small,
    // Wolf, human adult
    medium,
    // Tiger, human sumo wrestler
    large,
    // Cow, shoggoth
    huge,
    // must always be at the end, is actually number + 1 since we start counting at 1
    num_sizes
};

Wolves are actually small because... reasons? Yeah our monster sizes need a thorough cleaning. Wolves should probably be medium realistically, but that's an issue for the future I suppose. For now I only put adult humans in medium. Because I feel like sheep are not as helpful of a size comparison as they may sound...

EDIT: Wolves are smaller than labradors. What a cursed world.

Karol1223 avatar Feb 23 '24 18:02 Karol1223

Oh! Our "wolves" are actually coyotes now, that's right. They just kept the old monster ID for compatibility. Coyotes IRL are usually a little smaller than a labrador.

edit: wait, is that right? HHG still shows me a wolf. I don't think they spawn anywhere outside of like zoos though.

worm-girl avatar Feb 23 '24 18:02 worm-girl

Oh! Our "wolves" are actually coyotes now, that's right. They just kept the old monster ID for compatibility. Coyotes IRL are usually a little smaller than a labrador.

edit: wait, is that right? HHG still shows me a wolf. I don't think they spawn anywhere outside of like zoos though.

No, our wolves are wolves. Coyotes are coyotes. Wolves got yeeted from wilderness spawns a while ago because there's no wolves in NE, that's right. As it stands they're zoo-exclusive. It's hard to tell with our zoos sometimes since from what I recall they're kind of a mess.

Karol1223 avatar Feb 23 '24 18:02 Karol1223

Oh! Our "wolves" are actually coyotes now, that's right. They just kept the old monster ID for compatibility. Coyotes IRL are usually a little smaller than a labrador. edit: wait, is that right? HHG still shows me a wolf. I don't think they spawn anywhere outside of like zoos though.

No, our wolves are wolves. Coyotes are coyotes. Wolves got yeeted from wilderness spawns a while ago because there's no wolves in NE, that's right. As it stands they're zoo-exclusive. It's hard to tell with our zoos sometimes since from what I recall they're kind of a mess.

So the wild thing about NE is that even some tiny towns like Attleboro pop 47K have zoos, https://capronparkzoo.com/.

Maleclypse avatar Feb 24 '24 05:02 Maleclypse