Wabbit0101 / mods_hoardercraft

Wild and wacky ways to hoard ALL the loot (crops, food, materials, gems, etc.) you generate in Minecraft!
GNU General Public License v3.0
11 stars 4 forks source link

Armor Underwear: Some cooling pieces provide heating instead? #94

Closed katubug closed 4 years ago

katubug commented 4 years ago

Hi! I was testing out the liners because I wanted to add more tooltips to them explaining how much temperature modification they can provide, and happened upon what I think is a bug.

So, Otto legs seem to give -1 temp, but only when worn by themselves? When wearing armor where the rest of the liners are maxed out to give warming, it gives -6 temp instead.

However, if I'm wearing max warm helmet and boots, with Otto chestplate and leggings, they both give a total of -4 temp together (and if one of them is removed, the other remains at -4).

When wearing an Otto chestplate with everything else max cool, armor lining is both +5 and -6.

There's more but I'm having a hard time noting it all down (my brain fog is worse at night). Maybe this is all intended behavior and I'm just spacing on how it works? If this is purposeful, would you mind explaining it to me? And if not, please let me know if you'd like any more information or tests done.

ArmorUnder: 1.0.0 TaN: 3.1.0.141 Forge: 2847

Wabbit0101 commented 4 years ago

The Otto liners are a bit odd as there is no standard "freezing" or "frost" like damage in Minecraft to protect against (unlike say the Ollie liners which as a burn and blast barrier can protect against known damage sources like fire, lava, explosions, etc.). In its current form (MC1.12), the Otto liner will function as a cooling adjustment ONLY if present on a large piece of armor (chestplate, leggings). The adjustment is by temperature range meaning the exact +/- is whatever amount is necessary to shift the player's temperature into that range. The adjustment is ALWAYS TO MOVE TO THE COOL RANGE (which is why in your examples it tries to shift -6 and -4 when paired with warming liners, it's trying to get below 0 to the cool range); this is fundamentally different from the Ozzy liners which aims to keep the player at the median temperature or 0. You can use Otto liners in environments with very very hot ambient temperatures like the nether or the badlands/mesa biome as it's going to always try to cool you down.

That said, IMO, the more useful purpose for using Otto liners is as a warding protection against some well-known mods' freezing and frost potion effects. Note that you need the liners on all armor pieces to gain this benefit. It kinda works like anti freeze in this way -- the colder the temp, the hotter the lining's effect. So it blocks TAN's own hypothermia, Primal's water burning, Wizardry's frost, Nether Ex's freezing and frost bite, etc.

When wearing an Otto chestplate with everything else max cool, armor lining is both +5 and -6.

I don't understand this sentence. How is the reading both +5 and -6 at the same time?

katubug commented 4 years ago

Ah, the thought of it being range-based did occur to me as I was going to bed, so I'm glad to hear that's the case.

As to the armor lining being +5 and -6 at the same time, I took a screenshot:

2020-01-26_20 59 34

It's a little hard to see with the GUI open, but on the /tan tempinfo reading on the left, it lists two Armor Lining values, one of which has an asterisk. I'm assuming that's relevant somehow?

Thanks very much for your time :)

Wabbit0101 commented 4 years ago

Ah..I forgot about the tempinfo "gui". The asterisked value is any temp adjustment done by a special or so-called smart liner such as the Ozzy or Ollie liners; this value can change depending on the player's current TAN "context". The other value is just the fixed +/- temperature liner adjustment total and should add up to the number of those liners you've got installed; this value should remain constant as long as you're wearing the same armor.

The adjustments aren't perfect as there are some problems with the order in which TAN calls the various hooks (eg: the value passed to player armor modifiers does not include environment temperature changes like rain or standing in water for example).

katubug commented 4 years ago

Ah, gotcha, that makes sense. Thanks so much for taking the time to write this out for me. I apologize for the false alarm, but I really appreciate you helping me nevertheless. :)