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

    インターフェイス ExternalTickDelta

    外から与えられるtick毎の増減。焼くのも失血も、自分では動かない値を隣の物が動かす——炉が 火にかけた物の加熱を進め、刺さった傷が持ち主の血を奪う。誰が誰の隣に居るかは型だけでは決まらない ので、文脈を知っている側(収支レポート)が組み立てて渡す。

    押している間どういう場面に居るか(PushingSituation)も一緒に名乗る。押される側の条件つきの 増減のうち、押されている間ずっと成立しているものは、押し手の場面と照らして初めて見分けられる。

    interface ExternalTickDelta {
        amounts: readonly number[];
        propertyGlobalId: PropertyGlobalId;
        source: ObjectDef;
        sourceIsAt: "parent" | "child";
        sourceStagesByCase: readonly (readonly SelfStageRequirement[])[];
        ticksUntilStart: number;
        ticksUntilStop: number | undefined;
    }

    階層 (一覧を見る)

    インデックス
    amounts: readonly number[]

    その押し手がtick毎に取りうる量。同時に成立しうる組み合わせごとに1つ(tickAmountsOfの possible と同じ見方)で、同じ値は畳んである。炉は火力の段で1・3・5を取る。

    幅(最も遅い・最も速い)へ畳まずに並びのまま持つ。 足し合わせた押し方は向きが揃うとは 限らず(常時引く分と条件つきで足す分)、畳むと押される向きのどちらかが落ちる。どちらの端の イベントへ向かうかで選び直すのは、受け取る側(paceTowards)の仕事。

    propertyGlobalId: PropertyGlobalId
    source: ObjectDef

    押している物の型。要る段が値の並びの上でどこに在るかは、この型だけが答えられる。

    sourceIsAt: "parent" | "child"

    押される側から見た押し手の居場所。炉は親(子を焼く)、刺さった傷は子(持ち主の血を奪う)。

    sourceStagesByCase: readonly (readonly SelfStageRequirement[])[]

    押し方1つにつき1組の、押している間ずっと押し手自身が居ると分かっている段。炉の火力のように 同時には効かない押し方が並ぶので、押されている間ずっと成り立つと言えるのは、どの組でも成り立つ ことだけ。段で縛られていない押し方では空の組になる。

    ticksUntilStart: number

    その増減が効き始めるまでのtick数。段に入って初めて効く増減——傷が宿主の菌を押し上げるのは infection が festering へ届いてから——では、そこまでの時間が周期の前に丸ごと要る。最初のtickから 効くなら0。

    ticksUntilStop: number | undefined

    その増減が止まるまでのtick数(ticksUntilStart と同じく、生まれた時点から数える)。 止まらない増減(薪をくべ続ける炉)ではundefined。

    動かせる総量ではなく長さで持つ。 総量は「長さ×その速さ」でしかないので、速さが幅を持った 途端に、どの速さで割り戻すのかが決まらなくなる——毒の残る間だけ効く棘は刺さりの深さで速さが 変わっても、止まるのは同じ毒が尽きたときで、長さのほうは1つに決まる。