From 0c2c3b572d3d6ef7bf5ddba1f74e0144511d46db Mon Sep 17 00:00:00 2001 From: Erik Date: Mon, 7 Sep 2026 11:33:08 +0200 Subject: [PATCH] =?UTF-8?q?fix(vtank):=20slice=207=20fix=20round=20B=20ite?= =?UTF-8?q?m=202=20=E2=80=94=20restore=20VTank's=20Buffs=20silhouette,=20a?= =?UTF-8?q?dd=20sibling-overlap=20pin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Owner's silhouette rule: VTank's own controls are never shrunk/moved/ reordered to make room for MossTank extras. The Buffs tab's Difficulty "+" button (338,108,26,20) overlapped the Extra Buff Spells "Add..." button (336,102,120,16) because both VTank lists had been narrowed to 246/256x84 to coexist with MossTank's toggle/difficulty/rebuff/Buff-cast-now block in the same two columns. Fix: restore both lists to VTank's real 320x116 at the far left (x=4) and far right (x=524) with their own 120-wide "Add..." row below each list. Move the MossTank-only extras block (7 toggles, Difficulty +/-, Rebuff +/-, the Buff button+status, Coverage) into the empty 184px middle strip between the two lists that VTank's own layout never uses. Coverage moves to y=178 (194-16) per the upcoming bottom-fit rule. Also fixed: a second real overlap the new pin found on the Options tab — "Pet Min. Monsters:" (614,48,125,16) overlapped its own field (734,48,40,16) by 5px; narrowed the label to the same 120px column width every other label/field pair in that block uses. Added AuthoredControlsInTheSameContainerNeverOverlapASibling (4 file cases) plus a direct predicate pin (AssertNoSiblingOverlap_CatchesARealOverlap...) proving the helper catches a real overlap, ignores touching edges, and ignores two tab-pages sharing one rectangle (mutually exclusive via their own visible="{...}" binding) — the existing AssertWithinParent only ever checked a child against its OWN parent's bounds, never against a sibling. Mutation check: setting DifficultyUp's button to (472,112) — the same rect as DifficultyDown — turned AuthoredControlsInTheSameContainerNeverOverlapASibling red against the real mosstank.xml ("