# our crucible interact menu doesnt match the theme of the game, lets enhance it # Editable Crucible Console Menu ## Summary Move the Crucible menu’s visual hierarchy into ui/crucible_menu.tscn, leaving scripts/crucible_menu.gd responsible only for runtime data binding, action handling, state updates, and closing behavior. ## Scene Structure Create an editor-editable scene with: - Full-screen Control root using CrucibleMenu. - Full-screen translucent shade. - Centered responsive console panel. - Header with: - PORTABLE RESIN CRUCIBLE - M-299 REFINERY - Online/owner status readout. - Two-column content area: - Resource status panel for THC resin, resin doses, and M-299 reserve ammunition. - Operations panel containing refinement and distillation action cards. - Action cards with editable labels for: - Cost. - Output. - Availability requirement. - Button control. - Status feedback label for success and failure messages. - Footer with ESC CLOSE. - Scene-local style resources for panel surfaces, borders, bars, buttons, disabled states, and typography. All spacing, colors, fonts, text, minimum sizes, and layout behavior should be adjustable from the Godot editor. ## Script Changes - Replace runtime node construction in scripts/crucible_menu.gd with @onready references to the scene’s named controls. - Preserve the existing setup(...), _close(), resource operations, input locking, and refresh behavior. - Update only dynamic values at runtime: - Resource counts and capacities. - M-299 reserve. - Action enabled/disabled states. - Requirement text. - Success/error status messaging. - Keep unavailable operations disabled with explanatory requirement text. - Focus the first available action when the menu opens. - Keep all crafting rules and resource costs unchanged. Update scripts/player/player_ui.gd to preload and instantiate ui/crucible_menu.tscn, passing the existing resources and crucible references into setup(...). ## Test Plan - Run the existing resource recovery test. - Confirm the scene instantiates and still exposes the CrucibleMenu node. - Verify opening and closing still locks/restores player input. - Verify resource labels update after refining and distilling. - Verify action buttons enable and disable correctly at resource limits. - Verify success and failure status messages. - Manually inspect the scene in the Godot editor and test it at both 1920×1080 and smaller viewport sizes. ## Assumptions - ui/crucible_menu.tscn becomes the single source of truth for the menu’s visual layout. - No new raster assets are required. - Existing public menu methods remain compatible with current callers and tests. - The menu continues using the HUD console visual language: near-black translucent panels, teal borders, Hermit typography, mint highlights, and amber warnings.