ハースライクDCGの構造研究のための実装実験#3

カードのプレイ

操作に必要な情報から分けると二種類に分類できる。

  • 盤面に空きないとプレイできないもの

  • 盤面に空きがなくてもプレイできるもの

盤面に空きないとプレイできないもの

ライバルズで言えばユニットや建物。
特にライバルズでは配置する位置もプレイ時に指定することになる。
必要な情報は「使用するカード」「配置する位置」「召喚時効果の選択情報」
召喚時効果がなければその位置にユニットを配置するだけだが、多岐にわたる召喚時効果によって実装がややっこしくなる。
可能なら、召喚時効果の発動の可否を視覚的に判別しやすくする。

盤面に空きがなくてもプレイできるもの

ライバルズで言えば特技や武器や英雄
まあ武器や英雄は固定スロットへの強制配置という点でどちらかというとユニット寄りとも言える。武器には「召喚時」を持つものもあるし。
特技はユニットの配置がない召喚時効果という見方も出来なくもない。
必要な情報は「使用するカード」「特技効果の選択情報」
特技効果は内部条件で発動できない場合はプレイ不可能とするべき。

プレイ時効果の選択情報

召喚時効果と特技効果をあわせてプレイ時効果と呼ぶことにする。
プレイ時効果に必要な選択情報を考える

  • 選択なし

  • 盤面の選択

  • 手札の選択

  • 提示された選択肢から選択

  • 選択をキャンセルしプレイ前に戻る

  • キャンセルできない選択

選択なし

全体効果か、対象が固定かランダムか。
プレイが確定した瞬間に操作が送信される。

盤面の選択

盤面の選択が発生する。
ライバルズの場合は、ユニットの選択やリーダーを含む選択、敵のみ味方のみ両方可能、対象に条件が付いたり、ユニットではなく列を対象としたり、かなりややっこしいことになる。
特技で発動する場合は、カードドラッグ操作でそのまま盤面選択できる。
カードをプレイする前に対象の情報が必要になる。

手札の選択

盤面と同じく、カードをプレイする前に対象の情報が必要になる。
クライアント的には複数枚選択や選択対象条件などで、通常の手札操作とは別の操作が要求される。

提示された選択肢から選択

ライバルズでは画面中央に複数のカードで示される選択肢を選ぶ。
選択肢に使用するカード情報を事前に指定しておく必要がある。

選択をキャンセルしプレイ前に戻る

プレイ時に同時に選択情報を送るものは、プレイが確定していない場合、選択をキャンセルしてプレイする前に戻す。
キャンセル可能な選択はプレイ前に選択肢が確定していた方が都合がいい。選択条件をクライアント側で判定する必要がなくなる。

キャンセルできない選択

プレイ確定後に選択が発生することもあるが、それはキャンセルできない。
効果中のキャンセル不可能な選択は、サーバ処理において「選択待ち受け状態」という特別な状態で対応する。
ターン開始時やターン終了時にも選択が発生する可能性があり、これに対応しようとすると結構面倒になった。

ユニットのアタックはまた次回

だいぶ長くなったので記事を分ける。

この記事が気に入ったらサポートをしてみませんか?