Files
TheTree_mock/docs/plans/original-completion-2026-10-02/execution/p07-01/IMPLEMENTATION_NOTES.md
T

5.3 KiB
Raw Blame History

P07-01 実装の記録(実 Opus の実装担当、2026-10-24)

  • 仕様: 同じフォルダの SPEC.md(固定の commit 4654789、Runner の spec_sha256 2626d70b…7956)。決定 A13(PROVENANCE.json)。
  • この記録は、仕様の §4・§5 を実装した場所と、実装担当として選んだ詳細、開示を書く。人の新しい承認は主張しない。

1. 実装した場所

  • scripts/environment/natural_weather_policy.gd(新しい): A13 の値(確率の境 60・85・95、続く時間 360・240・120 分、開始の 29 個の 30 分刻み、雨の来客 50%、雨の延長の上限 240 分、霧のマナ ×1.2・性欲 ×1.5)と、1日1回の抽選の手順。天候の仕組みは確率を持たない方針のままにするため分けた。
  • scripts/environment/weather_timeline.gd(VERSION 2): 自然天候の状態(最後に抽選した日、その日の抽選)と雨の延長の記録を持つ。予定の規則(同じ分の別の種類・過去の時刻・上限)は変えない。その日の抽選の当てはめ(apply_draw)は、その日の 06:00 にだけ、1回だけ受け付ける。予定と重なれば SCHEDULE_CONFLICT で拒む。VERSION 1 の保存は、過去の抽選をさかのぼらない形で読む。
  • autoload/simulation_runtime.gd:
    • 系列 weather を足した。
    • 06:00 の抽選と出来事 WEATHER_FORECAST_DRAWN。新しいゲームが 06:00 に始まる時は、初期化の最後に開始の日を抽選する。
    • 来客の受付の境界は、雨の割合(arrival_percent)を渡す。
    • 帰りの判定は、雨の延長(_hold_guest_for_rain)を通す。
    • マナの境界は、霧の産出を渡す。
    • 客の生理の文脈に mana_fog を足した。
    • 予報を含む get_weather_report。
    • 復元では、延長の記録と客の予定を照合し、旧保存の系列を world_seed から作る。
  • scripts/operations/operations_coordinator.gd: 来客の計画を2段にした(行ごとの受け入れと持ち越しを決め、雨なら合計を floor(×50/100) まで後ろの行から減らし、減らした分は持ち越さない)。雨でない時の計画と客の ID は今と同じ。
  • scripts/mana/mana_reserve_cycle.gd: 境界の世界樹の産出を引数で受ける(既定 20、霧 24)。炉の受け入れの判定と plan も霧の量(24・120)を受ける。保存の照合は産出 20 と 24 だけを許す。上限 300(A06)は変えない。
  • scripts/guest/guest_service.gd: 文脈の真偽値 mana_fog を検査し、成人確認済みの客の正の性欲の増分 n を n + floor(n / 2)(= floor(1.5n))にする。
  • scenes/main/main.gd: 上部の天候の名前の表示はそのままにし、隣に予報(WeatherForecastLabel、「次: 晴れ 12:00」「次: 予定なし」)を足した。天候の名前の案内(tooltip)に効果の案内を出す。

2. 実装担当として選んだ詳細(SPEC §2 のとおり人の承認ではない)

  • 抽選の乱数: 0〜99 の整数を1つ、晴れ以外は開始の枠(0〜28)を1つ引く。
  • 日の数え方: 絶対分 ÷ 1440 の切り捨て。06:00 ちょうどは、まだ抽選していない日として数える(新しいゲームの開始の日のため)。旧保存の移行では、06:00 を過ぎていればその日は抽選済みとして数える。
  • 当てはめに失敗した抽選(手で置いた予定と同じ分になる時など)は、系列を進めたまま applied: false と理由を出来事に残し、その日の予定は変えない。次の日の 06:00 には抽選する。
  • 雨の延長は、帰りの判定(客が「決める」状態の時)で行う。延長の後の時刻には天候に関わらず今の規則で帰る。帰った客の記録は、天候の境界で片づける。
  • 霧の性欲は、その分の正の増分だけに掛ける(減少と、成人確認の無い客は変えない)。

3. 開示

  • マナ炉の施設と産出の経路は今のゲームに無い(P06 の未決定)。霧の炉の ×1.2(120)は、マナの貯蔵の規則(受け入れの判定と plan)にだけ入り、通常の営業で観測できるのは世界樹の産出(20→24)だけ。
  • 今の客の種類で性欲が増えるのは、成人確認済みの客(adventurer など)に Runtime が渡す昼 3・夜 7 だけなので、霧の効果は昼 4・夜 10 として表れる。
  • 予報はその日の予定だけを出す(翌日は 06:00 に決まる)。UI は今の部品のままで、完成の見た目ではない。Windows の実機は後。
  • 性能の調整はしていない。横断条件の性能の回帰は、最終の S の全 roster の既存の性能の suite の結果で見る。
  • 新しい出来事 WEATHER_FORECAST_DRAWN が毎日 1 件増える。出来事の番号は、その分だけ後ろへずれる。

4. 確かめ(局所。正式の証拠ではない)

  • 既存の天候の 3 本(期待値の変更は EXPECTATION_CHANGES.json)、関係する既存の 8 本、新しい suite(88 checks)、再開の書き手(28 checks)と読み手(47 checks、別の process)が、scratch の stage で全て合格した。正式の証拠は、提出の S の native の収集、登録の validation、最終の S の全 roster。