UnmappedIsland ソースリファレンス - v0.1.0
    検索インデックスを準備しています...

    クラス ModifyEffect

    条件が真の間だけ、都度導出される実効値に寄与する持続効果(可逆、8.3節)。実体値そのものは 書き換えない。PropertyValueのmodify用incomingへ登録され、PropertyValue.getEffectiveValueが走査する。

    階層 (一覧を見る)

    インデックス
    • get relationRegistration(): RelationRegistration

      登録の契機を受け取る関係(8.1節の target の起点)と、それを受け取る自分自身。寄与として 登録されない効果(transfer)ではundefined。仕分ける側(PassiveEffects)が種別で振り分けずに 済むよう、効果自身が名乗る。

      戻り値 RelationRegistration

    • get reversible(): boolean

      可逆な寄与(modify、8.3節)か。影響の一覧が記号の形をこれで選ぶ(PropertyInfluence)。

      戻り値 boolean

    • get tickTransfer(): TransferPassiveEffect | undefined

      tick毎に走る輸送(8.4節)ならそれ自身。寄与として登録される効果(modify/add)ではundefined。 走らせる側(ObjectPassiveEffects)が種別で振り分けずに済むよう、効果自身が名乗る。

      戻り値 TransferPassiveEffect | undefined

    • 実体値へ積む寄与(add)なら、動かす先を稼ぎの数え先として名乗る。可逆な寄与(modify)は 実体値を動かさないので名乗らない。

      相手もゲートの役もcontextから解く(setRegisteredInContextと同じ、登録先と同じ物になる)。 呼ばれるのは操作の宣言だけで、そこにchildは書けない(8.1節)ので、ゲートのselfはownerでよい。

      名乗るのは先だけで、量は言わない。 数えられるのはそのプロパティがこのtickで実際に動いた量 (PropertyValue.tick)で、同じtickの他の寄与も端のクランプも既に引かれている。

      相手がまだそのプロパティを持っていなくても名乗る。 このtickの積分の途中でbecomeが走れば、 新しい型にしか無いプロパティはそこで生える(9.9.1節)ので、持っているかを名乗りの条件にすると 生えたtickぶんだけが稼ぎから漏れる。

      今tick何も足さないなら名乗らない。 ゲートが閉じている効果の対象を数え先にすると、物が 自分で宣言した増減まで操作の稼ぎになる。

      パラメータ

      戻り値 void

    • この効果が何を宣言しているかを読み上げる(PassiveReader参照)。抽象なのは取りこぼしを防ぐため ——既定を持たせると、動詞を1つ足したときに読み手が黙って何も受け取らなくなる。

      パラメータ

      戻り値 void

    • contextで対象を解いて、この効果を相手へ登録/解除する。役の解決先を呼び出し側が持っているとき だけ呼ぶ——操作が宣言した持続効果(11.7節)の役は、宣言したその操作の関係が答えるもので、 宣言元が後から別の関係へ加わっても動かない(WorldSession.whileInteractionPassives)。

      憶えるのは登録先だけではない。 ゲート(8.2節)が見る役も同じ関係が答えるので、contextを 登録そのものへ持たせる(RegisteredPassiveEffect)。

      パラメータ

      戻り値 void

    • 対象(relationRegistrationで名乗った関係)の相手へ、この効果を登録/解除する。相手はowner自身から 解決するので、呼び出し側は相手を知らなくてよい。呼ばれるのは名乗った関係の契機だけ (仕分けはObjectPassiveEffectsが持つ)。

      ancestorは、ツリー構造が変わる前に解除・変わった後に登録という順序を呼び出し側 (WorldObject.setAncestorTargetsRegistered)が守る前提で、「今この瞬間の祖先」を毎回辿るだけで よく、前回の登録先を憶えない。

      操作の役(11.5節)も、ownerが今役を解く関係から辿れるので同じ経路に乗る。頼まれる契機は 関係を張った/外したときだけではない——関係の内側で型が変われば、宣言も登録先も入れ替わるので そこでも張り直す(頼む側はWorldObject.setRoleTargetsRegisteredの呼び手)。

      childは相手(どの子か)がownerから一意に辿れないため、ここでは扱わずsetChildRegisteredを使う。

      パラメータ

      戻り値 void