Make a zombie-flavored breather and cut spawns of them in meat lab #74663
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
None
Purpose of change
Fixes #71349
As reported in the above issue, meat labs were suffering from pretty bad slowdown due in part to breather aggression and in part due to there just being way too many breathers.
Describe the solution
Made a clone of breathers and breather hubs that are exactly the same but on team zombie.
Except they also have a smaller radius, they spawn within 3 tiles of the hub instead of 4.
I also cut the base spawn rate of breather hubs in meat labs a lot, to 1/10 the previous number.
In aggregate that means there are about 1/20th as many breathers per area in the labs, and on top of that there are significantly fewer inter-faction checks happening because the vast majority of meat lab occupants are amalgamations, which are in the zombie faction.
Describe alternatives you've considered
There's a potential tradeoff of breather spawn radius vs number of breather hubs that spawn. This just gets the total numbers reigned in to a decent number.
I do think the faction shift is necessary, even with a hundred or so breathers that's still a lot of aggression checks getting triggered for no reason.
Testing
Found a meat lab with teleporting around, waited a few minutes to let the breather population stabilize, then ran the game under perf to capture a profile.
Checked with debug that the things are actually spawning.
Killed a hub to verify the on-death effect is kicking in.