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

    インターフェイス CardDropEffect

    札を落としたら何が起きるか、の答え1件(落とし先そのものはCardDragControllerのCardDrop)。 画面は、宣言された組み合わせと枠へ入れる操作を区別しない ——どちらも名前と時間を吹き出しに出し、実行するだけ(CardInteraction.md 2節)。答えが返ることは 「起きる」を意味しない——離しても何も起きない落とし先も、断る理由を告げるためにこの形で返る (enabledがfalse、同2.1節)。

    実行できるかと、できない理由の持ち方はCardActionと同じ。 ボタンで押せない操作も、重ねても 起きない組み合わせも、宣言が書いた1行(14.6節のreason)を同じ形で画面へ渡す。

    interface CardDropEffect {
        description: string | undefined;
        enabled: boolean;
        execute: () => void;
        maxCount: number;
        minutes: number;
        movedIds: readonly number[];
        name: string | undefined;
        reason: string | undefined;
    }

    階層 (一覧を見る)

    インデックス
    description: string | undefined

    説明文。localeに書かれていなければundefined。

    enabled: boolean

    今この操作の要件(14節)を満たしているか。falseなら落としても何も起きない。

    execute: () => void

    実行する。ワールドを変えるだけで、画面への反映は呼び出し側の責務。

    maxCount: number

    まとめて起こせる最大数。ドラッグ中に何枚ついてくるかを決めるのに使う(CardDragController)。 これを問うのは枚数が決まる前なので、返るのは「今の枚数で起きること」ではなく上限そのもの。

    minutes: number

    起こすのにかかるゲーム内時間(分)。時間を消費しないものは0。

    movedIds: readonly number[]

    動く個体のID(先頭が指の掴んでいたもの)。画面の移動アニメーション(MotionContext.released)が これを追う——ワールドが動かすものと画面が飛ばすものを食い違わせないため。

    name: string | undefined

    吹き出しに出す名前。名前も時間も宣言していない枠ではundefined——ただ位置が変わるだけの移動に 説明は要らない。

    reason: string | undefined

    満たしていない要件が宣言している理由の文言(14.6節)。宣言が無ければundefined。