Water in stage 4 stops tanks; forest is its opposite - tanks and shells
both pass, but the canopy draws over the tanks so anything sitting in it
is hidden. It needs no collision change at all, only a draw pass after
the tanks.
The enemy roster ends on a commander: 3 hits to kill, faster, fires more
often, worth 300. Kinds carry a worth so the score follows the roster
rather than a flat 100. Crates here can also grant 10s of 3-shot, faster
fire, and five enemies hold the field at once.
Enemy pips shrank to 9px so twelve of them still leave the label room.
Checked headlessly: stage 5 keeps 125 reachable cells and leaves the base
standing in 6 of 10 idle runs; the power badge fires from a crate; and
with the roster reordered in memory the commander pays 300 against 100
for the rest.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Stages so far only varied the walls. Give stage 4 rules of its own.
Water blocks tanks but not shells, so the centre of the map is crossed
only at the fords while both sides can still shoot across it. It is one
predicate - rectBlocked is used for tank movement alone, so adding WATER
there leaves bullets untouched.
Supply crates appear on a timer and grant a 3s enemy freeze or 10s of
steel around the base; the shovel effect puts brick back when it lapses,
so broken walls are repaired. Active effects show a countdown badge.
Stages carry a specials line: shown on the start overlay and in the HUD
on entry, and previewed on the preceding stage's clear screen.
Checked headlessly: over 247k sampled tank positions none sat on water
while 7591 bullet frames did, crates were taken 8 times in 8 runs, and
stage 4 leaves the base standing in 7 of 10 idle runs with 98 cells the
player can reach without firing.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Two stages were not much of a ladder. Add STAGE 3 · 강철 회랑: 31 steel
cells the shells cannot pass, a double brick cap over the base and two
narrow funnels into it, 8 enemies with 4 on the field.
Getting to a later stage meant clearing the earlier ones. Read the stage
from the URL (#3 or ?stage=3) at load and on hashchange, so the shell's
nav chips and a plain link both land where they say. The stage buttons
and key hints are built from STAGES, so a new stage needs no UI edit.
Simulated 10 idle and 10 random-bot runs per stage: stage 3 leaves the
base standing in 6 of 10 idle runs, and its 144 reachable cells keep the
player out of a sealed pocket - an earlier layout had only 8.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The crossword shell only carried literature tabs. Add a second nav
section, 휴게실, holding a standalone canvas tank game: two stages
(fortress with 4 enemies, maze with 6), arrow keys to move, space to
fire, WebAudio for the shots and explosions.
The page shares nothing with the crossword engine, so the Dockerfile's
asset-hash stamp leaves it alone. Inside the shell's iframe a keydown
only lands once the frame has focus, so the canvas takes a tabindex and
the click handler focuses it; the start overlay says to click first.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>