What: After slots have been built, emptying the loadout calls clearGroup() then rebuildSlots(), which early-returns on count === 0 without resetting _bounds. The previous AABB (width = n*48+(n-1)*4, y = 80) is left in place. HUDPanel.handleDragMouseDown still hits that rectangle, so the player can drag an invisible skill bar.
Repro (unit):hud.setSlots([spell, spell]); hud.setSlots([]); → _bounds.width stays 100 and group.children.length is 0.
Expected: empty loadout should zero _bounds (and skip drag) the same way the constructor starts.
Found by Wave 8 a2 coverage tests.
**Where:** `projects/spikersoft/src/app/_components/_games/dungeon-crawler/hud/skill-bar-hud.ts` — `setSlots([])` → `rebuildSlots()`.
**What:** After slots have been built, emptying the loadout calls `clearGroup()` then `rebuildSlots()`, which early-returns on `count === 0` without resetting `_bounds`. The previous AABB (`width = n*48+(n-1)*4`, `y = 80`) is left in place. `HUDPanel.handleDragMouseDown` still hits that rectangle, so the player can drag an invisible skill bar.
**Repro (unit):** `hud.setSlots([spell, spell]); hud.setSlots([]);` → `_bounds.width` stays `100` and `group.children.length` is `0`.
**Expected:** empty loadout should zero `_bounds` (and skip drag) the same way the constructor starts.
Found by Wave 8 a2 coverage tests.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Where:
projects/spikersoft/src/app/_components/_games/dungeon-crawler/hud/skill-bar-hud.ts—setSlots([])→rebuildSlots().What: After slots have been built, emptying the loadout calls
clearGroup()thenrebuildSlots(), which early-returns oncount === 0without resetting_bounds. The previous AABB (width = n*48+(n-1)*4,y = 80) is left in place.HUDPanel.handleDragMouseDownstill hits that rectangle, so the player can drag an invisible skill bar.Repro (unit):
hud.setSlots([spell, spell]); hud.setSlots([]);→_bounds.widthstays100andgroup.children.lengthis0.Expected: empty loadout should zero
_bounds(and skip drag) the same way the constructor starts.Found by Wave 8 a2 coverage tests.
Fixed in
spikersoft-angularPR #823 (a0f0ccd9). Closing.