BeeStation / NSV13

NSV13, a Ship-to-ship Combat SS13 Server
GNU Affero General Public License v3.0
115 stars 257 forks source link

[Semi-Experimental] The coldbloodening #2684

Open DeltaFire15 opened 2 weeks ago

DeltaFire15 commented 2 weeks ago

About The Pull Request

Lizards in our lore are coldblooded. Those in our game are not, and have some fairly noninteractive traits (digitigrade is optional, so the only noteworthy drawback is cold damage mod which rarely comes up).

This replaces their basic "cold mod" modifier with the coldblooded property. What being cold-blooded does is that it negates automatic body temperature stabilization, which means temperature adjustment is done purely by environmental factors. This means that having ones body at non-standard temperatures becomes more of an active consideration, as an area with desired temperatures becomes the main way of temperature adjustment (besides varied methods such as chemicals, nanites, xenobio shenanegans, etc). They do still preserve their resilience to direct heat-based damage.

In some talks regarding the matter, it was mentioned some other servers having heat sharing done via hugging (help intent), however while I liked that concept, I did not like it being on a trivial & spammable action (that would also need spamming). Instead, this adds new functionality to "aggressive" grabs, which makes them share temperature between grabber and grabee while maintained. This is affected by insulation of both targets, albeit weighted somewhat towards transmissibility, unless either target has total insulation in which case it does not occur. This in my opinion is a more fun and interactive take on the previously mentioned hug temperature sharing, and aggressive grabs fit that closeness more accurately in my opinion.

Feel free to suggest interesting things regarding this change. This does not have to be its final form.

Revision 1

Added thermogenesis to ectotherms. Essentially, some cold-blooded creatures in nature can somewhat counteract the cold by repeatedly contracting & relaxing (basically vibrating) their muscles, as the energy usage in muscles releases some heat.

This adds an equivalent of this to lizards. If they remain at temperatures significantly below normal (<~15°C currently) for an amount of time, they will subconsciously increase muscle activity in an attempt to heat up (aka shiver), even more so if very cold. This is inefficient, requires nutrition if active, can be a bit slow to respond, and doesn't feel good (mood debuff).

Revision 1.5

PR now also contains some random kneecapping of cult level mood buffs from simple drink sources within the NSV modular mood events. Who knew all moths were blood cultists?

Lizards now have a "comfy" bodytemperature range of ~30-60°C, in which they gain a mood buff as opposed to the debuff for being cold. Fairly difficult to maintain since they lack any kind of natural stabilization and the ship is 20°C unless you HE pipe or cook the department.

Also fixes a long-standing bug with heat protection calculations that would allow you to bleed or gain negligible amounts of heat with full protection due to decimal accuracy and the protection value being split into 11 small values being added together. Usually body temperature stabilization would be bigger than the values added by this, but guess who doesn't do that!

Why It's Good For The Game

Species uniqueness is fun.

Testing Photographs and Procedure

Revision 1

Some demonstrations added.

Avoid these if using mobile data (video files do be big)

Thermogenesis demo (semi-outdated - messages related to it got changed, but functionality is the same) https://github.com/BeeStation/NSV13/assets/46569814/212c7f7c-3437-4174-85f1-14a2c0e60df7
Grab temperature exchange demo https://github.com/BeeStation/NSV13/assets/46569814/6e673235-598b-4bff-ae30-cc8bc7459fe8

Changelog

:cl: balance: Lizards are now coldblooded (they have no natural bodytemperature stabilization besides the environment). balance: Coldblooded creatures also have an inefficient form of thermogenesis they can use to heat up. balance: Lizards dislike the cold (<15°C / when you start shivering) and like warmth (30°C-60°C), which can affect mood. balance: Lizards no longer have a 1.5 cold damage modifier. balance: Having somebody in an aggressive grab will share temperature between the grabber and grabbed target over time (respecting insulation). balance: Drinking blood as a moth now has a weaker mood buff. balance: Naval coffee now has a weaker mood buff. fix: Temperature protection values returned by the getter are no longer very very slightly off the value they should be. Thanks decimal precision. /:cl:

Lauwma commented 2 weeks ago

Shouldn't that be a upstream change ?

DeltaFire15 commented 2 weeks ago

Shouldn't that be a upstream change ?

I am not interested in maintaining this change upstream on a server I am not knowledgeable about regarding its balancing & design-style.