Skip to content
Commit b49072e3 authored by DarkGod's avatar DarkGod
Browse files

Merge branch 'tooltip_zero_fix' into 'master'

Tooltips hide zero-valued properties.

Item tooltips check if fields exist `o.foo` rather than if those fields are meaningfully valued, while actors typically check if they exist and are nonzero (`self:attr("foo")`). This causes a range of display issues from meaningless information (`Critical Chance: 0.0%`) to the misleading (for special properties like undead-ness and blind-fight). These are most apparent when tinkers are added and removed from objects, because the stats that were uniquely provided by the tinker will remain as `+0` on the object. This is most egregious on T4 and T5 Focus Lenses, which grant the `blind_fight` property. This is properly removed when the tinker is, but the item tooltip will continue to imply that blind fight is granted.

Rather than adjust the tinkering subsystem, this is a safer method that doesn't run the risk of breaking objects that may expect fields to exist and be real valued.

This MR adjusts the tooltip display functions to not display properties that are zero-valued. This includes raw values of the `combat` and `wielder` tables (e.g. `combat.apr`) and subvalues of tables like `melee_project` or `inc_damage` (e.g. `inc_damage.FIRE`). This also adjusts all special properties (`blind_fight`, `lucid_dreamer`, `sleep`, `no_breath`, etc.) to require a nonzero value to be displayed on the tooltip, just as they require a nonzero value on the actor to apply.

**This MR is save-safe.**

See merge request !703
parents e4b7bf6b f97dead7
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment