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
[RDY] Enable frostbite, remove cold damage #18401
Conversation
arm loss prevents the use of weapons the weigh more than 2kg(?) and of a certain volume. however if a 2h weapon is equipped before limb loss or wearing a limb restricting item it isnt applied to that. this change sounds like it would make most nonshelter starts untenable, or needlessly complicated by adding exhorbrant pain on top of a flat speed penalty on top of actual damage. frostbite recovery doesnt, shouldnt causr damage |
Really, I've always been annoyed by how non-punishing exposure to the cold is in Cataclysm. Surviving the elements is probably the biggest part of the game besides scavenging and killing zeds. The only thing that's prevented me from implementing a hypothermia mechanic is the fact that I don't know how to code in C++ (yet). As for non-shelter starts, its simply a matter of giving certain outdoor professions (like Lumberjacks) scarves to warm their hands - if it really does become a problem, that is. That being said - Remember that frostbite IS very fatal in real life. It's not something to scoff at. |
@@ -823,15 +823,8 @@ | |||
"speed_mod": [-2] | |||
}, | |||
"scaling_mods": { | |||
"speed_mod": [-7], | |||
"int_mod": [-0.5], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the cold was dangerous before because it sliwed you down, took away your ability to function. these supporting penalties added up per body part.
@@ -896,7 +895,9 @@ | |||
"desc": ["Your %s is starting to feel the damage cold has wrought."], | |||
"part_descs": true, | |||
"base_mods": { | |||
"pain_max_val": [40], | |||
"hurt_min": [1], | |||
"hurt_chance": [12], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all of the damage of frostbite has already been done. lingering damage might be possible, but in no way is the bulk of frostbite damage suddenly appearing once a person gets inside. pain yes. crippling damage no. this should be at least lower than the damage of being frostbitten.
Agreeing with @pisskop here, the speed reduction from extreme cold is already a major killer for players. Having massive limb damage will make things worse, and having it more intense when thawing out will make this both unrealistic and a detriment to gameplay. |
I don't like that thawing part. It sounds counterintuitive and like a noob trap. |
"dur_add_perc": 0, | ||
"scaling_mods": { | ||
"speed_mod": [-5] | ||
"speed_mod": [-5], | ||
"pkill_tick": [10], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tabs.
All tabs should be replaced with 4 spaces.
Lingering blistering should possibly also starting to show up, somewhere in between frostnip and actual deep tissue damage. Ideally ensure the effects are spread out. A few hours in spring weather that is only chilly shouldn't penalize the player too severely, whereas an unprepared trip to an ice lab, or a winter start, should be where the major risks start showing up. |
The reason I made damage primarily occur during the thawing process is because there's few other ways to make frostbite an "all or nothing" kind of deal. There shouldn't really be a 'gradient' of frostbite, you either have it or you don't, and if you have it it's going to be very dangerous. Ideally speaking, it should be a kind of 'point of no return', which can't really happen if the damage is instead migrated to frostbite itself rather than the thawing process. |
Frostbite isnt an all or nothing. Theres degrees of it, including that tingling in your body before it goes numb. |
Yes, that would be frostnip, which serves as a warning. The point being that 'frostbite', as its currently coded in the game, is the point where all the water in an extremity or body-part is frozen entirely - meaning 4th degree frostbite. |
Could be applied as a hit to the part the moment it gets frozen. |
I wish you would add back in the debuffs on int, dex, etc. for being cold. |
This is actually something I considered, until I realized that there are hard-coded stat penalties for frostbite. (-2 per for mouth, -6 dex for hands, etc) I'm unsure of how to balance it with that in mind. |
I agree with @Coolthulhu that it might be unnecessary, given the potential reactions to realistic features that might detract from gameplay. Greatly expanding the possible effects so we have the full range of first degree (frostnip) to fourth degree (kiss your limbs goodbye) might have merit, if this ensures that you have to endure prolonged exposure to cold before the most severe penalties ensue. Enough to give a player in an exposed starting condition (like wilderness, winter start) a reasonable amount of time to at least attempt to correct their clothing problems. Most likely this should not have a major effect on most players with respect to their early-game habits. I do not know how common this habit is, but personally I always make my first priority to shore up any clothing problems, even if a speed penalty from chilly is the only problem it solves. |
Frostbite is currently handled, mostly, through a form of C++ voodoo that I'm unfamiliar with in which every limb keeps track of its own "frostbite timer" (you can see these numbers in every save file) and that number is what determines severity, as well as how long the affected limb needs to be defrosted. I'm afraid simply editing the effects.json won't be enough to add two more degrees of severity to it, even if it is a good idea. Alas, I am but a humble JSON fiddler. Nothing more. |
It would be easier if the frostbite mechanism could be converted to a format editable in JSON. |
Any additional comments? Should cold still give int/dex penalties along with the penalties of frostbite? |
Dexterity penalties seem reasonable for extremities, while intellect penalties might be more sensible for hypothermia and thus be linked to the head and torso. |
This is what frostbite already does, however cold penalties can't be one thing or another (due to the nature of effects), either it always gives int/dex penalties (regardless of if the mouth or foot or torso is cold) or it doesn't at all. |
Ah, peculiar. |
Horrible idea that just ruins gameplay. |
As I have said, if the worst penalties are delayed sufficiently, to give players a fair amount of time to mitigate the threat, it can be a decent idea. But in its current form I suspect it is a detriment to gameplay, and we have had enough gameplay-harming elements of realism as it is. |
It seems very counter intuitive to punish wrong behavior harder once you stopped it. |
PR has already been changed so that majority of damage occurs in frostbite rather than thawing state. |
I see. Not entirely sure what to make of it, but seems to confirm that wind plays some part. |
What I also found surprising is that wetness plays a somewhat big part in calculating the temperature of bodyparts as well, and while water seems to always be in the "Comfortable" range of temperature (even in the middle of winter) once you actually get out of the water you will notice your limbs being colder than usual due to the wetness. Because this affects windchill resistance and ambient temperature resistance, this also worsens / potentially triggers the onset of frostbite. So, bring a towel!
|
I assume this is a model of evaporative cooling? |
Possibly, that and the fact that being wet saps body-heat a huge degree more than when you're dry. Get your hands wet and go outside on a cold day you'll see what I mean. |
That too. Though I wonder how much heat loss one expriences in reality staying in water versus getting out of it. Bodies of water do additionally take time to heat up and cool down, though the exaggerated behavior here likely is not intended. |
It's likely a result of below-freezing water being...well, frozen. There is no code in place on how to handle frozen bodies of water in the overworld. Hence why I think it's perpetually kept at a certain temperature. But at the same time this means that diving into water in the middle of the winter is an entirely viable strategy for preventing hypothermia and frostbite, which is of course absurd. |
True, actual freezing water likely is not implemented because it would be difficult. Then again, seasonal variants of terrain items do exist, so it would be possible to add winter variants that behave differently. It That would still not have the desired effect though, as there would be no sane way to implement frozen surfaces (and liquid water underneath), might break swimming creatures/boats, etc. |
I'm not sure either. It re-enables a bunch of dead code, which is a good thing because dead code should either stop being dead or get removed, but I'm not sure if frostbite is actually a good thing to have in the game. If it was a new idea being added, I'd most likely shoot it down. Frostbite does sound like that needless realism we are trying to avoid recently. I'd like someone to make a convincing case for why should frostbite be in the game using no arguments like "because this is what happens in real life". |
What does the playerbase want out of a session of Cataclysm DDA? |
Note that this disables damage from cold itself, now only frostbite causes direct damage |
As far as I can tell, it depends on how this rework affects the penalties for minor chills. While the frostbite really only punishes players, ideally it should only punish players who deliberately do absurd things like run around naked in winter (and running around naked in a zombie game is a bad idea). I suspect in that instance, the result is simply further discouraging players not to do something that they have ample reason to avoid in the first place (the same reason why filthy clothing was not an ideal addition). If there is any potential player benefit to be gained here, it depends on how this pull request affects the lower levels of cold, in particular chilly. I do not know whether the speed penalties are affected, but if a single body part being chilly becomes tolerable, that on its own is a massive positive. The majority of players are not going to encounter freezing conditions. Generally they will end up with isolated instances of chilly, cold, or rarely very cold body parts. |
Or to summarize, it runs the risk of penalizing actions that are already balanced against, but unlike other examples of this, this situation is rare to begin with and has less potential for backlash. Additionally, a general rework of penalties for cold is potentially desirable and can benefit the player, and would logically be related to this pull request. |
Even if you don't add it to the core game, I still think it should be a mod so the player can decide to turn it on. That's if you don't want to add it to the core. |
Mods for content that require source changes to work are generally awkward though. |
As stated above, Frostbite cannot occur unless the ambient temperature is below 32F or very close to it w/ windchill. Thus "chilly" levels of cold are not prone to contracting anything except Frostnip.
Speed penalties for coldness are nerfed from -7 to -4 per intensity, as well as removing the damage and INT/DEX penalties (these occur at Frostbite now) |
That sounds like pre-pull-request behavior though. It has spammed messages and caused frostnip for being chilly, but I do not recall frostnip doing much at all. |
Frostnip now causes a bit of pain (up to 20, gradually) and is meant to act as a warning for the player to warm up. |
Beyond all of this, I'd like to note that this PR would actually reduce the amount of player-hassle. Along with cold speed penalties being reduced, now damage and DEX/INT penalties only occur at Very Cold temperatures with windchill (in the form of Frostbite itself), whereas before it would occur at Cold/Very Cold temperatures alone. Besides Chilly levels of cold causing Frostnip at its lower levels, this PR decreases the potential for the player to take damage / stat penalties from being exposed to the cold compared to before. |
That does seem like a reasonable argument in favor of it. Making the penalties for less severe cold less, well, severe, while making the other extreme more severe. |
That is essentially what I'm going for, yes. Hence why at the beginning of the PR frostbite caused 80-90 damage within 1 hour instead of 20-30 now. I preferred the slope of severity between "Chilly" and "Very Cold" to be steeper than it was. Though perhaps too steep, according to feedback. |
How about making it an option in the settings menu? Would that make it better? |
So, this PR's been up for about a month now. Is there any particular reason it hasn't been committed yet? Any problem that I've overlooked? |
The problem is that the frostbite that is being re-enabled is pretty badly designed. I'd accept it if the messages were changed to appear when frostbite timer crosses half the necessary value. The timer has breakpoints at 1800 and 3600, so you should warn on 900 and 2700. |
Sadly, I'm not yet confident enough in my C++ skills to do that without fear of breaking something somewhere, since currently frostbite warning is tied to per-tick exposure (Medium or high risk zones) rather than cumulative total frostbite-timer. Beyond that, I'd say its communicated rather well to the player - in the form of bombarding the player log with messages of "Your [x] will be frostbitten within a few hours!" if they are exposed enough to the cold for the frostbite timer to start ticking upwards. Random and spammy as it may be, it still gets the point across - even up to the point where it can become an annoyance. |
Stalled? |
Not sure. Should I just close the PR? |
Paging Dr. @Coolthulhu , do I close this PR? |
If you can't fix the message, then it's better off closed. |
Whether due to glitch or because someone forgot, I realized just now that frostbite was actually disabled this entire time due to not having a "maximum intensity" value.
Using a completely average survivor as a baseline, these settings cause 20-30 damage to affected limbs if they are treated within half an hour or so of becoming frostbitten. Limb loss becomes more likely if frostbite is not taken care for an hour or longer.
On a slightly related note: Does losing the functionality of arms actually do anything? Losing legs I could see doubled movement costs, essentially forcing the survivor to crawl around, but I couldn't notice any changes when my survivor lost both his arms.