ADR-0038 ペン強化を作用列の差し替えとして表す
| 状態 | accepted |
| 決定日 | 2026-09-11 |
| 区分 | ゲームデザイン |
背景
ADR-0025 は「書かれている面に書き込む → その面が強化される。各面につき1回まで」と決めたが、「強化される」が具体的に何を意味するかは定義していなかった。ADR-0030 以降、効果は状態変数への作用の列として表現されるようになったため、この空白を作用の語彙で埋める必要がある。
Issue #24 の作用の範囲を確定させる本タスク(#50)で、ペン強化の中身を決定した。判断材料は #46 で実装済みの作用エンジンが「何を表現できるか」である — 作用列はすでに任意の長さ・任意の作用の並びを表現できるため、強化を「数値の書き換え」に限定する理由が無い。
決定
書かれている面にペンを入れると、その面の作用列が、あらかじめ定義された別の作用列に丸ごと差し替わる。
- 差し替え後の列は面ごとに1つだけ定義され、プレイヤーは選べない
- 差し替え後の列は、使う前から見えている(ADR-0025 が白紙の面について定めた「何が書かれるか事前に見える」原則と同じ形)
- 各面につき1回まで(ADR-0025 を維持)
- 「強化の種類」という区分は作らない。 数値を上げるだけの差し替えも、新しい作用を追加する差し替えも、同じ「差し替え後の列の一例」であり、どちらであるかをページ定義やエンジンが区別する必要はない
- 差し替え後の列の強さの目安(仮値)は バランス#ページの作用 を参照
却下した案
| 案 | 却下理由 |
|---|---|
| 数値アップだけ | 差し替え後の列を、元の列と同じ作用を基準値だけ上げたものに限定する案。「防御 +8 → 防御 +8、1枚引く」のように作用を追加するページを設計できなくなる。作用エンジンはすでに任意の列を表現できるため、この制限に見合う理由が無い |
| 数値アップか作用の追加をページごとに1つ選べる | 「数値アップ」と「作用の追加」を区別する種別タグをページ定義に持たせる案。両者はエンジンから見れば同じ「作用列の差し替え」であり、種別による挙動の違いが無い。区別を持たせても、どちらのタグでも起きることは同じで、データ構造に意味のないフィールドが増えるだけになる |
影響
- 効果システム#ペン強化・ページカタログ の構成要素表・データの契約 に、差し替え後の作用列も定義データ側に持つことを反映する
core/effect/page_face.gdのpen_enhancement(現在は中身を持たないStringNameの仮置き)は、将来この決定に沿って「差し替え後の作用列」を保持する形に変わる必要がある。このコード変更は本タスクの範囲外であり、今後のページ定義タスクで扱う- ページ定義は、面ごとに「白紙時の作用列」と「ペン強化後の作用列」の2つを持つことになる