WSN追加案: クーポン分岐で複数の称号を指定する
クーポン分岐で、複数種類の称号の所有判定を行う事を考えます。例えば、
_子供
・_万能型
・_下賤の出
の「全て」を所有しているか判定_大人
・_若者
・_老人
の「どれか1つ」を所有しているか判定
といった感じに、AND条件またはOR条件を選択できるとよりよいでしょう。
この機能では、新しい事ができるようになるわけではありませんが、種族や職業などのクーポンが多様化している現在では、あればかなり便利と思われます。
結局イベントツリーを組めばなんでもできるので、1つのコンテント内でANDとORの両方を組み合わせる事までは、ひとまず考えなくてよいでしょう。
Comments (11)
-
-
reporter 新規に作るよりは、今までのクーポン分岐の拡張でよいのではないかと思っています。
インタフェースとしては、称号の入力欄をキーコードのように多段にするだけです。以前の形式との兼ね合いは、ちょっと考えものですが(クラシックとWSN形式では異なる表示にした方がよさそうか?)。
-
また一部でも手伝えればと思ったのですが、今1つイメージできません。
GUIはシングルなクーポン入力から、キーコードのところの複数入力と、 あとAND-OR切替にラジオボタン2個付けるとかでいいと思うのですが、 (クラシックとWsnで表示切替している例とかもあったらお教えください。)
コンテントID変えずに クラシックとWsnの処理分岐とか出来るんですか? 何か参考例があったらお教えください。
-
(XEditorの方はソースを見てるわけじゃないので間違っていたら恐縮ですが) クラシックとWsnで表示切替している例はキーコード所持分岐がそうだと思います。
-
ありがとうございます。キーコード所持分岐の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もコメントが多く入っていると理解がしやすくて助かります。
長月さんが、実装追加する際にでもいいので、他の人が入りやすそうなところにでも コメント多く追加してあると助かります。
-
reporter Wsn.2のページを更新していただいてありがとうございます。
CWPyは元々の開発者の方が丁寧だったのでコメントも充実していますが、cwxeditorはちょっとどころでなく不親切なところがありますね。GUIが絡まない部分(cwx直下)は以前頑張ってコメントをつけて回ったのですが、GUI部分には手が回っていません。そのうちやる必要があるとは思っているのですが。
cwxeditorで使用しているDWTは、Javaで有名なGUIツールキットSWTのD言語版です。ですから、UI部分を読む時は、SWTのドキュメントがほとんどそのまま使えます。
処理を見てもよく分からない部分は、個別に質問していただければ、答えられると思います。
-
基本いい加減なので、自分のしたことに関してはどんどん修正・チェックしていただけると助かります。
cwx/editor/gui/dwt/eventdialog.d
みていて、java
を少しやったときにsetLayout
とかlistener
とか出てきたなあと懐かしくなっています。
得点のある
CouponView
を拡張して得点のないCouponView
を追加して利用するように作らねばならず、難航しております。それ以外の点でも悩ましいです。ぼちぼちやりますのでゆっくりお待ちいただければと思います。
-
ここまでは来ましたが、クーポン欄の仕切り線が消えないで、選択範囲が全体に広がらないでいます。
-
reporter この欄の正体はSWTの
Table
です。Table
には1つまたは複数の列(TableColumn
)があり、得点付きのクーポンビューは名前と得点の列を持っています。得点欄が不必要な場合は、2つ目のTableColumn
を作らなければよいです。ちなみに名前欄の列は独自の
FullTableColumn
というものを使っており、これはTableColumn
にTable
本体のサイズに合わせて幅が変わるという機能を持たせたものです。 -
reporter pull request #1773
上記Pull Requestをマージしました。
いただいてからマージまでに随分時間がかかってしまって申し訳ありません。エディタの側共々実装していただいて大いに助かりました。ありがとうございます。
対応するエディタはcwxeditorの20170226版以降です。
-
reporter - changed status to resolved
実装済みなので完了にします。
- Log in to comment
今までのクーポン分岐は複数の称号をパラメータに持てないし、 入力できないと思うのですが、 何か新しいコンテントを作ったり、ダイアログを作ったりとかするんですか?