CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
9.8k stars 4.08k forks source link

Winter adaptation for Ectothermic #73843

Closed Kamejeir closed 1 month ago

Kamejeir commented 1 month ago

Summary

Features "Cold-blooded winter adaptation"

Purpose of change

Anid proposed in #66539 to make cold-blooded creatures enter a sort of homeostasis with what Fairyarmadillo mentioned, which was never followed up on as far as I can see.

Describe the solution

Make Ectothermic not take frostbite damage, at the cost of having their uptime in the winter decrease by making them a lot more sleepy.

Redid the mutation path of Temperature Tolerance, including Ectothermic as part of it, as a part of the issue while also fixing flip-flopping (between Heat Tolerance and Temperature Tolerance).

//

While checking through cold-blooded creatures for this, I saw and fixed bark blister bonuses not being applied for upgrades (together with preventing the non-purifiable mutation from seemingly downgrading in very esoteric circumstances involving getting a skin mutation).

Also only slightly on the subject of cold-blooded creatures, Muscle Consolidation was weirdly "missable" by the random order of getting Gastropod's mutations dictating the outcome you get.

Describe alternatives you've considered

I could make Ectothermic mutants straight-up COLD_IMMUNE and set up every single missed check in respect to that instead, but I don't know what kind of balance issues that might cause if some future Erk dungeon enemy saps your body heat to harm you...

Testing

This coming out of draft will imply having tested all facets of getting, purifying and seeing that the mutations involved work properly.

Additional context

This does cause a total of -5 chilling with Temperature Tolerance, due to Heat Tolerance being made to disappear in the process. If this counts as a regression, I'll amend that by increasing the relevant number.

The speed modifier could and should drastically increase as to compensate the "chilly" effect not being present.

Fris0uman commented 1 month ago

Ectotherms being resistant to cold feels like the exact opposite of what ectotherm means. It's weird that the inability to regulate your body temperature gives you resistance to cold. Some amphibian are able to freeze and remain alive but it's not a generale rule, and I think that other ectotherms either die off, and only the eggs of the next generation go through winter, or bury themselves to stay at low but constant and above freezing temperature. Edit: The kind of resistance to freezing described in the issue should be it's own mutation instead if it doesn't exist already.

Kamejeir commented 1 month ago

I hear you, Fris. Thank you for your review. (I mean it, it has been important to realign my own understanding of this issue)

The changes to very misc bark & stuff, I can move to a different PR whenever I make the next commit here.

The Temperature Tolerance stuff I want to keep, for it relates to the linked issue that I'm trying to solve. Namely, the subject being that the acclimatization mutations had conflicts when it did not always make sense, the Ectothermic non-freezing thing coming out as a side effect. I do think that confusion having risen from this PR, being labelled with Ectothermic as the primary thing, makes total sense.

Once I get into the mindset of working this and coming up with an appropriate title, I'll apply it along with making the aforementioned "next commit",

//

Just as I'm writing this, I noticed the edit on your comment. I don't feel strongly about needing to merge this new functionality into an existing mutation, I'll probably think up something and take you up on that suggestion.

fairyarmadillo commented 1 month ago

Instead of making them immune, simply granting a degree of frostbite resistance via cold tolerant would probably allow gastropods, lizards, and amphibians the ability to sleep in cold temperatures without making them immune to freezing entirely.

https://www.npr.org/2024/01/25/1226660910/alligators-frozen-underwater-brumation-explanation

https://www.molluscs.at/gastropoda/index.html?/gastropoda/dormancy.html

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4331536/

https://www.canr.msu.edu/news/how_insects_survive_cold_the_potential_effect_of_a_mild_winter

These abilities are very widespread among ectotherms. They are not universal, but there are many ways these could be implemented.

Kamejeir commented 1 month ago

@fairyarmadillo I'm trying very hard to listen to what you're saying. My best guess is that you suggest Ectothermic to be a cold-blooded Hibernation equivalent that grants temporary frostbite immunity.

fairyarmadillo commented 1 month ago

@fairyarmadillo I'm trying very hard to listen to what you're saying. My best guess is that you suggest Ectothermic to be a cold-blooded Hibernation equivalent that grants temporary frostbite immunity.

My original plan was to make a mutation that would protect ectothermic characters only during their dormancy, assuming they met all the necessary conditions, but that would probably require some c++.

Kamejeir commented 1 month ago

Granular protection is harder than the immune flag, but I'll see what I can do to honor your wishes.

fairyarmadillo commented 1 month ago

to honor your wishes.

Don't worry too much about that, they were just ideas I had! :)

Kamejeir commented 1 month ago

So, "Dormancy". I was beginning to code checking for applying frostbite resistance during the times they were sleeping, but then it struck me that cold-blooded creatures might instead become totally inactive during winter.

That is outside of my original scope, and I don't know what to do, as it was never my intention for them to essentially skip winter (and all the cold problems that come with it).

fairyarmadillo commented 1 month ago

That is outside of my original scope, and I don't know what to do, as it was never my intention for them to essentially skip winter (and all the cold problems that come with it).

That was my intention. You'd fix up a safe space and ingest a huge amount of calories before passing out for several weeks. This would run the risk of getting you killed if an enemy found you while you were unconscious (if you woke early you'd have a big debuff) and in any event you'd awaken at the end of it in a massively malnourished state.

You wouldn't skip all of winter, but you'd be able to skip the worst bit of it. This might be doable with EOCs and enchantments alone nowadays, but I'm not sure.

It would be huge project in any event. And I'm only sharing this so you know what my original intent was, there's nothing stopping you from trying something else.

Kamejeir commented 1 month ago

Well, thank you for your input. It has been cool discussing this with you, however, it seems both Fris and Erk are opposing the original idea. As you say, it has turned into a "huge project" to get this anywhere I wanted... I'm sorry, but I think I'll give up.