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

    クラス Card

    フィールド・ハンド・ポートレイトに共通のカード。 大きなアイコンを中央に敷き、名前を左上へ重ねる(CardView.md 5節の絵文字代用)。

    階層

    • Container
      • Card
    インデックス
    • ここで組み立てるのは殻——重なりの順序と、中身を入れる器だけ。何がどう見えるかは applyContent(setContent と共通)が決める。初期表示も差し替えも同じ経路を通るので、 反映の書き忘れは「後から古くなる」ではなく「最初から出ない」として現れる。

      パラメータ

      戻り値 Card

    _content: CardContent
    alertBlink: Tween | undefined
    alertOutline: Graphics

    警戒を知らせる輪郭と、その明滅。枠とは別のGraphicsに持つ——枠は差し替えのたびに引き直すので、 同じ図形へ混ぜると濃さのtweenが引き直しのたびに途切れる。

    artLayer: Container
    backgroundLayer: Container

    中身を入れ替える器。重なりの順序を殻の側で固定しておくことで、中身(絵・背景・端の操作エリア)が 出入りしても順序が崩れない。

    cardHeight: number
    cardWidth: number

    カードの実寸。指が運ぶ札やドロップ先の枠を同じ大きさで描くために公開する。

    cookingBar: ProgressBar
    cookingText: Text
    cookingVeil: Graphics

    加熱されているカードにかぶせる覆いと、その上の残り時間・進み具合(CardContent.cooking)。 どれも常に揃って現れ、揃って消える(showCooking)。

    edgeLayer: Container
    edgeRepeat: HoldRepeat

    端を押し続けている間の繰り返し(addEdge参照)と、既に1枚でも送ったかどうか。

    edgeRepeated: boolean = false
    emptied: boolean = false

    0枚になったとき、帰ってくる場所の印を残す枠か(setPresence)。

    frame: Graphics

    枠そのもの。種別で色が変わり、下の桟の高さが中身で変わるので、1枚絵ではなく図形として 差し替えのたびに引き直す(drawFrame参照)。

    gaugeBars: Map<string, ProgressBar> = ...

    バー(CardContent.gauges)。本数も両端の見せ方も映すものによって変わるので、決め打ちで 作らず鍵で引く。一度作ったバーは、そのカードが別のものを映すようになっても捨てない——同じものへ 戻ったときに変化の帯が途切れないようにするため。

    hold: Hold

    押している間だけ出すもの(CardContent.hold)の計時。ボタンの長押しと同じ仕組み(Hold)。

    inProgressVeil: Graphics

    製作中オブジェクトにかぶせる青(CardContent.inProgress)。それ以外のカードでは隠れる。

    mark: Text

    状態を表す絵文字の印(CardContent.mark)。持たないカードでは空文字で隠れる。

    metrics: ScreenMetrics

    中身を入れ直すときに要る採寸。

    multiplyLayer: Container

    絵の上へ乗算で重なる絵(objectArtのMULTIPLY_SUFFIX)。持たない絵では空のまま。

    nameText: Text

    カードの名前。中身が入れ替われば同じインスタンスのままでも変わる(showName参照)。

    overlay: Text

    状態を言う、絵の上の覆い(CardContent.overlay)。持たないカードでは空文字で隠れる。

    overlayText: string = ''

    今出している覆いの文言。変わった時だけ現れ方(showOverlay)を掛け直す。

    overlayTween: Tween | undefined

    大きく出てから上部へ落ち着くまでの動き。走っている間は置き場所を触らない。

    present: readonly number[] | undefined

    この枠に今在るインスタンス(setPresence)。言われるまでは、映しているもの全部が在るとして扱う (undefined)。枚数はここからの導出値——数を別に持つと、宙に在る札との引き算がずれる。

    railTextObject: Text

    桟へ出す1行の文字(CardContent.railText)。持たないカードでは空文字で隠れる。

    shownArt: string | undefined

    今その器に出しているもの。同じなら作り直さないための控え(showArt・showEdge参照)。

    shownBackground: string | undefined
    shownEdgeDirections: string = ''
    shownGauges: Map<string, CardGauge> = ...

    今のgaugeBarsが塗りの色を引くための、映しているバーの内容(鍵で引く。gaugeBarFor参照)。

    shownIcon: string | undefined
    stackBadge: Container

    スタック数の表示。個数は差し替えのたびに変わるので、作り直さず書き換える。

    stackCount: Text
    • get holdsCard(): boolean

      この枠に今その札が在るか。0枚の枠に在るのは札ではなく、帰ってくる場所を示す印なので、押しても 掴んでも何も起きない(CardInteraction.md 6.2節)。帰り着けばまた押せる——押せるかどうかを決める のは今在る札だけで、内容の側は操作を持ったまま待つ。

      入力そのものは切らない。掴んで運んでいる間も元の札は0枚になるので、切ると運んでいる指の操作まで 届かなくなる。

      識別子を持たない札(ピン留めの現在地・空の受け皿の顔)は常に在る。

      戻り値 boolean

    • get identity(): readonly number[]

      この札が映しているインスタンス(CardContent.identity)。今そこに在るぶんだけを訊きたいときは presentIds——手に在るぶん・運ばれている最中のぶんは、映してはいてもそこには居ない。

      戻り値 readonly number[]

    • get presentIds(): readonly number[]

      この枠に今在るインスタンス。まだ何も言われていなければ、映しているもの全部。

      setPresenceは渡された並びを写して持つ——渡した側が後から自分の配列を書き換えても、札が 名乗る顔ぶれは動かない。渡すのは持っている並びの実体で、写しではない——言われた後は setPresenceが写した並び、言われる前は映している内容のidentityそのもの。どちらも並びごと 替わる(setPresence・setContent)ので、読んだ配列は替わる前の顔ぶれを持ち続ける。

      戻り値 readonly number[]

    • get rect(): Rect

      札が今いる矩形。飛び立つ先・砂埃を立てる場所・吹き出しの位置決めに使う。

      戻り値 Rect

    • 宙に在った札がこの枠に帰り着いた(合流)。IDセットの和になり、枚数はそこから導かれる。

      パラメータ

      • ids: readonly number[]

      戻り値 void

    • 隣のレーンへ移すための端の操作エリア。押している間だけ半透明のオーバーレイと矢印を出し、 どちら向きの操作なのかを示す。

      押し続けると、指を離さないまま1枚目が動き、そのあとは間隔を詰めながら送り続ける (HoldRepeat)。短く押して離した場合だけ、離した時点で1枚動かす—— 押し続けて既に動き出しているなら、離したぶんをもう1枚足すことにはならない。

      ヒット領域はカード本体の後に足す。重なった対象のうち描画順が最前面の1つだけが入力を受け取る (Phaserの入力の既定、topOnly)ため、これで端はカード全体の操作もドラッグも横取りする。透明でも描画される Rectangleを使うのは、Zoneが描画リストへ載らず前後関係が決まらないため。

      パラメータ

      戻り値 void

    • 桟へ積むバーを1本作る。縦の位置以外はどれも同じなので、寸法はここで決め切り、どこへ積むかだけを 差し替えのたびに与える(showBars参照)。

      カードのバーは明滅させない(steady)——明滅は「手を止めろ」という催促で、それを言うのは 札の縁(同 3節)とステータスエリアの役目だから(CardView.md 8節)。

      バーの枠線は経路の上へ太さの半分ずつ広がるので、その分だけ内側へ寄せて、枠線の外周が窓の縁と 重なるようにする(窓の縁の線も同じ寄せ方をしている。drawFrame参照)。

      パラメータ

      戻り値 ProgressBar

    • 出どころの無い札が、その場で現れる。instantのときは飛びも浮かびもせず、既に在ったものとして 出す(画面を作り直した直後)。

      パラメータ

      • instant: boolean

      戻り値 void

    • 今の内容を殻へ流し込む。構築時(showChange: false)と差し替え時の両方が通る唯一の経路。

      showChangeは「この反映を、変化として見せるか」。現れたばかりのバーに変化の帯を出すと、見えて いなかった間の増減が今この瞬間の変化として出てしまう(StatusBar.show と同じ理由)。

      パラメータ

      戻り値 void

    • 繰り返しを止める。edgeRepeatedは離したときの判断に使うので、ここでは触らない。

      戻り値 void

    • スタック数を囲む丸。数字はスタックが増減しても位置が動かないよう、丸の中心へ固定する。 絵の右上の角からわざと少しはみ出させる(カードに載せ切るより、札束の厚みとして目に付くため)。

      パラメータ

      • width: number
      • height: number

      戻り値 Container

    • 枠を引く。絵の上に乗るので、窓からはみ出した絵はここで隠れる(CardView.md 1節 カードの枠)。

      桟の高さと色が差し替えで変わるため、1枚絵にはできず毎回引き直す。意匠が入る段になったら 9patch(nineSlice.ts)へ移す。

      パラメータ

      戻り値 void

    • タイトルの板。窓の上端に乗せる(cardFrameColors)。帯を左から順に、上端を右へずらした斜めの筋 として塗るので、1本なら平らな板、複数なら斜めに光の走る金属面になる(金の板、CardView.md 2.2節)。ここは「渡された色を左から塗る」だけで、何本来るのかも何の枠なのかも知らない。

      各帯は自分の右端までではなく板の右端まで塗り、次の帯が上から重ねて消す。 板をまず1本目の色で 塗ってから重ねるので、角の丸みを描くのはこの下地だけで済む。

      筋は左右を角の半径(WINDOW_RADIUS)のぶん内側で止める。 丸めた角から筋が四角く飛び出さない ようにするためで、止めた分は下地——すなわち1本目の色——が出る。帯の並びは両端が同じ色なので (theme.ts)、右端も左端と同じ色で埋まる。

      傾きは板の高さに対する横のずれ(PLATE_SHEEN_SLANT)で決めるので、札の倍率が変わっても筋の角度は 変わらない(板の角と角を結ぶと、棚や子ウィンドウで角度が変わってしまう)。

      パラメータ

      戻り値 void

    • 道であることを示す矢印。桟の中央へ置く(左下へ寄せると、道であることが記号として読めない)。 紙の色の塗りに枠の色の縁にして、桟の色が種別で変わっても形が残るようにする。

      パラメータ

      戻り値 void

    • そのバー(無ければ作る)。鍵で引くので、同じものを映している間は差し替えをまたいでも同じ バーが使われ、変化の帯(ProgressBar.setRatio)が途切れない。

      塗りの色も増減の向きも、映している内容(shownGauges)から毎回引き直す——中身は入れ替わる (飲み干した水筒へ茶を注ぐ)し、同じプロパティでも向きは定義側の変更で変わりうるため。

      パラメータ

      戻り値 ProgressBar

    • Containerのdisplay originによるヒット領域のずれを避ける理由はButtonと同じ(サイズを設定しない)。

      パラメータ

      • width: number
      • height: number

      戻り値 void

    • 押下中は紙の縁を黒枠でなぞる。枠は紙の内側へ収める(paperStroke参照)。

      押している間だけ出すもの(CardContent.hold)の計時もここで持つ。出ている間の押下はタップに ならない——ボタンの長押し(Button)と同じで、説明を読むために押したことが操作にならないため。

      パラメータ

      • width: number
      • height: number

      戻り値 void

    • 桟へ積む状態バーを、上からの順に並べる。値を持たないバーはここで隠して並びから外すので、 桟の高さも積む位置も「今いくつ出ているか」だけで決まる。

      パラメータ

      戻り値 readonly RailBar[]

    • 同じインスタンスを映し続けるカードの表示内容を差し替える。同じ個体のまま型が変われば (become、9.9節)名前も絵も変わるため、構築時の値をそのまま持ち続けてよいものは無いという 前提で全部を貼り直す。

      パラメータ

      戻り値 void

    • この枠に今在るインスタンスを言う(CardInteraction.md 2節・5節)。手に在るぶんも運ばれている 最中のぶんもまだここには居ないので、呼ぶ側はそれを除いた集合を渡す。数字を書き換えるのか、 札そのものを出さないのかはここが決める。

      0枚の枠に札は出ない。emptiedの枠だけは薄い印を残す——そこに在るのは札ではなく、持ち出した 札が帰ってくる場所を示す印なので、数字のバッジも出ない。

      破棄済みの札に言っても何も起きない。宙に在る札の着地や次の差し替えは破棄より後に来うるので、 まだ生きているかを確かめるのは呼ぶ側ではなくここの仕事(lifetime.isAlive)。

      パラメータ

      • ids: readonly number[]
      • emptied: boolean

      戻り値 void

    • 出ている文言を、収まる位置・倍率へ落ち着かせる。現れた瞬間だけは大きく出してから寄せる。

      パラメータ

      • appeared: boolean
      • inner: Rect
      • margin: number

      戻り値 void

    • 放っておいてよくない状態にあるカードの輪郭を、赤く明滅させる(CardView.md 3節)。

      域の深さでは分けない。 輪郭が言うのは「この札を放っておくな」の1つだけで、どれだけ気を 立てているかはカードを開けば読める。域ごとに色を変えると、バーの黄(危険域)・赤(致命的域)の 規約と混ざる。

      パラメータ

      戻り値 void

    • 絵と、その下に敷く地。絵があれば枠に重ね、無いあいだは絵文字で代用する (絵は少しずつ用意されるため)。同じものを出し続ける間は作り直さない。

      製作中オブジェクトには地を敷かない。青の覆いが読めるだけの無地の地が要るので、 「何の上に在るか」を表す景色より覆いの方を優先する(CardView.md 10節)。

      パラメータ

      戻り値 void

    • 状態のバーを桟へ積む。枠線は札の縁と同じ色にする(種別で変わるので、差し替えのたびに渡す)。

      パラメータ

      • bars: readonly RailBar[]
      • rail: RailMetrics
      • colors: CardFrameColors
      • showChange: boolean
      • hold: boolean

      戻り値 void

    • 加熱が進んでいることを、絵の上の覆いと、残り時間・進み具合で言う(CardView.md 15節)。 進んでいないカードではどれも消える。

      残り時間とバーは窓の中央へ縦に積む。桟の高さで窓の下端が動くので、置き場所は印(showMark)と 同じく差し替えのたびに決め直す。入り切らない文字は幅に合わせて縮める(showOverlayと同じ)。

      パラメータ

      • content: CardContent
      • rail: RailMetrics
      • showChange: boolean

      戻り値 void

    • 端の操作エリア。送れる先があるかどうかで付いたり外れたりする(ShownCards.cardsOf)ので、 向きの組み合わせが変わったときだけ中身を入れ直す。押したときに何が起きるかは実行時に _contentから読む。

      戻り値 void

    • 状態を言う覆い(CardView.md 9.1節)。立った瞬間だけ大きく出し、そのあと上部へ収まって残る。 出っぱなしで大きいと絵を潰し、初めから小さいと気付けない。

      文言が変わらない差し替えでは掛け直さない(動いている最中に何度も差し替わるため)。ただし収まる 位置は毎回決め直す——桟の高さで窓の下端が動くので、バーが増えれば置き場所も動く。

      入り切らない文言は縮めて収める。 言語によって長さが大きく違う(「気絶」と unconscious)ので、 幅からその場で倍率を決める。

      パラメータ

      戻り値 void

    • 桟へ出す1行の文字(CardView.md 16節)。色は名前と同じく枠から引く——同じ桟に並ぶバーの 枠線と揃い、種別が変わっても桟の中で浮かない。入り切らない文字は幅に合わせて縮める。

      パラメータ

      戻り値 void

    • 並びの中の新しい位置へ滑る(既にそこに居れば何もしない)。

      パラメータ

      • x: number

      戻り値 void

    • 絵文字で代用中の絵が後から届いたら、自分で貼り替える。道のカードは行き先の土地の絵の ロード完了(LocationArtLoader)を待たずに現れうるため。

      パラメータ

      • texture: string

      戻り値 void