Add tank stage 6: mirrors and a raid on the enemy base

Five stages of holding the line; this one lets you attack. An enemy
eagle sits at the top behind steel, and a player shell that reaches it
ends the stage at once for 1000 - enemy shells cannot touch it, so the
stage cannot clear itself.

Reaching it needs the mirrors. A shell entering one turns 90 degrees,
capped at five turns and stepped one cell past the mirror so it cannot
re-enter the same one. The eagle's only opening is a bullet-only shaft
at column 8, walled in steel and fed by a "/" mirror below it, so only
a shot travelling right along row 6 banks up into it; shooting left or
from underneath deflects away. Mirrors block tanks and cannot be broken,
and they block the enemies' line of sight so they do not waste shots.

The clear/win paths were one block inside afterKill; they are now
clearStage(bonus, note) so the snipe and the last kill share them.

Checked headlessly: the snipe lands and pays 1000, the shaft saw 0 tank
samples against 639 bullet samples, 6 idle runs left the enemy eagle
standing, and closing r11's centre brought the base through 6 of 10
idle runs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-11 17:35:09 +09:00
co-authored by Claude Opus 5
parent 353197fae7
commit a9bd956c99
3 changed files with 149 additions and 28 deletions
+15 -4
View File
@@ -30,13 +30,14 @@
| ↳ | `/tank.html#3` | 3단계 강철 회랑 | 8대 (동시 4) | 강철 31칸, 기지 외곽 2중 + 좁은 진입로 |
| ↳ | `/tank.html#4` | 4단계 참호 | 10대 (동시 4) | **물길** + **보급 상자**(시간 정지 / 기지 강화) |
| ↳ | `/tank.html#5` | 5단계 최후 방어선 | 12대 (동시 5) | **숲**(은폐) + **화력 강화** 상자 + **지휘 탱크** |
| ↳ | `/tank.html#6` | 6단계 거울 요새 | 12대 (동시 4) | **반사판**(포탄 90° 꺾임) + **적 본진 습격** |
방향키 이동, 스페이스 발사. 한 단계를 돌파하면 다음 단계로 이어지고, 점수와 남은 탱크를
그대로 가져간다. **단계를 거치지 않고 바로 들어가는 방법**은 셋이다.
- 왼쪽 탭의 `휴게실 > 탱크게임` 아래 단계 칩 (셸 주소로는 `/#tank2` … `/#tank5`)
- 게임 화면 오른쪽 아래의 단계 버튼, 또는 `1` ~ `5` 키
- 주소 직접 입력 — `/tank.html#5`, `/tank.html?stage=5` (범위를 벗어난 값은 1단계)
- 왼쪽 탭의 `휴게실 > 탱크게임` 아래 단계 칩 (셸 주소로는 `/#tank2` … `/#tank6`)
- 게임 화면 오른쪽 아래의 단계 버튼, 또는 `1` ~ `6` 키
- 주소 직접 입력 — `/tank.html#6`, `/tank.html?stage=6` (범위를 벗어난 값은 1단계)
## 특수 요소
@@ -52,10 +53,20 @@
| ↳ 시간 정지 | 적 전원이 3초간 멈춘다 (포탄은 계속 난다) | 4, 5 |
| ↳ 기지 강화 | 기지 외곽 5칸이 10초간 강철이 된다. 끝나면 벽돌로 돌아오며 부서졌던 칸도 메워진다 | 4, 5 |
| ↳ 화력 강화 | 10초간 동시 3발 + 탄속 1.35배 | 5 |
| 지휘 탱크 | 편성 마지막에 나오는 대장. 체력 3, 빠르고 연사가 잦다. 격파 300점 | 5 |
| 지휘 탱크 | 편성 마지막에 나오는 대장. 체력 3, 빠르고 연사가 잦다. 격파 300점 | 5, 6 |
| 반사판 `/` `\` | 포탄이 맞으면 90° 꺾인다. 탱크는 못 지나가고 부술 수도 없다. 한 포탄이 5번까지 꺾인다 | 6 |
| 적 본진 `X` | 위쪽 강철 안에 갇힌 적 독수리. **아군 포탄으로 부수면 적을 다 잡지 않아도 즉시 클리어**(+1000점). 적 포탄은 제 본진을 부수지 못한다 | 6 |
효과가 걸린 동안에는 화면 왼쪽 위에 남은 시간이 배지로 표시된다.
### 6단계 저격 경로
적 본진 `(8,2)` 위·좌·우는 강철이고, 아래 `(8,3)`~`(8,5)` 는 좌우가 강철로 막힌
**탄도 전용 갱도**다. 그 아래 `(8,6)` 에 반사판 `/` 이 있어, 6행을 따라 **오른쪽으로**
쏜 포탄만 위로 꺾여 갱도를 타고 본진에 닿는다. 왼쪽으로 쏘면 아래로, 아래에서 위로
쏘면 오른쪽으로 꺾이므로 각을 맞춰야 한다. 아군 출발점 `(5,13)` 에서 6열을 따라 위로
올라가면 사격 위치가 나온다.
낱말풀이와 공유하는 자산이 없는 단독 페이지다. 캔버스와 WebAudio 만 쓰므로 자산 해시
스탬프(아래 캐시 항목)의 영향도 받지 않는다. iframe 안에서는 **화면을 한 번 클릭해
포커스를 준 뒤** 키를 눌러야 한다. 셸이 iframe 의 조각(`#2`)만 바꿀 때는 문서가 다시