WSN追加案: キーコード所持判定分岐で選択カードを変更する

Issue #446 resolved
Former user created an issue

匿名にて失礼します。 今までなかったけどこんなのがあったらいいなあと軽い気持ちで新機能追加の提案をしてみます。

通常、「キーコード所持判定分岐」ではキーコードを持つカードの有無判定。 該当するキーコードを持つカードをPCが所持している場合は、所有者PCを選択状態しています。 その際に該当するキーコードを持つカードそのものを同時に選択状態にすることはできないでしょうか。

私のイメージとしては、 「キーコード所持判定分岐」で荷物袋やPCの所有している特定のカードを選択状態にする。 [メッセージコンテント] の [イメージ付きメッセージ] のイメージ [使用カード] で、選択中のカード画像を表示。 特殊文字:選択カード名 [#C] で選択中のカード名を表示 というような挙動を考えています。

過去のシナリオとの相互性を考えるのでしたら、「キーコード所持判定分岐」のUIとして、 [該当するカードを選択状態にする] というようなチェックボックス(デフォルトでチェックなし) を設けるのがが良さそうかなあとぼんやりと思っています

PCの持つカードを表示するには実際にそのカードを使用する必要がありましたが、 シナリオ側からも特定のカード名やカードグラフィックを表示できたらなと思い提案させていただきました。

ご検討宜しくお願いいたします。

Comments (7)

  1. k4nagatsuki repo owner

    ご提案ありがとうございます。

    選択カードという概念は、CWの構造に無理なく組み込めるアイデアですね。というより、仰っている「使用カード」や#Cを実現するために、すでにその概念は存在しているので、あとはそれを変更できるようにすればいいだけです。

    その変更の仕組にキーコード所持判定を用いるというのも、自然な事だと思います。

    実をいうとWSN追加案の一覧には同じアイデアがすでにあります(「既存コンテントを拡張する追加案」の項)。が、具体的な議論から実装へつなげるには個別のIssueを立てる必要があるので、今回のご提案でとてもよい機会をいただけました。

    「キーコード所持判定分岐」のUIとして、 [該当するカードを選択状態にする] というようなチェックボックス(デフォルトでチェックなし) を設ける

    私もこのやり方が一番妥当だと思います。具体的な挙動としては、カードを所持順に検索して、一番最初に適合したものが選択状態になる、という事になるでしょう。

    仕様の衝突のおそれもあまりないと思います。もし他の仕様がランダム選択を選んだとしても、オプションを1つ増やせば対応できます。

    他に意見をお持ちの方はぜひ仰ってください。

  2. k4nagatsuki repo owner

    試験実装をしようと思ってコードを調べたのですが、ちょっとした課題が見つかりました。

    まず、選択中のカードがイベント内で削除された場合にはどうするべきかという問題があります。

    CWの現状を抜きにして普通に考えると、対象消去などと同じく選択状態が解除されるべきです。消されたカードが戻ってくる事は無いので、それに対してあれこれできると思わぬ問題が起きるかもしれません。

    しかしCWの「使用中カード」はそうなっていません。それはイベントが終了するまで残留します。そうなると、削除で選択解除されるという挙動は不整合を招きます。

    例えば:

    1. 使用中カードの選択状態を別カードで上書き
    2. 別カードを削除する
    3. 選択カードはなしになる?

    これに対して:

    1. 使用中カードが選択状態の時、それを削除する
    2. 選択カードは残る??

    これらは挙動が矛盾しています。

    こうした事を考えると、当初の考えと異なり、「使用中カード」と「選択カード」は結局別概念でなければならないという事になってきます。上記の話は、諸々の問題に目をつぶって選択カードが削除されても選択解除されないようにすればいいだけの話ですが、以下のような事柄もあります。

    • 使用中のカードは使用したキャラクターの前に表示されますが、これはイベント中に選択カードへ差し替えるわけにはいきません。
    • 使用時イベント内では、パッケージ呼び出しなどは、使用したカードとプレイ中のシナリオのシナリオ名と作者名が一致しない限りは実行されませんが、これを選択カードで上書きするとイベントが壊れます。
    • 使用時イベント内で素材や召喚獣を参照する時は、当然、選択カードではなく使用中のカードの参照先を参照しなければなりません。

    というわけで、選択カードを実装しようとすると、以下のような特徴を持つ新しい概念にならざるを得ません。

    1. 使用中カードが発生すると同時に、そのカードは選択カードになる。
    2. 選択カードはイベントで変更できる。
    3. #Cや話者「カード」は、選択カードの名前やイメージを表示する。それ以外の使用中カードが絡む動作には、選択カードは絡まない。
    4. 選択カードが削除されると選択は解除されるか、もしくはされない。
      • 解除される場合、#Cや話者「カード」は「選択カードが無い時には使用中カードを参照する」という仕様にしないとCWの挙動と矛盾する。

    この4.の部分の仕様を決めてしまう必要があります。そして、決めてしまうとなると、仕様衝突のリスクが出てきます。

    問題がこの4.だけならカード喪失コンテントに「選択を解除するかしないか」のオプションをつける事で回避できそうですが、見えていない問題があるかもしれません。少し慎重に検討する必要がありそうです。


    個人的に、この選択カードという概念は、カード使用回数の回復・カード効果の強制発生・カード1枚に対するキーコード所持判定などの色々な場面で使い出があるので、リスクをおしてでもぜひ追加したいところです。将来回避困難な問題が出ないか検討して、本当に回避不能なものが無いようであれば実装したいです。

    そうした問題を思いついた方はご指摘ください。

  3. Iraka.T

    選択カードの変更は、各種カード所持分岐でも行えるべきだと思います。各種カード所持分岐がカードワース本来のやり方ですし、キーコード所持分岐のみで行われるというのは、少々いびつかと。

    現状キーコードでしか判定できない、アクションカードというものもありますけれども。

  4. k4nagatsuki repo owner

    仰る通りだと思います。選択カードの変更はいくつかの方法があるべきです。

    とはいえ、手始めとしてまずキーコード分岐で使えるようにするのは悪い考えではないと思います。

  5. k4nagatsuki repo owner
    • pull request #2118
    • pull request #2119

    「選択カード」の概念を導入し、キーコード所持分岐で変更できるようにしました。

    今はまだ変更して名前やイメージを表示したりできるだけですが、この新概念には様々な応用が考えられます。特殊技能・アイテム・召喚獣を選択する事によって実現可能となるアイデアを思いついた方は提案していただければと思います。

    ただし、このIssueはキーコード所持分岐の課題なので、別個のアイデアについて提案・議論をはじめる時は別にIssueを立ててください。


    以下にイベントフローの中で選択カードがどのように変化するかを記します。今の実装は仮のものです。今後都合次第で変更する必要が出てくるかもしれません。

    • イベントの切れ目: 選択メンバの挙動に倣い、選択は解除される。
    • カードを削除した時: 対象消去に倣い、選択は解除される。
    • 所持者を隠蔽した時: 選択メンバが解除されない事に倣い、解除されない。

    選択が解除された時、使用カードが存在していれば、選択カードは使用カードに戻ります。

  6. Log in to comment