Commit Graph

138 Commits

Author SHA1 Message Date
4baab16794 Render building icons in the game world
Draw each building's icon glyph over its footprint fill in place of the text
identity glyph (REQ-UI-WORLD-ICON): production buildings, HQ, and defence
stations. GameWorldView pre-renders each type's icon (chip background stripped)
in a white and a dark variant and picks the contrasting one by fill luminance;
belts, splitters, and tunnels are excluded and keep their tile/text rendering.
Wired into operational buildings, construction sites (icon + progress), stations
(previously letterless), and the builder/blueprint ghost. Update the requirement
wording from "white glyph" to a contrasting ink.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7N59FsLA5e2kuVdqe4Uhc
2026-07-22 22:36:56 +02:00
ef0191132b Exclude belts/splitters/tunnels from world icons
Update REQ-UI-WORLD-ICON: in-world building icons apply to the production
buildings, HQ, and defence stations only. Belts, splitters, and tunnels keep
their existing tile rendering so orientation/flow stays readable; their build
buttons still use icons, and tunnel_entry.svg is a build-button icon only.
Adjust the visuals.toml glyph note accordingly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7N59FsLA5e2kuVdqe4Uhc
2026-07-22 22:13:26 +02:00
d563f5d658 Require building icons in the game world
Add REQ-UI-WORLD-ICON: buildings render their icon's glyph symbol centered on
the footprint (over the existing fill), replacing the letter identity glyph,
with a text-glyph fallback for types without an icon file. Update
REQ-UI-CONSTRUCTION-PROGRESS and the visuals.toml config summary accordingly;
port glyphs are unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7N59FsLA5e2kuVdqe4Uhc
2026-07-22 20:36:50 +02:00
2e8ed40841 Document build button grid icons in requirements
Add REQ-UI-BUILD-ICON (per-building SVG chip icons loaded from
data/icons/buildings/) and extend REQ-UI-BUILD-DISABLED to cover the greyed
icon variant shown for unaffordable buildings.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7N59FsLA5e2kuVdqe4Uhc
2026-07-22 20:06:59 +02:00
ae41f677e6 Rename Demolish to Deconstruct; add build button grid icons
Rename the Demolish* terminology to Deconstruct* across the simulation,
events, UI, tests, and docs (DemolishCommand and the DemolishMode* events
become their Deconstruct* equivalents), aligning with the deconstruction
queue at HEAD.

Add per-building SVG icons for the build button grid (REQ-UI-BUILD-GRID):
one color-chip icon per placeable building under data/icons/buildings,
loaded from disk at runtime and rendered with QtSvg onto each build button.
An unaffordable building's button shows a grey-recolored variant via a
QIcon Disabled-mode pixmap (REQ-UI-BUILD-DISABLED). Adds the Qt5::Svg
dependency and deploys Qt5Svg.dll.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7N59FsLA5e2kuVdqe4Uhc
2026-07-22 18:38:18 +02:00
aec65446d5 Add deconstruction queue to demolition requirements
Demolishing a fully-built building now queues it for timed
deconstruction (parallel to the construction queue) rather than
removing it instantly; construction sites are still removed
instantly. Adds REQ-BLD-DECON-QUEUE and updates REQ-BLD-DEMOLISH,
REQ-BLD-DEMOLISH-CLICK, REQ-BLD-DEMOLISH-BOX, and REQ-BLD-TUNNEL-PAIR.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7N59FsLA5e2kuVdqe4Uhc
2026-07-22 11:22:59 +02:00
8dc76284e6 Spec unlock groups: config-driven grouped unlocks
Replace the per-config unlock fields (unlock_at_station_level,
unlock_requires) with a first-class unlock-group concept defined in a
new unlocks.toml. An unlock group is now the unit of loot: awarding one
grants all its members (ships, modules, buildings, assembler recipes) at
once, so a building and a module can be unlocked together.

- Buildings become lockable (REQ-LOCK-BUILDING); locked types are hidden
  from the build grid and skipped in blueprint placement.
- Items absent from every unlock group start unlocked (replaces -1).
- New unlocked_at_start flag on assembler recipes for graph-unreachable
  base recipes (e.g. building blocks).
- Group display name derived from id for now; no display_name field yet.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7N59FsLA5e2kuVdqe4Uhc
2026-07-21 21:53:45 +02:00
a8a6a04f1e Highlight tunnel connections in green when selected 2026-07-21 21:16:21 +02:00
a75222f111 Never rotate tunnels in place 2026-07-21 21:14:27 +02:00
9b63af6ccb Unify tunnel build mode into a single Tunnel button 2026-07-21 21:12:06 +02:00
4ca5b332cd Snap belt-drag end tile to a building's input edge 2026-07-21 21:09:07 +02:00
0c4eb480be Update belt drag L-path immediately on rotate 2026-07-21 21:06:54 +02:00
b2c1ea34fd Implement deferred L-shaped belt drag placement 2026-07-21 21:05:31 +02:00
1cbc695bc5 Add building status light 2026-07-20 22:19:58 +02:00
c7ecce6ac4 make empty layout cells pulse while module is selected 2026-07-20 22:15:26 +02:00
be475e2836 allow multi-select for ships/stations, mixable with scrap 2026-07-20 21:03:11 +02:00
1cdafb7bcd draw glyph for output port at the target tile during build mode 2026-07-19 22:30:03 +02:00
f205136e21 show tooltip for artifacts in the header bar 2026-07-19 22:16:04 +02:00
b708e1b29d Add demolish-mode vignette 2026-07-19 21:51:12 +02:00
c76ba07bc7 Correct top game speed step to 10x in requirements 2026-07-19 21:37:47 +02:00
b2e7e4897a Add paused-state vignette border to game world view 2026-07-19 21:34:56 +02:00
9c1e948ab4 show selected ship's current behavior in sidebar panel 2026-07-14 21:19:14 +02:00
486296feee Allow direct output-to-input port coupling between adjacent buildings 2026-07-14 20:23:24 +02:00
c9f14970a1 Animate items entering building input ports 2026-07-14 20:21:25 +02:00
6a8c456aa1 Animate items emerging from building output ports 2026-07-14 20:18:47 +02:00
af8a2224c0 fix issue where items were accepted by a belt from opposite travel direction 2026-07-14 20:15:39 +02:00
4b149d97a7 dim the game behind dialogs and escape menu 2026-07-13 22:11:21 +02:00
535d4f8f24 allow to (multi) select scrap 2026-07-13 21:09:01 +02:00
8c4fb78fc9 Allow creating blueprints from construction sites 2026-07-13 20:50:13 +02:00
698dd4d13d auto-open layout dialog on manual schematic change 2026-07-13 20:47:37 +02:00
9d28175b17 Always show shipyard layout preview and Configure button, disabled until schematic selected 2026-07-13 20:45:03 +02:00
69fe607157 Show total building block cost in multi-selection panel (relevant for temporary blueprint) 2026-07-13 20:31:40 +02:00
ad3e73fdd8 Add tooltip for building blocks in header bar 2026-07-12 21:24:11 +02:00
177809fe1a Add tooltips for building buttons and module selection buttons 2026-07-12 21:21:14 +02:00
4986c1bac8 implement copy building settings with shift + click gesture 2026-07-09 20:29:20 +02:00
e110e7e413 Add T hotkey for temporary blueprint from selection 2026-07-09 20:25:15 +02:00
6274b5ce60 List unlocked recipes with tooltips in schematic choice dialog instead of unlocked item names 2026-07-09 20:22:17 +02:00
16ed6a5695 Show schematic id for all three types of drops in choice dialog 2026-07-09 20:18:38 +02:00
13dacab274 remove save and load buttons for factory blueprints to mirror the ship-layout blueprints 2026-07-09 20:15:30 +02:00
2ddf13238c Fix Salvage Bay drop-off not working by adding config-driven buffer capacity 2026-07-09 20:11:12 +02:00
de1ebb8a5f increase scroll speed across contest zone 2026-07-08 22:25:12 +02:00
f11db0c072 Add demolish box-drag interaction 2026-07-08 21:04:59 +02:00
e8786c3922 implement cost formula for asteroid expansion 2026-07-08 20:33:19 +02:00
24e0999d8a show total time in balancing target arenas 2026-07-08 20:31:14 +02:00
751ef27a7b show team EHP in balancing target 2026-07-08 20:29:41 +02:00
3c1376828c implement logging of arena states 2026-07-08 20:29:33 +02:00
5b86b15c71 Fix ThreatCostCalculator: per-unit division, scrap fallback, fixpoint, staggered-recipe max 2026-07-08 20:28:31 +02:00
6ea0655eaf implement unlock dependencies 2026-07-03 08:35:45 +02:00
18e732ae99 Remove schematic upgrades and module and ship levels 2026-07-02 21:32:36 +02:00
81b1c7a66b Derive ship scrap drop from threat 2026-07-02 21:30:38 +02:00