WSN追加案: クーポン分岐で複数の称号を指定する

Issue #448 resolved
k4nagatsuki repo owner created an issue

元となった議論はissue #432#444にあります。

クーポン分岐で、複数種類の称号の所有判定を行う事を考えます。例えば、

  • _子供_万能型_下賤の出の「全て」を所有しているか判定
  • _大人_若者_老人の「どれか1つ」を所有しているか判定

といった感じに、AND条件またはOR条件を選択できるとよりよいでしょう。

この機能では、新しい事ができるようになるわけではありませんが、種族や職業などのクーポンが多様化している現在では、あればかなり便利と思われます。

結局イベントツリーを組めばなんでもできるので、1つのコンテント内でANDとORの両方を組み合わせる事までは、ひとまず考えなくてよいでしょう。

Comments (11)

  1. req

    今までのクーポン分岐は複数の称号をパラメータに持てないし、 入力できないと思うのですが、 何か新しいコンテントを作ったり、ダイアログを作ったりとかするんですか?

  2. k4nagatsuki reporter

    新規に作るよりは、今までのクーポン分岐の拡張でよいのではないかと思っています。

    インタフェースとしては、称号の入力欄をキーコードのように多段にするだけです。以前の形式との兼ね合いは、ちょっと考えものですが(クラシックとWSN形式では異なる表示にした方がよさそうか?)。

  3. req

    また一部でも手伝えればと思ったのですが、今1つイメージできません。

    GUIはシングルなクーポン入力から、キーコードのところの複数入力と、 あとAND-OR切替にラジオボタン2個付けるとかでいいと思うのですが、 (クラシックとWsnで表示切替している例とかもあったらお教えください。)

    コンテントID変えずに クラシックとWsnの処理分岐とか出来るんですか? 何か参考例があったらお教えください。

  4. 暗黒 騎士

    (XEditorの方はソースを見てるわけじゃないので間違っていたら恐縮ですが) クラシックとWsnで表示切替している例はキーコード所持分岐がそうだと思います。

  5. req

    ありがとうございます。キーコード所持分岐のcwpy側とxeditor側と見てみましたが、 これは大変そうですね。

    自分はクーポン多岐分岐を真似してランダム多岐分岐 #449 やった(厳密にいうと、Wsn.2の新規コンテントの追加方法などはBRANCH_MULTICOLUMNを、

    xeditorのダイアログ表示なし、コンテントのパラメータなしのようなところはHIDE_PARTYを、

    cw/content.py の書き方はBRANCH_RANDOMの書き方も参考にして推測して書いてみたらそれなりに動いたので長月さんにレビューしてもらったというだけ)なので、

    未だGUIもxeditor、cwpyの内部処理もよく分かっていません。cwxeditorのXMLもどうやって 字句解析・パラメータ設定、入出力などしてるのかとかすら分かっていません。Tokenってコメントあったから その辺でやってるのかなあとしか。

    キーコード所持分岐(xeditor:commit a9901ef:、cwpy:pull request #1644)


    あと、d言語もpythonもコメントが多く入っていると理解がしやすくて助かります。

    長月さんが、実装追加する際にでもいいので、他の人が入りやすそうなところにでも コメント多く追加してあると助かります。

  6. k4nagatsuki reporter

    Wsn.2のページを更新していただいてありがとうございます。


    CWPyは元々の開発者の方が丁寧だったのでコメントも充実していますが、cwxeditorはちょっとどころでなく不親切なところがありますね。GUIが絡まない部分(cwx直下)は以前頑張ってコメントをつけて回ったのですが、GUI部分には手が回っていません。そのうちやる必要があるとは思っているのですが。

    cwxeditorで使用しているDWTは、Javaで有名なGUIツールキットSWTのD言語版です。ですから、UI部分を読む時は、SWTのドキュメントがほとんどそのまま使えます。

    処理を見てもよく分からない部分は、個別に質問していただければ、答えられると思います。

  7. req

    基本いい加減なので、自分のしたことに関してはどんどん修正・チェックしていただけると助かります。

    cwx/editor/gui/dwt/eventdialog.d みていて、 java を少しやったときに setLayout とか listener とか出てきたなあと懐かしくなっています。


    得点のある CouponView を拡張して得点のない CouponView を追加して利用するように作らねばならず、難航しております。それ以外の点でも悩ましいです。

    ぼちぼちやりますのでゆっくりお待ちいただければと思います。

  8. req

    coupon.png

    ここまでは来ましたが、クーポン欄の仕切り線が消えないで、選択範囲が全体に広がらないでいます。

  9. k4nagatsuki reporter

    この欄の正体はSWTのTableです。Tableには1つまたは複数の列(TableColumn)があり、得点付きのクーポンビューは名前と得点の列を持っています。得点欄が不必要な場合は、2つ目のTableColumnを作らなければよいです。

    ちなみに名前欄の列は独自のFullTableColumnというものを使っており、これはTableColumnTable本体のサイズに合わせて幅が変わるという機能を持たせたものです。

  10. k4nagatsuki reporter

    pull request #1773

    上記Pull Requestをマージしました。

    いただいてからマージまでに随分時間がかかってしまって申し訳ありません。エディタの側共々実装していただいて大いに助かりました。ありがとうございます。

    対応するエディタはcwxeditorの20170226版以降です。

  11. Log in to comment