Skip to content
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

Heighten the bar for monsters to be considered LARGE #71803

Merged
merged 5 commits into from
Feb 24, 2024

Conversation

Karol1223
Copy link
Contributor

@Karol1223 Karol1223 commented Feb 17, 2024

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...

All monsters caught in the crossfire (so between 77.5l and 108l) had their volumes heightened to 108.5l with the following exceptions:

  • Sheep - they felt like an appropriate size at roughly 80l honestly. I have a feeling they wouldn't go above 100l and I doubt this will cause massive balance concerns
  • Jumping amalgamation - it had its volume purposefully lowered below the 120l that the abstract it copies from has, so I didn't want to change that
  • Bloated fungal zombie - had its volume adjusted, but also had its weight heightened to match the regular bloated zombie
  • Zombie and fungal versions of the black bear, moose and reindeer had both volume and weight adjusted to be the same as their non-zombie counterparts

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 So since I went and adjusted monster volumes to match, this shouldn't have massive balance concerns at all anymore

@github-actions github-actions bot added [C++] Changes (can be) made in C++. Previously named `Code` Monsters Monsters both friendly and unfriendly. json-styled JSON lint passed, label assigned by github actions astyled astyled PR, label is assigned by github actions Code: Tests Measurement, self-control, statistics, balancing. BasicBuildPassed This PR builds correctly, label assigned by github actions labels Feb 17, 2024
@Karol1223 Karol1223 closed this Feb 17, 2024
@Karol1223 Karol1223 reopened this Feb 17, 2024
@worm-girl
Copy link
Contributor

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.

@Karol1223
Copy link
Contributor Author

Karol1223 commented Feb 17, 2024

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

@worm-girl
Copy link
Contributor

worm-girl commented Feb 17, 2024

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.

@Karol1223
Copy link
Contributor Author

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 Karol1223 marked this pull request as draft February 17, 2024 19:38
@worm-girl
Copy link
Contributor

worm-girl commented Feb 17, 2024

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.

@Karol1223
Copy link
Contributor Author

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 Karol1223 force-pushed the resize-the-size-of-the-size branch from a1ec689 to 8b85681 Compare February 23, 2024 16:50
@github-actions github-actions bot added the [JSON] Changes (can be) made in JSON label Feb 23, 2024
@Karol1223 Karol1223 marked this pull request as ready for review February 23, 2024 17:54
@worm-girl
Copy link
Contributor

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
};

@Karol1223
Copy link
Contributor Author

Karol1223 commented Feb 23, 2024

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.

@worm-girl
Copy link
Contributor

worm-girl commented Feb 23, 2024

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.

@Karol1223
Copy link
Contributor Author

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.

@Maleclypse Maleclypse merged commit 67c658e into CleverRaven:master Feb 24, 2024
26 of 27 checks passed
@Maleclypse
Copy link
Member

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/.

@Karol1223 Karol1223 deleted the resize-the-size-of-the-size branch February 24, 2024 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
astyled astyled PR, label is assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions [C++] Changes (can be) made in C++. Previously named `Code` Code: Tests Measurement, self-control, statistics, balancing. [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions Monsters Monsters both friendly and unfriendly.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants