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

Winter adaptation for Ectothermic #73843

Closed
wants to merge 2 commits into from
Closed

Winter adaptation for Ectothermic #73843

wants to merge 2 commits into from

Conversation

Kamejeir
Copy link
Contributor

@Kamejeir Kamejeir commented May 16, 2024

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.

… active, while giving it immunity to getting harmed by it. This was for implementing the fix suggested by anid in 66539 with acclimatization and homeostasis, that was never followed up on. In addition, fixed some bark inconsistencies I saw, and a case of Muscle Consolidation being weirdly "missable".
@github-actions github-actions bot added new contributor [JSON] Changes (can be) made in JSON Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies [C++] Changes (can be) made in C++. Previously named `Code` json-styled JSON lint passed, label assigned by github actions labels May 16, 2024
@Fris0uman
Copy link
Contributor

Fris0uman commented May 16, 2024

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.

data/json/mutations/mutations.json Outdated Show resolved Hide resolved
data/json/mutations/mutations.json Outdated Show resolved Hide resolved
data/json/mutations/mutations.json Outdated Show resolved Hide resolved
data/json/mutations/mutations.json Outdated Show resolved Hide resolved
data/json/mutations/mutations.json Outdated Show resolved Hide resolved
data/json/mutations/mutations.json Outdated Show resolved Hide resolved
@@ -9533,6 +9535,7 @@
"description": "You are now even less bothered by the heat and it is harder for you to overheat or even sweat. When you do though, it'll hit just as hard as it did before.",
"prereqs": [ "RESISTWARM" ],
"types": [ "ACCLIMATIZATION" ],
"changes_to": [ "RESISTCHILL_RESISTWARM" ],
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How odes this relate to the change to ECTOTHERM?

Comment on lines +9593 to +9595
"prereqs": [ "STRONGER_RESISTWARM" ],
"prereqs2": [ "COLDBLOOD4" ],
"purifiable": false,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question, how does this relate to the goal of this PR?

src/character_body.cpp Outdated Show resolved Hide resolved
src/character_body.cpp Outdated Show resolved Hide resolved
@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label May 16, 2024
@Kamejeir
Copy link
Contributor Author

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.

@worm-girl
Copy link
Contributor

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
Copy link
Contributor Author

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

@worm-girl
Copy link
Contributor

@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
Copy link
Contributor Author

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

@worm-girl
Copy link
Contributor

to honor your wishes.

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

@Kamejeir
Copy link
Contributor Author

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

@github-actions github-actions bot added the astyled astyled PR, label is assigned by github actions label May 18, 2024
@Kamejeir Kamejeir changed the title Make Ectothermic sleepy, but otherwise chill with cold Winter adaptation for Ectothermic May 18, 2024
@worm-girl
Copy link
Contributor

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
Copy link
Contributor Author

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.

@Kamejeir Kamejeir closed this May 18, 2024
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` [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions Mutations / Traits / Professions/ Hobbies Mutations / Traits / Professions/ Hobbies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants