diff --git a/docs/requirements.md b/docs/requirements.md index f253fe1..6dfd232 100644 --- a/docs/requirements.md +++ b/docs/requirements.md @@ -47,7 +47,7 @@ The following config files drive game parameters: - REQ-BLD-9: **Assembler** (3×3): The player selects a recipe from the config-defined crafting tree. Produces the selected output item at the rate defined in recipes.config. - REQ-BLD-10: **Reprocessing Plant** (3×3): Consumes scrap per cycle (quantity from recipes.config) and produces higher-level intermediate products. Each product type has a fixed drop probability per cycle, defined in recipes.config. - REQ-BLD-11: **Shipyard** (4×2): The player selects a blueprint. Automatically produces one ship of that type whenever all required materials are present in its input buffer. Ship material requirements are defined in ships.config. -- REQ-BLD-12: **Salvage Bay** (TBD size): A dedicated drop-off point for salvage ships. Scrap delivered here is placed onto connected output belts. +- REQ-BLD-12: **Salvage Bay** (3×2): A dedicated drop-off point for salvage ships. Scrap delivered here is placed onto connected output belts. - REQ-BLD-13: **Belt** (1×1): Transports items. Available in straight and curved variants. - REQ-BLD-14: **Splitter** (1×1): Distributes incoming items alternately between two output directions. If one output is blocked, items are sent to the other output until it unblocks. @@ -114,8 +114,41 @@ The following config files drive game parameters: ## UI -- REQ-UI-1: The elapsed survival time is always visible. -- REQ-UI-2: The current global building blocks stock is always visible. -- REQ-UI-3: The player can scroll the view horizontally across the scrollable area. -- REQ-UI-4: The player can click a building to inspect its current contents and change its selected recipe or blueprint. -- REQ-UI-5: When clicking a shipyard, the player can also configure stance and target priority for ships produced by that shipyard. +### Layout + +The screen is divided into three vertical sections: + +``` ++--------------------------------------------------+ +| Header Bar | ++--------------------------------------------------+ +| | +| Game World (70%) | +| | ++-------------------------+------------------------+ +| Selected Building Panel | Build Button Grid | +| (left) | (right) | ++-------------------------+------------------------+ +``` + +- REQ-UI-1: The header bar spans the full width above the game world and always shows the elapsed survival time and the current global building blocks stock. +- REQ-UI-2: The game world view occupies 70% of the remaining screen height below the header bar. +- REQ-UI-3: The UI panel occupies the remaining 30% of the screen height, split horizontally into a selected building panel (left) and a build button grid (right). + +### Game World + +- REQ-UI-4: The player scrolls the view horizontally across the scrollable area by pressing A (scroll left) and D (scroll right). + +### Selected Building Panel + +- REQ-UI-5: When no building is selected, the panel is empty. +- REQ-UI-6: When one building is selected, the panel shows: building name, current recipe or blueprint selection, input buffer contents, and output buffer contents. +- REQ-UI-7: The player selects multiple buildings by box-drag or by Ctrl+clicking individual buildings to add or remove them from the selection. +- REQ-UI-8: When multiple buildings are selected, the panel shows how many of each building type are selected. No per-building detail is shown. +- REQ-UI-9: Recipe, blueprint, ship stance, and target priority configuration for a selected building is shown and changed inline within this panel. + +### Build Button Grid + +- REQ-UI-10: All placeable building types are shown as a flat grid of buttons with no grouping. +- REQ-UI-11: Each button caption shows the building name and its building block cost, e.g. "Belt: 2 Blocks". +- REQ-UI-12: Buttons for buildings the player cannot currently afford are shown as disabled.