コンテンツにスキップ

実行モデル

状態: 設計中

関連: 接続規則 / ストリームモデル / 伝播強度とコスト / 属性と状態反応

スキル実行は盤面評価と戦闘生成に分ける。

  1. 盤面評価でストリームを変換し、終端ごとのSpawn Requestを作る。
  2. 戦闘生成でCountを展開し、個別のProjectile EntityやArea Entityを生成する。

通常の盤面評価では途中のオーグメントごとに戦闘エンティティを生成しない。Event経路だけは、戦闘中の条件成立後に追加評価する。

ID 範囲 用途
CastId 1回の手動発動と全派生 マナ共有、ダメージ元、合流条件
PulseId 1回の盤面伝播 循環の周回、Event再開、同期グループ
StreamId 1本の独立ストリーム 分岐後の経路追跡
SpawnRequestId 1つの終端結果 Count展開とデバッグ

独立分岐は新しいStreamIdを作り、CastIdとPulseIdを引き継ぐ。斉射はStreamIdを変えずCountだけを変更する。

評価は次の順序で進める。

  1. コア出力をキューへ追加する。
  2. 伝播段階が小さい入力から取り出す。
  3. 同じ段階ではセル座標、入力辺、StreamIdの順に並べる。
  4. 変換型を実行し、出力を次の段階へ追加する。
  5. 合流型の入力は同期バッファへ送る。
  6. 終端可能な未接続出力をSpawn Requestへ確定する。
  7. キューと同期バッファが空になるまで続ける。

固定順序により、共有マナが不足した場合も同じ盤面から同じ結果を得る。

合流型はCastId、PulseId、同期キーが一致する入力だけを組にする。同期キーは分岐元が発行し、同じ分岐から派生した枝を識別する。

  • 必須ポートごとに先頭の入力を1本ずつ使う。
  • 余分な入力は次の組として待機する。
  • 評価終了時に揃わなかった入力は不発。
  • 不発入力を自動的に終端へ迂回させない。
  • Eventをまたぐ入力は別PulseIdになり、通常の即時入力とは合流しない。

循環内の合流では、周回番号を同期キーへ含める。異なる周回の入力を混ぜない。

Event 発生条件 保存する情報
Hit 生成物が有効対象へ直撃 対象、位置、進行方向、CastId
Expire 寿命、射程、上書きで終了 位置、進行方向、CastId
Kill Hit、DamageOverTime、Reactionで対象を撃破 対象、位置、主な発生元のCastId

Eventオーグメントを通過したストリームは、対応条件を戦闘エンティティへ登録する。条件成立時に新しいPulseIdを作り、Event出力から盤面評価を再開する。

一つのエンティティが同時に複数条件を満たす場合の順序はHit、Kill、Expire。各Event経路は独立にマナと強度を検査する。

到達可能な閉路では、再入力のたびにPulseIdの周回番号を増やす。

  • 周回前に必要強度と実行時マナを確認する。
  • 支払えない場合はその入力だけ停止する。
  • 分岐した他経路の確定済みSpawn Requestは取り消さない。
  • 予測可能な有限循環だけを装備できる。
  • 処理回数と生成数の安全上限は、計算不具合への最後の停止手段とする。

各停止結果は理由コードを持つ。

コード 意味
TypeMismatch 入出力型が一致しない
MissingInput 合流に必要な入力がない
InsufficientPropagation 伝播強度不足
InsufficientMana 実行時マナ不足
NonTerminatingCycle 停止しない循環
SpawnLimitExceeded 生成上限超過
UnreachableTile コアから到達不能

試射履歴では、CastIdから全StreamId、通過セル、成分変化、Spawn Request、停止理由を追跡できる。