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

    インターフェイス RangeCycle

    tick毎に動く値がrangeの端へ届くまでの周期と、そこで起こること。

    repeatsなら端で値が戻って繰り返す(罠は4時間ごとに獲物を判定する)。destroysSelfなら端で 自分が消えるので、minutesはその型の寿命そのものになる。

    interface RangeCycle {
        destroysSelf: boolean;
        drivenBy: ObjectGlobalId | undefined;
        gatedBy: readonly (readonly TickDelta[])[];
        longestMinutes: number;
        minutes: number;
        propertyGlobalId: PropertyGlobalId;
        repeats: boolean;
        shortestMinutes: number;
        step: CraftingStep;
    }
    インデックス
    destroysSelf: boolean
    drivenBy: ObjectGlobalId | undefined

    外から与えられた増減で動いた周期なら、それを与える型(炉が焼く・傷が血を奪う)。

    gatedBy: readonly (readonly TickDelta[])[]

    端へ向かうのに要る、条件つきの増減(8.2節)の組み合わせ。 どれも成立していなければ向かわない。 逆は言わない——どれかが成立していても、遅くする増減が同時に成立していれば向かわないことは ある(その場合を見るのはminutesのほう)。

    それだけで向かえる最小のものしか入らない(leastCombinationsOf)ので、遅くするだけの増減も、 片方だけで足りるときの相方も残らない——周期を決めた組み合わせとは別物(issue #1433)。

    空の組み合わせ1つだけ([[]])なら、条件が1つも成立しなくても向かう。押し手のある周期 (drivenBy)は必ずこの形——totalsWithDriverは、押されている間ずっと成立していると言い切れない 条件つきを数から落とし、言い切れるもの(刻んだ芋の上乗せ)は押し手が傍に在ることの言い換えなので 条件として並べない。どちらにせよ要るのは押し手が傍に在ることだけで、それはdrivenByが持つ。

    longestMinutes: number

    生成時のロール(6.2節)が端から遠い側に出た場合の時間(分)。ロールを持たない値では minutesと等しい。

    条件つきの幅(minutes〜shortestMinutes)とは別の軸なので、1つの幅へ畳まない——条件が重なった のか重く出たのかが読めなくなる。値が戻って繰り返す周期では初期値が効かないので、ここでも minutesと等しい。

    minutes: number

    端へ届くまでの時間(分)。同時に成立しうる条件(8.2節)の組み合わせのうち、端へ最も遅く 届くものの値——罠の耐久は地面にある間ずっと減るが、獲物を抱えている間だけの上乗せは 常時ではない。生成時のロール(6.2節)は端へ近い側に出た場合で見る。

    propertyGlobalId: PropertyGlobalId
    repeats: boolean
    shortestMinutes: number

    同じ組み合わせのうち、端へ最も速く届くものの時間(分)。組み合わせが1通りならminutesと等しい。

    この周期を1つの工程として見たもの。何も生まない周期では出力が空になる。