mojira.dev
MC-260805

Water Breathing effect duration is not shown as infinite when Turtle Shell is equipped

The bug

When a player equips a turtle shell, they receive the Water Breathing status effect indefinitely until it is removed, or when underwater.

Effects with infinite length are denoted with an infinity symbol in the inventory screen. It'd be expected that an infinity symbol would be used here, since the effect will never expire with time alone. This, however, does not happen.

How to reproduce

  1. Obtain a turtle shell

  2. Equip

  3. Note the duration of the Water Breathing effect while the turtle shell is equipped

  4. Now remove the turtle shell

Expected results

For the duration that the turtle shell is equipped, an infinity symbol would be displayed under the Water Breathing effect to indicate that the effect never expires naturally. A finite time value would only be displayed and start ticking down once the helmet is removed.

Actual results

A duration of 10 seconds is permanently displayed instead while it is equipped, despite the effect lasting far, far longer than 10 seconds.

Linked issues

Attachments

Comments 7

Well, the effect is not in fact infinite, it disappears 10 seconds after you unequip the turtle shell.

The same could be said about infinite effects:

/effect give @s minecraft:night_vision infinite 0 true

The effect will last for an infinite duration, but can be cancelled if the player drinks milk - the effect is infinite until stopped via player interaction. Likewise, the water breathing effect from the helmet is infinite in duration until the player removes the helmet - it lasts forever until stopped by player interaction.

An argument could be made that the water breathing effect would also stop if the helmet breaks, which wouldn't necessarily be a player intervention, however other infinite duration effects also end when the player dies, which they may not be in control of either.

Also, just assumption but making the effect infinite would probably reduce the number of checks the server needs to do if the player already has the effect, as it would only need to change the duration when the player (un)equips the helmet (or would only need to check when they enter/exit area for beacon/conduit) instead of doing the check every X ticks.

This also would make the effect apply the duration instantly. The only concern though would be if a player triggers this behavior too many times per second, so maybe rate limit the effect application?

Let me ask you this: if you have water breathing for 10 minutes, and equip and unequip the turtle shell, what is the duration? With this suggested method, time remaining is set to -1, that's what an infinite effect actually is. Meaning the actual duration of those 10 minutes remaining would be lost.

The same goes for the cases marked as related. These reports either say to set the duration to infinite until the refersh case ends, or to add a new feature where if the effect is refreshed constantly, to (falsely) display the effect as infinite, which requires whole new methods, save data and more to be added.

Well, at the end of the day it's up to Mojang to decide how to handle the behavior of these features. Technical details aside, i see this as a valid gameplay design issue. If the effect is indefinitely applied when a certain item is equipped, it should show so?

Maybe we all have accostumed to the current behavior because it has been that way since the beginning, but it clearly seems flawed as it isn't clear for the player whether this effect is infinitely applied or not (also doesn't seem logical to see a duration countdown get reset every X seconds). So it's better to point out these issues and see if they're willing to fix them or not.

It isn't actually infinite, though. It starts counting down as soon as you go underwater (and resets upon resurfacing). Having the timer show infinity when not underwater seems like it would just be misleading.

(also doesn't seem logical to see a duration countdown get reset every X seconds)

Unlike beacons, the turtle shell timer stays firmly locked at 10 seconds until you either start diving or remove it (at least in my experience).

Yeah sorry, i was mostly thinking about beacons when i wrote that, i didn't notice the timer remained frozen at 10 seconds while in the surface, but i'm aware the duration goes down the moment you go underwater.

muzikbike

(Unassigned)

Confirmed

Player, UI

1.19.4 Pre-release 3

Retrieved