メインコンテンツまでスキップ

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つを持つことになる

関連​

  • ADR-0025 — 面という仕組みと「書かれている面への書き込み=強化」という決定
  • ADR-0030 — 効果を状態変数への作用の列として定義した決定
  • ADR-0035 — 効果の入れ物を作用の列に一本化し、組み合わせに名前を付けないとする決定
  • ADR-0036 — 作用の文法の型表現