This version re-reads your log, and this time it does not ask
It goes first because it is what happens the moment you open it: the first launch takes a while, because the whole log is re-read once.
1.11.0 corrected as it read, which is why it asked for nothing. This one cannot. Three of the things it fixes were decided at the moment each fight was written, and what was decided while writing cannot be recomposed by reading:
- the time you were not in control, charged to you as standing still
- the charmed groupmate, saved on the enemy side
- the fights cut in two by a fear
Nothing is lost: fights.ndjson is regenerated from the log, which is the source. What does change are your figures, and some boundaries between fights.
The time you were not in control stops counting against you
When an enemy fears you it is not that you stop fighting: it is that you cannot. Under a charm you do not decide either — you hit your own, but you do not choose it. In both cases the log is left without a single combat line of yours, and the program was reading that as if you had gone to check your bags.
The log does write both ends of those stretches, and they were not being read. In your history they are 31 episodes, and 251 seconds that were being charged to you and that you could not avoid. The worst fight goes from 172 to 91 seconds of downtime.
Those stretches are now measured, and they come out of every figure that speaks about you: «Time not hitting», «Good uptime», the denominator of «DPS over active seconds only», «Wrong stance in places» and your cadence. Their duration is not a fact about you either, because you do not decide it.
Along the way two things turned up pulling in opposite directions, and both are gone:
- short fear gaps were letting you off, because they inflated your cadence and with it the margin you are given
- and while you were held they kept hitting you, so the denominator of «DPS over active seconds only» grew while the numerator could not
The label comes from a measurement, not from a resemblance. The log line does not give the cause: fear and charm write the same one. What tells them apart is what you did inside, and that is visible — under fear you cannot act at all, so zero actions is fear; charmed you hit your own without deciding it, so one hit on them is charm. If you acted against the enemy it is neither, and then the fight says so instead of picking one.
And one case had to be separated out or it would have ruined this: the keys the game refuses. Inside those stretches there are 24 casts begun that never resolve — no hit, no resist, no interruption. Outside them that same spell does resolve. A cast with no outcome is not an action, it is a denied attempt, and counting it would have turned 10 of the 31 episodes into something else because a hotkey was hammered.
A charmed groupmate stops being an enemy
If someone in your group is charmed and hits you, until now they became an enemy for the whole fight, not just for the exchange. Sides were deduced from who hits whom, and a single blow was enough to move them across with all their damage behind them.
In your history there was friendly fire in five fights, all in the Plane of Fear. In three of them a groupmate ended up on the other side, and in the worst one 55 % of the «enemy damage» was your own group's. It took from you too: the damage that groupmate dealt to the boss did not count under «Your side».
Now what you declared wins. Someone you have said is yours does not change side because one blow says otherwise, and the damage you deal each other is added to no total: it is set aside and counted, by name and in both directions, under «Two of your own fighting each other».
That block is in the fight, above the list of combatants — not in the replay. It says which groupmate fought the group, how many hits, how much damage and between which seconds. The cause is not stated, because the log does not write it on any line. Beside it goes the only thing that is written nearby: the last spell the enemy cast before that stretch, whatever it was, with the seconds of distance. Sometimes it is a charm and sometimes it is one of its own heals, and it is shown just the same — it is a neighbouring fact, not a cause.
«What this fight does not know»
For versions the program had been working out how much it cannot be trusted, and showing it nowhere. Three numbers, measured, stored and mute. Now they are together and in plain sight, because they are the same question:
- real damage with no owner, which is a damage shield with no possessive; the log attributes it to nobody and it enters no total
- damage counted as the enemy's on the strength of a deduction rather than a line: the charm that broke when another was chained, which the log never announces
- loot with two equally possible corpses, where the most recent was chosen
Each one is marked as measured or deduced. This part needed no rebuild: the three numbers were already calculated and stored. All that was missing was reading them.
«State changes», in the replay
Below the timeline there is a track with what happened to you during the fight: «stunned», charms of your own, «No control», absorptions, knockdowns and survival warnings.
Where the log writes both ends of a state, the duration is measured and a bar is drawn from start to finish. Where that bar would not be distinguishable from a dot at the width you have on screen, the dot is drawn — and widening the window turns dots into bars. That is deliberate: the track shows the resolution it has, not one it does not.
A state that was already in place when the fight began, or still in place when it ended, is drawn open on that side. That is different from claiming it lasted that long, which is all that is actually known.
Not every possible state is there, only the ones that say something. Root is read and stored but not drawn: it does not stop you hitting, so it explains no gap in the curve. It was on the track for being frequent, and on a track where everything is marked nothing is marked.
«What you resist from it»
What you resist was a loose total for the fight. That total stays where it was, and now it also goes to each enemy's card, with which of its spells it was — which is what turns «you resisted seven» into something you can use the next time you go down there.
It is not a percentage, and the card says so: a spell landing leaves no line in the log, so what is counted is the times you stopped it and nothing else.
Fights that were cut in two
A long enough stretch without control used to cut the fight, because during a fear there is not a single line of yours and that read as combat having ended. It happened by both routes: the log's own timestamp and the wall clock, which in live play closed even before the notice that you had regained control arrived.
It no longer cuts. On rebuilding, five fights merge with their neighbour and one moves its boundary, so your total drops by four. Which number you end up with depends on how much you have played before rebuilding; the difference does not.
What is still open
Rebuilding does not reproduce your history exactly. Of the ten measured differences between what the wall clock decides and what the log's timestamp decides, seven are closed. The three that remain are launches of the application in the middle of the log, and no clock rule splits those: where a freshly created tracker starts looking, a fight starts.
It is said here because it is better to know it before rebuilding than to discover it afterwards.