docs(vt): slice 7 plan — the nine tabs at VTank's geometry on the column markup; pulled forward after slice 1

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-09-07 06:23:28 +02:00
parent aafa66c821
commit 074762dd36
2 changed files with 94 additions and 1 deletions

View file

@ -35,7 +35,7 @@ accepts: T = tests only, O = owner connected/visual gate.
| 4 | **Buffs and vitals** | Per-tick plan re-evaluation (mid-pass tier cascade); profile-item → default enchant rows on Add; helper pool incl. non-fellow tracked players (decide); worn-item charge ORDER only (oldest-queued vs lowest-%, Low — the pool is global on both sides); keep the RandomHelper improvement (decide, document). (04 §5) | 2 | M | O (buff pass) |
| 5 | **Looting** | `EarlyMatch`/`NeedsID` identify-avoidance; rare-first corpse selection; ownership-denial chat listener (10 s skip); corpse age clock from first sighting; explicit re-close. (05 §4) | 1 | M | O (loot field) |
| 6 | **Navigation** | Creep band + `FaceHeading` snap-turn inside 1/160 with the forced-Magic case; OpenVendor fire-and-forget vs wait (decide, document as a divergence if kept); lockpick strategy (decide); recall stationary gate; Portal2/UseNPC candidate filter; chat-color gate on UseNPC. (06 §6) | 2 | M | O (route) |
| 7 | **UI transcription** | Monsters/Items/Consumables/Buffs/Route/Meta tabs rebuilt as VTank's grids on the multi-column list; window geometry from `mainView.xml`; Advanced Options and Loot Editor stay in-panel by decision. (08 §1,§5) | 1c | M | O (visual) |
| 7 | **UI transcription** | Monsters/Items/Consumables/Buffs/Route/Meta tabs rebuilt as VTank's grids on the multi-column list; window geometry from `mainView.xml`; Advanced Options and Loot Editor stay in-panel by decision. (08 §1,§5) | 1c | M | O (visual) | ← PULLED FORWARD to run right after slice 1 (owner: "looks basically the same" is the visible win); plan `2026-09-07-campaign-vt-slice7-tabs.md`
| 8 | **Meta and expressions** | Doc 07's five semantic gaps: `CreateView` markup translation (VTank's two-tag Button/Layout dialect → our panel markup; 6-view cap), nested `All` actions must run every child (no short-circuit), case-sensitive monster-name regex, the `;` operator decision (retail returns the FIRST operand, UtilityBelt/MossTank the last — owner decides, document as a divergence either way), watchdog ring pre-fill with the far sentinel; plus the per-state-entry firing rule, the two "seconds in state" clocks, and the call/return stack semantics of 07 §2. Unregistered retail condition id 27 stays unregistered. | 1b (`.af`) | M | T + O (a live meta run) |
| ~~9~~ | ~~**Plugin interop API**~~ | **DROPPED by the owner 2026-09-06: no interop.** All plugins are rewritten for acdream against its own API; no VTank export surface, no Decal-shaped relay. (09 §5 is historical context.) | — | — | — |

View file

@ -0,0 +1,93 @@
# Campaign VT — slice 7: the nine tabs, looking like VTank's
Date: 2026-09-07
Status: PLANNED — implementation starts once slice 1c (the `metas/`/`navs/`
folder follow-up) has merged; it shares `mosstank.xml` and `MossTankPanel.cs`.
Owner's bar (2026-09-06): "I don't care if the UI is constructed the same
way, just as long as it looks basically the same" — visual resemblance and
the same player-facing interactions, judged side by side with a running
VTank. Never VVS internals. Pulled forward from the VT2 order because it
only depends on slice 1's column markup and gives the owner the visible
result early. Owner gate: VISUAL (the first stop point of the campaign).
## Oracle
`docs/research/vtank-kb/08-ui-views.md` §0 (856×210, nine tabs, icon
`0x060029AB`), §1 (every control of every tab with `L,T,W,H`, text and the
bound setting), §5 (what `mosstank.xml` does today), plus VTank's own layout
file `C:\Users\erikn\source\repos\acdream\refs\vtank\uTank2.ViewXML.mainView.xml`
(read-only, the geometry truth). Behavior per cell click: KB 08 §2/§3 and
`refs/vtank/decompiled/uTank2/PluginCore.cs:7904-8089` (Monsters cell
handlers), `:8529-8562` (Items), `:2219-2247` (Meta), `:3576-3599` (Route),
`:7323-7355` (Buffs), `:7683-7776` (Consumables). Markup reference:
`docs/plugin-ui-markup.md` (columns, `width="*"`, text `onclick`).
## Scope
S7.1 **Window.** `mosstank.xml` becomes 856×210 content (VTank's proportions;
our chrome adds its own title bar), nine tabs in VTank's order and widths,
each tab's content area 856×(210tab strip). The Advanced Options page and
the Loot Editor page stay in-panel (decision, KB 08 §5) but move to VTank's
own popup geometry as separate groups (392×300 and 268×300) opened from the
same checkboxes VTank uses (`cShowAdvanced`, `cShowLootEditor`).
S7.2 **Options / Profiles / Vitals** transcribed control-for-control from KB
08 §1 at VTank's `L,T,W,H` and captions (our labels/fields/toggles/buttons/
sliders; the nine Vitals sliders read 0100 with the "NN%" readout labels —
add optional `min`/`max` literal attributes to `<slider>` so the plugin
binds the percent directly, KB 08 §3 gap). Profiles: the four rows
(Macro Settings / Auto-Navigation / Looting / Meta) with their combo,
CopyTo/New, Clear, Mine-only and Show-Editor controls; the combos list the
real files from slice 1's stores. Add optional `scroll="true"` on `<menu>`
(one column, scrollbar) for the 27-entry recall list and long profile lists.
S7.3 **Monsters** — one 23-column list on `<column>`: 14 check (F B G I Y V
A R S WC FC Cp DC Cs, 16 px each with the header letters as `<label>`s
above and the tooltips), 7 text (Name 120, P 20, Dmg type 56, Ex. Vuln 56,
Weapon 80, Offhand 80, PetDmg 56) with VTank's per-cell clicks (Name click
deletes the monster; P cycles 1→0…4; Dmg type / Ex. Vuln / Weapon /
Offhand / PetDmg cycle their value lists exactly as `PluginCore.cs:7948-8089`),
2 icon (move up / move down, DAT ids `0x060028FC`/`0x060028FD`), plus the
Add / Add Sel row. Bound to the existing `CombatSettings.Rules` model
(`MyMonsters` parse is slice 3 / TS-86).
S7.4 **Items / Consumables / Buffs** — the five lists at VTank's geometry
(Items: name 320 + hands 80, click name deletes, click hands cycles;
Consumables: name list + the excluded-scarab list with the component icon
column; Buffs: extra buffs + blacklisted families; every "Add..." opens the
same in-panel picker shape as `SelfBuffChoiceView`, 268×236, search field
filtering a single-column list).
S7.5 **Route** — the waypoint list (text 330 + count 30, click deletes), the
nested bottom row (nav-type and insert-mode menus, the three image buttons
with DAT ids `0x060028FD`/`0x060028FC`/`0x060011F7` and their tooltips), and
the eight Add buttons with their fields (pause seconds default "5", chat
default "/ls", the 27-entry recall menu).
S7.6 **Meta** — the six-column rules grid (delete / up / down icons, State
150, Condition `*`, Action `*`; any text-cell click opens the rule editor
as today), Create, "Current State:" bold label and the state menu.
S7.7 **Gate script** `docs/research/2026-09-07-campaign-vt-slice7-test-script.md`:
one row per tab — what to open in VTank, what to open in acdream, what
must look the same (arrangement, density, captions, list shapes) and the
one interaction to try per tab (toggle a monster flag, cycle a priority,
add a waypoint, delete an item). Launch line and the profile-dir setup
(`ACDREAM_VTANK_PROFILE_DIR` on a COPY of the VirindiTank folder).
## Out of scope
Any behavior under the tabs (slices 26, 8); pixel-matching VVS
(padding constants, hit-test mechanics); the `MyMonsters` parse.
## Process
One Sonnet implementer per sub-slice group in one worktree (S7.1+S7.2, then
S7.3, then S7.4S7.6, then S7.7), each with build + `dotnet test
tests/AcDream.App.Tests --filter Markup` + `tests/AcDream.Plugins.MossTank.Tests`
green and the markup contract test updated; every new pin shown to fail;
UI-probe screenshots (`ACDREAM_UI_PROBE_SCRIPT`) of every tab attached to the
closeout so the owner can pre-screen before the live gate. Two Opus lenses
(architecture; resemblance against `mainView.xml` — the reviewer judges
arrangement/density/captions, NOT VVS mechanics), fix round, narrow
re-review, merge to the campaign branch, then the owner's visual gate.
## Ledger
- 2026-09-07 planned.