Healing rises over you, and the right hand side is enemies alone #56

Manually merged
mdoorn merged 2 commits from feat/056-healing-rises-over-you-and-the-right-hand-side into master 2026-08-13 08:30:00 +02:00
Owner

Healing rises over you, and the right hand side is enemies alone

Along the way:

  • plan: arrange main

Touches 10 files: plan/boards/main.md, scripts/check.sh, scripts/harness/client/08-blizzard.lua, scripts/harness/sections/80-floating-numbers.lua, src/.luacheckrc, src/Ck/Stream.lua and 4 more.

Healing rises over you, and the right hand side is enemies alone Along the way: - plan: arrange main Touches 10 files: `plan/boards/main.md`, `scripts/check.sh`, `scripts/harness/client/08-blizzard.lua`, `scripts/harness/sections/80-floating-numbers.lua`, `src/.luacheckrc`, `src/Ck/Stream.lua` and 4 more.
mdoorn requested changes 2026-08-13 08:25:00 +02:00
Dismissed
mdoorn left a comment

Healing rising over you and enemies kept to one side is the right layout. Two things, one of them blocking.

Healing rising over you and enemies kept to one side is the right layout. Two things, one of them blocking.
@ -625,2 +781,2 @@
.. " settings put away, %d in the air")
:format(3, select(1, Blizz.Quiet()), select(2, Blizz.Quiet()), Stream.Count()))
print(("hits left for what you land, right for what an enemy lands on you and"
.. " rising for healing, white, green and gold; each column leans outwards"
Owner

A summary line with six substitutions in it and four of them counts of the client's own settings. If the client grows a seventh damage setting this prints a smaller fraction and nothing fails.

A summary line with six substitutions in it and four of them counts of the client's own settings. If the client grows a seventh damage setting this prints a smaller fraction and nothing fails.
@ -94,0 +147,4 @@
-- already had a type off gets it back off. A second pass writes nothing:
-- `shown` is only filled in on the pass that clears a type, and a type already
-- in it is one this file has already taken.
local function Hush()
Owner

shown is only filled in on the pass that clears a type, so a second pass writes nothing. That is correct and it depends on nobody ever clearing shown outside this file. It is a file-local, so say that is why.

`shown` is only filled in on the pass that clears a type, so a second pass writes nothing. That is correct and it depends on nobody ever clearing `shown` outside this file. It is a file-local, so say that is why.
mdoorn approved these changes 2026-08-13 08:25:00 +02:00
mdoorn left a comment

The count check is what I wanted. Merging.

The count check is what I wanted. Merging.
Author
Owner

Comment added on the local itself.

Comment added on the local itself.
Author
Owner

There is a check that the client's list is the length we expect, so a seventh setting fails the run rather than shrinking a number in a print.

There is a check that the client's list is the length we expect, so a seventh setting fails the run rather than shrinking a number in a print.
Author
Owner

Both of those are in.

Both of those are in.
Three faults in one readout, and the middle one is why the other two were
worth doing rather than living with.

A heal went out on the right, with the damage an enemy lands on you. The
argument for that was written down: health going up and health going down are
both your own bar moving. It does not survive being looked at. The right hand
column is what the fight is doing to you, it is read out of the corner of an
eye as a threat, and a green number in it is the one thing there that is good
news. Healing has its own anchor now, dead centre over the character, and it
rises rather than falls. Every heal goes there, whoever cast it and whoever it
landed on, so a heal you put on somebody else is no longer drawn in the column
that means a target's health going down. The right hand side is enemy damage
and nothing else.

The bow alternated per number. That is right for one stream and wrong the
moment there are two: half of what you landed bowed across your character
towards the other column, and both columns read as leaning into each other.
Ck/Stream.lua takes a lean at the moment a number is thrown, because the
caller is the only thing that knows what a column means, and CombatText names
one per stream. Left leans left, right leans right, healing does not bow at
all. The alternation was also half of what kept two numbers born together
apart, so what is left doing that job is the height each one is born at, and
the harness asserts it on its own rather than as a side effect of the bow.

And healing was still drawn twice, with the quiet setting saying it was
handled. That is two mechanisms wearing the same words. The numbers over
whatever you are hitting are four CVars and those were already off. The column
that scrolls up beside your character is Blizzard_CombatText, and its own
table of message types, read off Shared/CombatTextConstants.lua on the
classic_anniversary source, gives HEAL, HEAL_CRIT, PERIODIC_HEAL, DAMAGE,
DAMAGE_CRIT and SPELL_DAMAGE a show flag and no cvar field at all. There is no
setting for them, in this addon or in the client's own options page, and there
never was one. So the show field is what gets taken, on those seven types
alone, and put back exactly as it was found. A dodge, an aura, a combo point,
an energy gain and a reputation tick each name a cvar of their own and are
left where the player put them; the master switch is still not touched, for
the reason it was never touched.

Blizzard_CombatText is LoadOnDemand, so the table arrives after this part has
already applied itself, and Apply returns early on a pass where nothing moved.
An ADDON_LOADED watcher takes it when it lands, the same shape
Core/BlizzAdapter.lua uses for every client window that turns up late.

Nothing installed on this machine touches CombatTextTypeInfo, so there is no
other addon's proof that the name resolves. The reader checks for a table and
does nothing without one, and Describe says the column may still be drawing
when the master switch is on and the table is not there, which is what would
witness the name being wrong instead of the part quietly doing nothing.

Two harness assertions changed and one of them was wrong before it was
touched. "Two numbers born together bow the same way" is now the behaviour
rather than the fault, so it is gone and the height check stands in its place.
The held-still check allowed one unit of the birth scale, and both of its
readings are rounded in a scale that moves between them: half a unit of each
is the exact width of "it did not move", and the old number was narrower than
the reading can be. It passed on the seeds it happened to see.

check.sh over the whole tree: 0 warnings, 0 errors across 268 files, harness
ok on all thirteen class and spec runs.
mdoorn manually merged commit eb175045d5 into master 2026-08-13 08:30:00 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
northgale/warriorkit!56
No description provided.