ストリームモデル
状態: 設計中
関連: ヘキサグリッド接続規則 / 実行モデル / 伝播強度とコスト
ストリームとは
Section titled “ストリームとは”ストリームは、スキルコアからオーグメントへ渡される論理データ。盤面を評価する途中では戦闘エンティティを生成せず、終端へ到達した内容をSpawn Requestへ変換する。
この区別により、斉射のCountを一括で加工しながら、戦闘中の衝突、寿命、追尾対象は個別エンティティとして扱える。
共通フィールド
Section titled “共通フィールド”| フィールド | 内容 |
|---|---|
| ValueType | Projectile、Area、Event、Power |
| CastId | 手動発動と全派生を識別するID |
| PulseId | 循環やイベントによる処理世代を識別するID |
| Count | 同じ定義から生成する個数 |
| Propagation | 残り伝播強度 |
| Element | Fire、Ice、Lightning、Arcaneなど |
| Damage | 1個あたりの基礎ダメージ |
| CritChance | Hit一回ごとのクリティカル率 |
| CritMultiplier | クリティカル時のダメージ倍率 |
| CanCrit | このストリームから生じるHitがクリティカル可能か |
| Traits | Homing、Pierce、Returnなどの追加特性 |
| ManaLedger | 発動中に共有するマナ予約と支払い状況 |
| Path | 通過したコア、セル、入力辺、出力辺 |
型固有の値は別成分として持つ。Projectileは速度と寿命、Areaは半径と持続時間、Eventは発生条件と対象情報、Powerは供給できる強度と属性を持つ。
Spawn Request
Section titled “Spawn Request”終端へ到達したProjectileストリームは、次のような生成要求になる。
SpawnRequest Type: Projectile Count: 3 Element: Fire Damage: 20 CritChance: 0.05 CritMultiplier: 1.5 Speed: 10 Traits: [Homing] SourceCast: 1042 SourcePath: core.fireball → count.volley → projectile.homing戦闘側はCountを展開し、3個のProjectile Entityを生成する。各エンティティは別々の位置、進行方向、衝突、寿命、追尾対象を持てる。
独立分岐とCount
Section titled “独立分岐とCount”独立分岐はストリームを複数作る。分岐後のPath、Traits、Propagationは別々に変化する。
斉射はストリームを増やさずCountを変更する。後続オーグメントは一度評価され、その結果をCount内の全個体へ適用する。
| 構築 | ストリーム数 | 終端Count | 後続変換 |
|---|---|---|---|
| ファイアーボール→斉射3→追尾 | 1 | 3 | 3個すべて追尾 |
| ファイアーボール→三叉 | 3 | 各1 | 枝ごとに変更可能 |
| 斉射3→三叉均等分配 | 最大3 | 合計3 | 個数を枝へ配分 |
変換型は入力ストリームを直接変更せず、変更後の出力を新しい値として作る。
- CastIdとManaLedgerは派生先で共有する。
- Pathは出力ごとに追加する。
- Count、Propagation、Damage、クリティカル値はオーグメントの規則に従う。
- Traitsは特記がなければ引き継ぐ。
- Eventへ変換するときは、発生に必要な情報だけを予約へ保存する。
合流型は複数ストリームから新しい1ストリームを作る。
- ValueTypeの組み合わせはオーグメントごとに定義する。
- CastIdが異なる入力は合流できない。
- Pathは全入力経路と合流セルを保持する。
- Count、Damage、Propagationの合成式を省略しない。
- Traitsが競合した場合は、不成立または個別の解決規則を使う。
- Countは0以上の整数。
- Propagationが0以下のストリームは次のタイルを起動できない。
- 同じSpawn Request内の個体は、生成時点まで同じ成分を持つ。
- 独立したストリームは、合流型を通らない限り自動で一つにならない。
- マナ予算は分岐で複製しない。
- すべての生成物から元のCastIdとPathを追跡できる。