7295463805
feat(content): victory & flee endings; front-door flee switch
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 22:50:46 +02:00
3189b057a0
feat(game): EndingEngine + per-turn end check with summary
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 22:49:00 +02:00
f9bd2d9a67
feat: Ending model + endings.yaml loading (ordered, optional)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 22:47:38 +02:00
55944a0343
feat(content): demo quest 'restore_power'; document quests command
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 22:34:57 +02:00
e360a754a6
feat(io): GUI quest-box under the map
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 22:33:57 +02:00
c2e5789118
feat(io,command): quests command, QuestText, per-turn quest tick
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 22:31:33 +02:00
fe9ac65f25
feat(loader): quests.yaml loading + startQuest effect mapping
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 22:29:52 +02:00
423cf85c39
feat(game): QuestEngine (auto-advance + announcements) and QuestView
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 22:27:18 +02:00
4e0e951a8d
feat(game): Quest model, QuestLog, START_QUEST effect
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 22:25:58 +02:00
93a5da3af7
feat(content): demo the state engine (generator unlocks/lights the cellar)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 22:01:57 +02:00
acaae3c4f7
feat: switchable items apply effects when turned on
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:59:46 +02:00
ab008ee562
feat: NPC reactions gated by conditions, applying effects
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:57:23 +02:00
9d23cb01b7
feat: conditional NPC dialogue
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:55:15 +02:00
8cb2b360e6
feat: state-dependent room descriptions (LookCommand resolution)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:52:57 +02:00
e3b80736dd
feat: condition-locked exits (+ room/dialogue state plumbing)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:52:06 +02:00
c339d13244
feat(loader): ConditionDto/EffectDto with toModel mapping
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:47:11 +02:00
bf10f11438
feat(game): world-state engine (GameState, Condition/Effect, evaluator/applier)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:46:29 +02:00
8b1232b2fc
fix(io): auto-scale GUI text with window size, consistent with the map
...
Body text/HUD font now derives from a window-relative auto-scale (starting
at uiScale, growing as the window grows) and is re-applied on resize, so the
text tracks the window like the map does. Ctrl +/- zoom still multiplies on
top of both. Removes the resize hiccup where only the map reacted.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:26:09 +02:00
5fb2446373
fix(io): fit the GUI map to the side panel; re-fit on resize
...
MapPanel now scales the map to fit the side panel (min over width/height),
with the Ctrl +/- zoom as a multiplier on top, so it no longer overflows
and scrolls at normal zoom. The map re-fits whenever the window/side panel
is resized; side panel grows a little more (28%, max 460px) before capping.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:21:27 +02:00
aff1768808
fix(io): scale the GUI map with HiDPI factor and live zoom
...
MapPanel had fixed pixel sizes and an 11pt font, so it ignored uiScale and
the Ctrl +/- zoom. It now multiplies all dimensions, strokes and the label
font by a scale set from uiScale x zoom in SwingIO.applyFonts().
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:14:31 +02:00
b182b09070
feat(io): adaptive ASCII map width; document map command, mark sub-project done
...
AsciiMap sizes room boxes to the longest visible name (capped) so names
like 'Dark Hallway' are no longer truncated; connector centering follows.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:09:08 +02:00
8243d5dfc5
feat(io): GUI MapPanel (Graphics2D) in the side panel; drop exits text
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:06:48 +02:00
dd0b13fbd8
feat(game): push map to the IO each turn (GUI live update)
...
Game now derives the MapView from the world each turn; GameTest gains a
real World (the per-turn map push needs it).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:04:14 +02:00
7605b724b6
feat(io,command): map command + GameIO setMap/showMap, console ASCII
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:02:17 +02:00
a846297abe
feat(io): AsciiMap console renderer for MapView
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 21:00:35 +02:00
cda18a75cd
feat(map): MapLayout BFS grid layout with fog of war
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 20:59:52 +02:00
820c17aea9
feat(io): MapView model (CellState, RoomCell, Connection, MapView)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 20:58:58 +02:00
da2e90faec
feat(model): track visited rooms on Player for the map
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 20:58:21 +02:00
f91d525fd0
fix(io): responsive side-panel width (ratio of window, clamped min/max)
...
Side panel (map slot) now sizes to ~25% of window width, clamped to
[160, 320] scaled px, recomputed on resize — instead of a fixed width.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 20:29:51 +02:00
94ce5ab2f7
fix(io): scale GUI fonts for HiDPI + live zoom (Ctrl +/-/0)
...
Java Swing does not reliably pick up desktop display scaling on every
Linux session (tiny text on HiDPI laptops). Detect the display scale from
the default GraphicsConfiguration transform (falling back to screen DPI)
and multiply all font sizes by it, plus the window size. Add live zoom via
Ctrl +/-/0 as a guaranteed manual override.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 20:25:04 +02:00
42330d9376
feat(io): welcome banner for game start
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 20:22:59 +02:00
d25f9f4504
feat(io): SwingIO 4-region layout, JTextPane styling, bundled font loader
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 20:21:23 +02:00
c27d719452
feat(game): publish HUD (location, gold, turn) each loop iteration
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 20:19:40 +02:00
d033a878db
refactor(command): LookCommand emits semantic RoomView
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 20:18:50 +02:00
d31b583871
feat(io): ConsoleIO ANSI + box-drawing renderer with colour/glyph modes
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 20:18:18 +02:00
95ed54eb25
feat(io): make print(StyledText) the GameIO primitive; keep suite green
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 20:16:55 +02:00
f2b243afb5
feat(io): RoomView/Hud views and default Renderings
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 20:15:06 +02:00
32ece84a85
feat(io): semantic styled-text model (Style, Span, StyledText)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 20:14:22 +02:00
3225599412
semesterprojekt: finalize 1.0 deliverable (run profiles, dungeon room, README)
...
- pom.xml: exec-maven-plugin run profiles (@run console, @gui Swing)
- rooms.yaml: add dungeon room reachable south of the kitchen
- README.md: project overview, build/run/play instructions
- .gitignore: ignore brainstorming companion dir (.superpowers/)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-05-31 19:39:42 +02:00
83643a192f
semesterprojekt: implement full text adventure (phases 1-7)
...
Walking skeleton through Swing GUI: YAML-driven world (4 rooms,
4 items, 1 NPC), HashMap command dispatch with parser, three-tier
item hierarchy (readable / switchable / plain), and end-to-end
NPC give/receive flow. 67 tests green.
2026-05-25 21:37:59 +02:00