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

    クラス Shelf

    持ち帰ったアーティファクトの棚(docs/concept/GameEndings.md 6節)。

    周回をまたいで残る唯一のものなので、周回そのもの(セーブスロット)とは別の領域に置く。 死んでもスロットを消しても棚は消えない——消えるなら、棚は周回を終わらせる理由にならない。

    中身は識別子の集合で、同じ物を2度持ち帰っても枠は増えない(アーティファクトは全周回に共通する 有限の集合で、棚はその埋まり具合を映すもの)。

    保存先はコンストラクタで受け取る。ブラウザではlocalStorage、テストではメモリ上の実装を渡す (SaveSlots・Settingsと同じ)。

    インデックス
    • get contents(): readonly string[]

      棚に収まっているアーティファクトのobject_defの識別子(収めた順、重複なし)。

      戻り値 readonly string[]

    • 持ち帰った物を棚へ収める。既に在る物は増えないので、呼び出し側は重複を除かずに渡してよい。 実際に新しく収まった識別子を返す(何が増えたかを見せる側が、差分を数え直さずに済む)。

      パラメータ

      • names: readonly string[]

      戻り値 readonly string[]

    • 棚に収まっているもののうち、渡された型にあるぶん。

      今の定義で名前を引けない識別子は、並べないだけで消さない(SaveDataManagement.md 棚節) ——アセットパックの物を持ち帰った後にそのパックを外すと、棚には識別子だけが残る。数えるのも 並べるのもここが返す集合1つで済ませる。数と札を別々に数えると、外したパックのぶんだけ 「収めた数」が枠の数を超える。

      パラメータ

      • defNames: readonly string[]

      戻り値 ReadonlySet<string>