fix(vtank): slice 7 round F item 3 — Items tab is VTank only
Owner's second live look: "On items tab, we show some options there
right of the items we add. That should not be there. Remove that."
VTank's real Items tab is exactly 6 controls (docs/research/vtank-kb/
08-ui-views.md §1 "Tab: Items" — 2 labels, the 2-column
clWeaponName/clHandedness list, Add, Add (no buffs)); mosstank.xml's
Items group also carried a right-of-list block with no VTank
counterpart: the Weapon/Offhand readout (MonsterEquipmentText), the
Refill Worn Mana toggle + slider + its two status labels
(RefillWornManaText/ItemManaRechargeStatus), and the ProfileNotice
hint label. All five are deleted from the markup.
The pre-existing "Remove" button stays — it traces back to the
plugin's very first automation PoC commit (`4e6e9bc9d`, long before
Campaign VT slice 7 existed), the accepted "slice-1 Delete" carried
forward per the round's own scope.
RefillWornMana/RefillWornMana-Item-ManaPercent are real
VtankOptionCatalog entries (Bool/Int, not tString) — nothing was
deleted from the plugin, they remain real settings, still editable in
the Advanced Options popup or via `/vt opt set`; only this second,
redundant Items-tab surface for them is gone. ItemManaRechargeStatus
was a pure runtime status readout with no setting behind it and no
VTank equivalent, so it has no replacement — matching VTank's own tab,
which shows no such status either.
Mutation shown to fail first: the new
ItemsTabIsVtankOnlyPlusTheAcceptedSliceOneRemoveButton test asserted
the Items group has no toggle/slider and no label bound to any of the
four removed properties, against the UNCHANGED markup — failed on the
Refill Worn Mana toggle still being present — then passed once the
block was deleted from mosstank.xml.
MossTank suite 723 -> 724 (one new pin); App markup/plugin filter
258/258 (unaffected — no App-side markup change).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
9e23f0acb6
commit
179e6f3390
2 changed files with 56 additions and 13 deletions
|
|
@ -481,14 +481,24 @@
|
|||
declared list width below rather than the column itself). Name-cell
|
||||
click deletes the row (case 0); hands-cell click cycles handedness
|
||||
(case 1) — session-local only, see DeleteItemRowAt/CycleItemHandsAt's
|
||||
own doc comments for why handedness isn't persisted. -->
|
||||
own doc comments for why handedness isn't persisted.
|
||||
|
||||
Round F item 3 (owner's second live look: "On items tab, we show
|
||||
some options there right of the items we add. That should not be
|
||||
there. Remove that."): deleted the whole right-of-list block
|
||||
(Weapon/Offhand readout, Refill Worn Mana toggle/slider/status,
|
||||
the notice hint) — VTank's real Items tab (KB table above) is
|
||||
exactly the 2 labels + list + Add/Add (no buffs), nothing beside
|
||||
it. The "Remove" button below stays: it traces back to the
|
||||
plugin's original pre-campaign automation PoC (`4e6e9bc9d`), the
|
||||
accepted "slice-1 Delete" this round keeps. RefillWornMana/
|
||||
RefillWornMana-Item-ManaPercent are real VtankOptionCatalog
|
||||
entries (not tString) — still real settings, still editable in
|
||||
the Advanced Options popup or via `/vt opt set`; only this
|
||||
second, redundant Items-tab surface for them is gone. -->
|
||||
<group x="8" y="42" w="976" h="229" visible="{ItemsVisible}" anchor="left top right bottom">
|
||||
<label x="4" y="8" w="327" text="Weapons / Wands / Shields / Pets" color="#FFE8DEC3" />
|
||||
<label x="331" y="8" w="103" text="Hands" color="#FFE8DEC3" />
|
||||
<!-- Round D item 4: height-only growth (+35, matching the group) —
|
||||
the right-side info block starts at x=438, only 4px past this
|
||||
list's right edge, so widening it would collide; pinned left,
|
||||
not stretching horizontally. -->
|
||||
<list x="4" y="28" w="430" h="147" rowheight="18" anchor="left top bottom"
|
||||
selected="{SelectedItemRowIndex}" onchange="{SelectItemRow}"
|
||||
tooltip="Click a name to remove it, or Hands to cycle 1-Handed/2-Handed.">
|
||||
|
|
@ -500,14 +510,6 @@
|
|||
onclick="{AddSelectedItemNoBuffs}" anchor="bottom" />
|
||||
<button x="284" y="189" w="126" h="25" text="Remove"
|
||||
onclick="{RemoveSelectedItem}" anchor="bottom" />
|
||||
<label x="438" y="36" text="{MonsterEquipmentText}" color="#FFC7B98F" />
|
||||
<toggle x="438" y="64" w="220" h="20" text="Refill Worn Mana"
|
||||
checked="{RefillWornManaEnabled}" onclick="{ToggleRefillWornMana}" />
|
||||
<slider x="438" y="90" w="188" h="15" value="{RefillWornManaValue}"
|
||||
onchange="{SetRefillWornMana}" tooltip="Worn-item mana refill threshold." />
|
||||
<label x="636" y="88" text="{RefillWornManaText}" color="#FFC7B98F" />
|
||||
<label x="438" y="116" text="{ItemManaRechargeStatus}" color="#FF9B9072" />
|
||||
<label x="438" y="160" text="{ProfileNotice}" color="#FF9B9072" />
|
||||
</group>
|
||||
|
||||
<!-- Consumables: the same exact-name profile VTank consults for phials,
|
||||
|
|
|
|||
|
|
@ -252,6 +252,47 @@ public sealed class MossTankMarkupContractTests
|
|||
Assert.Equal("Priority", tooltipsByHeaderText["P"]);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Round F item 3 (owner's second live look: "On items tab, we show
|
||||
/// some options there right of the items we add. That should not be
|
||||
/// there. Remove that."). VTank's own Items tab is exactly 6 controls
|
||||
/// (docs/research/vtank-kb/08-ui-views.md §1 "Tab: Items" — 2 labels,
|
||||
/// the 2-column list, Add, Add (no buffs)) with nothing to the right
|
||||
/// of the list. MossTank's pre-existing "Remove" button traces back
|
||||
/// to the plugin's very first automation PoC commit (`4e6e9bc9d`,
|
||||
/// long before Campaign VT slice 7), so it is the accepted
|
||||
/// "slice-1 Delete" this round keeps; everything else that used to
|
||||
/// sit right of the list (Weapon/Offhand readout, Refill Worn Mana
|
||||
/// toggle/slider/status, the notice hint) is gone.
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public void ItemsTabIsVtankOnlyPlusTheAcceptedSliceOneRemoveButton()
|
||||
{
|
||||
XDocument document = XDocument.Load(
|
||||
Path.Combine(AppContext.BaseDirectory, "mosstank.xml"));
|
||||
XElement root = Assert.IsType<XElement>(document.Root);
|
||||
XElement itemsGroup = root.Elements("group")
|
||||
.Single(static g => (string?)g.Attribute("visible") == "{ItemsVisible}");
|
||||
|
||||
Assert.Single(itemsGroup.Elements("list"));
|
||||
string[] buttonTexts = itemsGroup.Elements("button")
|
||||
.Select(static b => (string?)b.Attribute("text") ?? string.Empty)
|
||||
.ToArray();
|
||||
Assert.Equal(["Add", "Add (no buffs)", "Remove"], buttonTexts);
|
||||
|
||||
// Nothing else — no toggle, no slider, and no label reads a
|
||||
// MossTank-only status/notice property.
|
||||
Assert.Empty(itemsGroup.Elements("toggle"));
|
||||
Assert.Empty(itemsGroup.Elements("slider"));
|
||||
string[] labelBindings = itemsGroup.Elements("label")
|
||||
.Select(static l => (string?)l.Attribute("text") ?? string.Empty)
|
||||
.ToArray();
|
||||
Assert.DoesNotContain("{MonsterEquipmentText}", labelBindings);
|
||||
Assert.DoesNotContain("{RefillWornManaText}", labelBindings);
|
||||
Assert.DoesNotContain("{ItemManaRechargeStatus}", labelBindings);
|
||||
Assert.DoesNotContain("{ProfileNotice}", labelBindings);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AuthoredShellFitsTheMinimumCanvasAndEverySizedChildFitsItsParent()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue