"wave" とは、規定のタイミングで壁開けまたは赤玉生成を行う指示の列を意味する。
wave 内の単位時間を「wave 内時間」と呼ぶ。wave 内時間はターン管理用短周期カウンタ (mod 8) が 0 になるたびにインクリメントされ、結果がオーバーフローして 0 になったら次の wave へ進む。
ゲーム内には 40 個の wave が存在し、最後の wave が終了したら最初に戻る。なお、重複を除くと wave は全 28 種類ある。
参考: 全 wave を可視化した動画 (movie および関連スクリプト)
wave データは以下の要素の配列 (0xFF
終端):
型 | 内容 |
---|---|
u8 | 操作を行うべき wave 内時間 |
WaveOp | 操作 |
WaveOp
は先頭バイトが 0x80
ならば赤玉生成 (1 バイト), 0..=51
ならば壁開け (3 バイト)。壁開け命令の構造は以下の通り:
型 | 内容 |
---|---|
u8 | 対象の壁インデックス。 |
u8 | 穴パターン指定。 基本的に (値)+1 を穴パターンとして設定するが、横壁の場合のみ値が 0 ならば乱数を用いて穴パターン 1..=5 のいずれかを設定する。 |
u8 | 初期タイマー値。 |