保護 読み取り専用effects非公開 読み取り専用registrationsそのうち寄与として登録される効果を、契機になる関係ごとに仕分けたもの。契機を受け取らない効果まで 回さないため——役の登録は手番が実行されるたびに起き(WorldObject.joinInteraction)、持続効果を 多く持つ型ほど空振りが積もる。
非公開 読み取り専用transfersそのうちtick毎に走る輸送(登録では効かないので、走らせる側が別に持つ)。
宣言されている持続効果を宣言順に挙げる。1件ずつを別々に扱う相手だけが呼ぶ——宣言ごとに絞り込む・ 1件につき1つの書き出しを作る・宣言があるかを見る、といったもの。一式をまとめて読むならreadByを呼ぶ。
このオブジェクトが宣言する輸送(8.4節の transfer)を1 tick分走らせる。
宣言順にそのまま適用し、互いの結果を見る(activeの命令と同じ、9節)。だから同じ値から出す 輸送を並べても在庫が二重に動くことはなく、直列に繋いだ輸送の緩衝は速度の差が作る (上流を速くすれば、その差が中間に溜まる。8.4.1節)。
走らせている最中にownerの型が変わったら、そこで打ち切る(9.9.1節)。輸送はrangeイベントを 起こすので、その先でbecomeが走りうる。
すべての効果が持つ影響の辺を書き出す(PassiveEffect.collectInfluences)。役は宣言元の今の参加から 解く——登録の後も参加に追随するのと同じ出どころ(RegisteredPassiveEffect)。
この一式が宣言していることを、宣言順にすべて読み上げさせる(PassiveReader参照)。
一式をまるごと読む相手はこちらを呼ぶ。 宣言を1件ずつ取り出して読ませる形にすると、読み手の 数だけ同じ繰り返しが書き写される。
childがowner(親)に付く/離れる契機を、target=childの効果へ伝える。
相手がownerから一意に辿れる関係が変わった契機を、その関係を宣言している効果へ伝える (PropertyPassiveEffect.setRelationRegistered参照。childだけは相手が定まらずsetChildRegisteredが持つ)。
1つの ObjectDef が宣言する持続効果(8節)の一式。役は宣言元の今の参加から解く(PassiveEffects)。
受け取った契機は、それを宣言している効果だけへ配る。 どの契機を受け取るかは効果自身が名乗り (PassiveEffect.relationRegistration)、こちらは名乗りのとおりに仕分けて持つ。だから契機を伝える 側は、宣言のtargetもkindも見ずに「こうなった」とだけ言えばよい。
別なのは、輸送を走らせる口(applyTickTransfers)だけ。 輸送は寄与として登録できない(8.4節) のでこちらが走らせるしかなく、走らせる時点(積分の後、WorldObject.tick)が意味を持つ。そこだけは 「こうなった」ではなく「いま走らせろ」を受け、呼ぶ側がその時点を知っている。