Shoggoths can't eat anomalous material #72957
Merged
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
Balance "shoggoths cannot eat artifacts"
Purpose of change
Currently the distorted microlab has some weird and undesirable qualities to it. You are incentivized to go there as quickly as possible when coming near it, because if you wait too long, the shoggoths will eventually eat some or all of the artifacts. This creates bit of logical weirdness; if the shoggoths are eating the artifacts, why are there any left? The answer is because they can't do that until they're in the reality bubble, but that's a clear gamism. Further it's very much a form of "gotcha" gameplay. If you didn't know this thing could happen, you can easily wind up coming to a microlab that's been picked half clean by the shoggoths.
There are other issues with the distorted microlab like how it slowly gets overrun with shoggoths and slimes and becomes more and more dangerous the longer it exists in the reality bubble, but this is the biggest problem IMO.
Describe the solution
There is actually a whitelist for shoggoth item consumption. If left blank, all materials are allowed. Otherwise only the whitelisted materials are allowed. I specifically only want to make one material inedible, so the existing infrastructure wasn't sufficient. I added a "no_absorb_material" which does this instead.
The blacklist must first be passed before the whitelist is checked. If through a JSON mistake something is added to both lists, then the blacklist takes precedence and the material cannot be eaten. (And of course the blacklist takes priority over the universal whitelist).
The blacklist bars no materials if unspecified.
Currently it blacklists anomalous material (artifact material) and monolith, which are the two "nether" based matter sources that to me make sense to disallow shoggoths to eat. They can eat steel, concrete, flesh, etc, anything from Earth just fine still.
Describe alternatives you've considered
IDK really. I feel strongly about this lol
Testing
Compiled locally. Teleported out into a field. Confirmed shoggoths can still eat rocks and newspapers and other random stuff lying around. Confirmed they cannot eat artifacts by spawning a "hollow, transparent cube" and letting the shoggoth tread over its tile a few times.
Additional context