デッキからカードをドローするコマンド
できれば便利との声がありましたので、調べてみましたので紹介します。
なおVASSAL3.0既存のコマンドで作成することができます。
カードに[Send To Location]を設定する。
カードに"Send To Location"を設定します。
Prototypeでカード専用のものが用意してあれば、それに設定すればOKです。
移動先として新しい手札を配置する場所を指定しておきます。
このコマンドはプレイヤーの人数分必要になります。
Grobal Key Commandを設定する。
ボタンのために、Global Key Commandを用意して、Key Commandに、上述のコマンドを割り当てます。
この段階で実行すると、Send To Locationを追加カードが、設定した場所に集まってきます。
ここでGlobal Key Commandにふたつの設定を行います。
Matching Propertiesを指定する。
この項目はKey Commandを実行する対象を絞り込むために使用します。
プログラムを記述するような形なので、少しとっつきにくいですが、
ここを指定することで、対象をデッキの中のカードに限定することができます。
CurrentMap=Main Map && CurrentBoard=Main Board && LocationName=Deck
この一行を指定するだけでOKです。
ただしMain Map, Main Board, Deckの三か所だけは、
そのモジュールで設定した名前に変更する必要があります。
名前はどれもモジュール編集画面のツリービューで確認できます。
ツリービューの各項目は
Main Map[Map Window]
のようになっています。
[]の中は、その項目の種類を表しています。その左側にあるのが名前です。
Main Mapにはデッキが含まれるMap Windowの名前
Main Boardにはデッキが含まれているMap Boardの名前
Location Nameにはそのデッキ自体の名前になります。
Within a Deck, apply toを指定する。
この項目は対象になるカードがデッキの中にある場合、どうするかを指定するものです。
選択肢は3つあります。
- "All Pieces"にするとすべてのカードが対象になります。
- "No Pieces"にするとカードを対象にしません。
- "Fixed number of Pieces"にすると対象のカードの枚数を指定できます。
補足
ここまでで、基本的な動作は完成ですが、少し工夫することで手間を省けます。
Markerの利用でショートカット重複を回避する
カードと他のコマで同じショートカットで別のコマンドが割り当てられていると、
Global Key Command を利用したときに、想定外の動きをしてしまいます。
そこでカードと駒にMarkerを追加して、
カードには"Type=Card"という設定をしておき、
他のコマには、たとえば"Type=Unit"を設定しておきます。
ここで設定した値は、
Grobal Key CommandのMatching Propertiesでの対象の絞り込みで利用できます。
この場合にはMatching Propertiesで設定する値は、
Type=Card && CurrentMap=Main Map && CurrentBoard=Main Board && LocationName=Deck
ということになります。
もっともデッキの中にはカードしかない気もしますが。。。。
デッキの名前
同じくMatchig Propertiesの設定ですが、もしデッキと同じ名前の場所がほかになければ、
LocationName=Deck
だけでもOKなようです。
最終更新:2008年11月09日 16:44