抽象登録の契機を受け取る関係(8.1節の target の起点)と、それを受け取る自分自身。寄与として
登録されない効果(transfer)ではundefined。仕分ける側(PassiveEffects)が種別で振り分けずに
済むよう、効果自身が名乗る。
tick毎に走る輸送(8.4節)ならそれ自身。寄与として登録される効果(modify/add)ではundefined。 走らせる側(ObjectPassiveEffects)が種別で振り分けずに済むよう、効果自身が名乗る。
抽象collectこの効果が持つ影響の辺(InfluenceEdge)を書き出す。declarerは宣言したオブジェクトで、 対象も原因もそこから辿る。どの一覧へ入るかは書き込み先が決める(PropertyInfluences)。
役(11.5節)を答える文脈は受け取る。 物のdefの宣言なら宣言元の今の参加から解けるが、 操作が宣言した持続効果(11.7節)の役は、宣言したその操作の関係が答えるもので、宣言元の 参加からは辿り直せない(WorldSession.whileInteractionPassives)——登録と同じ分かれ方 (setRelationRegistered/setRegisteredInContext)。どちらから解くかは、呼ぶ一式の型が決める (PassiveEffects)。
この1 tickで自分が動かす先を、操作の稼ぎを数える対象として名乗る (InteractionPassiveEffects.countTickMovementsAsGains)。
既定は何もしない。 呼ばれるのは操作が宣言した一式だけで(11.7節)、そこに書けるのは
実体値へ積むaddと、実体値を動かさないmodifyしかない——輸送は書けない(8.4.1節)。
抽象readこの効果が何を宣言しているかを読み上げる(PassiveReader参照)。抽象なのは取りこぼしを防ぐため ——既定を持たせると、動詞を1つ足したときに読み手が黙って何も受け取らなくなる。
1つの ObjectDef が宣言する、1つの持続効果(8節)。ObjectDef.passives の要素。
動詞が名乗るのは可逆性だけで、一度きりかtick毎かは置き場所(active/passives)が決める(8.4節)。 そのため passives に書ける動詞は、可逆な
modify、不可逆なadd、そして輸送のtransfer。addとtransferは active と同じ語のまま、tick毎に効く側になる。効き方は分かれる。
modify/addは対象プロパティへ寄与として登録され(PropertyPassiveEffect)、transferは登録を持たず宣言したオブジェクトのtickで走る(TransferPassiveEffect)——2つのプロパティを 同時に動かす操作は、どちらか一方への寄与としては表せないため。