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

Convert CLIMATE_CONTROL to enchantments and simplify effect #61139

Merged
merged 3 commits into from
Oct 5, 2022

Conversation

actually-a-cat
Copy link
Contributor

@actually-a-cat actually-a-cat commented Sep 20, 2022

Summary

Balance "Climate Control CBM (and equivalent effects) now works more consistently, doesn't completely shut down in extreme temperatures, and can stack"

Purpose of change

CLIMATE_CONTROL has some problems:

  • It snaps body temperature to fixed values, so the actual effect provided can vary dramatically depending on exact temperature.
  • It suddenly stops working when the temperature gets too high or too low, so you can go from uncomfortable but fine to at risk of injury with a 1 degree temperature change
  • It always has the same strength, regardless of source
  • It doesn't stack, even in situations where it would make sense
  • The cooling ability and heating ability are always equal even though the mechanisms for achieving those are very different

Describe the solution

Climate control is now a pair of enchantments, controlling the heating and chilling ability respectively. They simply move body temperature towards normal by up to a fixed value. For now I set it to 50 everywhere, which is close to the previous performance of climate control, and most sources received equal heating and cooling. Exceptions are some Aftershock items that are explicitly for protection against cold and those only have heating.

Describe alternatives you've considered

Testing

Checked:

  • Basic functionality
  • Stacking of multiple sources
  • Climate control bionic heat/chill
  • RM13 armor heat/chill
  • Advanced nomad jumpsuit heat/chill
  • Combat exoskeleton heat/chill
  • Heavy combat exoskeleton heat/chill
  • Field combat exoskeleton heat/chill
  • Nomad plate heat/chill
  • Light nomad plate heat/chill
  • Heavy nomad plate heat/chill
  • Phase immersion suit heat/chill
  • Exosuit frame heat/chill
  • Magellan exosuit heat
  • Frontier cryo suit heat
  • Heat retention cream heat
  • Heat retention xtreme cream heat
  • Cryopod bodyglove heat/chill
  • Vehicle CC heat/chill and stacking with enchantment CC

Climate control on exosuit underlayers doesn't work due to #59657, but they have the definitions and should work once that's fixed.

Additional context

Remaining problems that will require more substantial changes to address:

  • Worn items apply climate control to entire body, regardless of coverage
  • No ability to vary power consumption depending on how much work climate control is actually doing

cc_chart

@github-actions github-actions bot added [C++] Changes (can be) made in C++. Previously named `Code` <Bugfix> This is a fix for a bug (or closes open issue) BasicBuildPassed This PR builds correctly, label assigned by github actions astyled astyled PR, label is assigned by github actions json-styled JSON lint passed, label assigned by github actions labels Sep 20, 2022
@Maleclypse
Copy link
Member

I'd much prefer if climate control's power costs went up with the temperature difference. Though I guess that might be out of scope for this PR.

@dseguin
Copy link
Member

dseguin commented Sep 21, 2022

Looks like this would fix the climate control problem in #59657 (might even resolve the issue)

@actually-a-cat
Copy link
Contributor Author

@dseguin

This will make climate control work in extreme cold but the effect won't be strong enough for an exosuit - it's equivalent to ambient temperature changing by 25C/45F.

Ideally this would be adjustable for every source of the effect but I'm not sure how to do that. Make it an enchantment?

@actually-a-cat actually-a-cat marked this pull request as draft September 21, 2022 06:46
@actually-a-cat
Copy link
Contributor Author

I'm going to go ahead and JSON-ify climate control while I'm at it.

@github-actions github-actions bot added [JSON] Changes (can be) made in JSON Bionics CBM (Compact Bionic Modules) Items: Armor / Clothing Armor and clothing labels Sep 21, 2022
@actually-a-cat actually-a-cat force-pushed the climate-control-fix branch 2 times, most recently from e5f6dd1 to b3222e4 Compare September 21, 2022 09:02
@github-actions github-actions bot added Code: Tests Measurement, self-control, statistics, balancing. Mechanics: Enchantments / Spells Enchantments and spells Mods: Aftershock Anything to do with the Aftershock mod labels Sep 21, 2022
@actually-a-cat actually-a-cat changed the title Simplify CLIMATE_CONTROL Convert CLIMATE_CONTROL to enchantment and simplify effect Sep 21, 2022
@github-actions github-actions bot added <Documentation> Design documents, internal info, guides and help. [Markdown] Markdown issues and PRs Game: Balance Balancing of (existing) in-game features. labels Sep 21, 2022
@github-actions github-actions bot removed the BasicBuildPassed This PR builds correctly, label assigned by github actions label Sep 21, 2022
@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Sep 21, 2022
@actually-a-cat actually-a-cat changed the title Convert CLIMATE_CONTROL to enchantment and simplify effect Convert CLIMATE_CONTROL to enchantments and simplify effect Sep 22, 2022
@actually-a-cat actually-a-cat marked this pull request as ready for review October 1, 2022 17:22
@actually-a-cat actually-a-cat marked this pull request as draft October 2, 2022 13:26
@actually-a-cat actually-a-cat marked this pull request as ready for review October 2, 2022 17: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 Bionics CBM (Compact Bionic Modules) <Bugfix> This is a fix for a bug (or closes open issue) [C++] Changes (can be) made in C++. Previously named `Code` Code: Tests Measurement, self-control, statistics, balancing. <Documentation> Design documents, internal info, guides and help. Game: Balance Balancing of (existing) in-game features. Items: Armor / Clothing Armor and clothing [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions [Markdown] Markdown issues and PRs Mechanics: Enchantments / Spells Enchantments and spells Mods: Aftershock Anything to do with the Aftershock mod
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants