実行モデル
状態: 設計中
関連: 接続規則 / ストリームモデル / 伝播強度とコスト / 属性と状態反応
実行の二段階
Section titled “実行の二段階”スキル実行は盤面評価と戦闘生成に分ける。
- 盤面評価でストリームを変換し、終端ごとのSpawn Requestを作る。
- 戦闘生成でCountを展開し、個別のProjectile EntityやArea Entityを生成する。
通常の盤面評価では途中のオーグメントごとに戦闘エンティティを生成しない。Event経路だけは、戦闘中の条件成立後に追加評価する。
| ID | 範囲 | 用途 |
|---|---|---|
| CastId | 1回の手動発動と全派生 | マナ共有、ダメージ元、合流条件 |
| PulseId | 1回の盤面伝播 | 循環の周回、Event再開、同期グループ |
| StreamId | 1本の独立ストリーム | 分岐後の経路追跡 |
| SpawnRequestId | 1つの終端結果 | Count展開とデバッグ |
独立分岐は新しいStreamIdを作り、CastIdとPulseIdを引き継ぐ。斉射はStreamIdを変えずCountだけを変更する。
評価は次の順序で進める。
- コア出力をキューへ追加する。
- 伝播段階が小さい入力から取り出す。
- 同じ段階ではセル座標、入力辺、StreamIdの順に並べる。
- 変換型を実行し、出力を次の段階へ追加する。
- 合流型の入力は同期バッファへ送る。
- 終端可能な未接続出力をSpawn Requestへ確定する。
- キューと同期バッファが空になるまで続ける。
固定順序により、共有マナが不足した場合も同じ盤面から同じ結果を得る。
合流型はCastId、PulseId、同期キーが一致する入力だけを組にする。同期キーは分岐元が発行し、同じ分岐から派生した枝を識別する。
- 必須ポートごとに先頭の入力を1本ずつ使う。
- 余分な入力は次の組として待機する。
- 評価終了時に揃わなかった入力は不発。
- 不発入力を自動的に終端へ迂回させない。
- Eventをまたぐ入力は別PulseIdになり、通常の即時入力とは合流しない。
循環内の合流では、周回番号を同期キーへ含める。異なる周回の入力を混ぜない。
戦闘イベント
Section titled “戦闘イベント”| 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、停止理由を追跡できる。