Allow the camera's zoom to be locked by a keybind
or a Gameplay setting. The zoom lock
behavior can be changed between Toggle
and Auto, where Auto only locks the camera
zoom while specific movement/combat inputs
are being pressed. (closes!1528)
A temporary fading notification is shown at the
top of the screen, informing the player of
the setting change (when the keybind is
used) or that the zoom is locked (when
the player might have forgotten the zoom
is locked, and is trying to zoom).
i18n strings are added for English and German,
but no other languages.
To implement the simplistic fading text, the
behavior was extracted into an impl
called `ChangeNotification`, where
reasons are quantified by `NotificationReason`.
Parries now cause the attacker to effectively have a recover that is either twice as long or 0.5s longer, whichever is more.
Counters now deal twice as much damage to the target if the target is in the buildup portion of an ability.
This is needed (for now) in order to parallelize ingame_chat, because
one of the handled messages updates this value on the server. It turns
out that the value is not actually used on the server, only the client,
so this was mostly a matter of threading this back to the correct place.
Additionally, we took the opportunity to modify the UI to not log you
into the game until your character was confirmed to be loaded, which
was a todo item that lets us simplify some error handling logic and
remove stuff from global state.
As a side effect, this moves the initial game server sync message into
the login code, since that's the first place we can check for admin
permissions and we want to avoid sending large messages to users who are
not authenticated (especially if the player cap has been reached;
previously, the player cap check limited the damage that could be done
by unauthenticated players).
Some fallout from this is that we don't synchronize the Player component
anymore, which had some minor effects on voxygen. This update also
breaks Torvus, since Client::new now expects the username and password
to be provided from the getgo--an accompanying MR will be submitted to
fix it.
* Fix broken i18n keys for health and energy increases
* Better handle buff descriptions
Calculate infobox lines for item stats to set correct infobox frame
dimensions
* When client gets its view distance set by the server it stores that as
the max view distance allowed by the server.
* This is used to avoid skip sending requests if `set_view_distance` is
called with larger values.
* This is then also displayed in the UI via greying out the slider when
it goes past the limit and drawing another slide at the limit.
* The server clamping the client's view distance no longer leads to
edits in voxygen's view distance settings (the view distance setting
is instead preserved).