VASSAL指揮範囲の自動判定(3/E)

つづき

(6)指揮範囲内の部隊ユニットをレベル2(OOCマーカー有り)にする。
   汎用キーコマンドを使い、次の3条件成立で部隊ユニットのレベルを上げる。
   ・部隊名一致(部隊のOOBidと指揮官のOOB_GB *1) *1汎用属性に登録したもの。
   ・部隊ユニットのレベルが1である。
   ・部隊ユニットと指揮官の距離が20HEX以内である。
    →20の値は仮の値である。プレイテスト結果で見直す予定である。
     処理時間の短縮のためには小さい値が良いと思われる。
     遠く離れた部隊は指揮範囲外である事が明らかなので、自動判定の必要性は低い。     

(7)指揮範囲内の部隊ユニットをレベル1(OOCマーカー無し)にする。
   汎用キーコマンドを使い、次の2条件成立で部隊ユニットのレベルを上げる。
   ・部隊名一致(部隊のOOBidと指揮官のOOB_GB *1) *1汎用属性に登録したもの。
   ・部隊ユニットと指揮官の距離が指揮範囲(range)以内である。

(8)上記の(5)から(7)までを一括して処理する。
   トリガー動作機能に(5)から(7)までのホットキーを登録する。
   →これでctrl+tで指揮範囲の自動判定ができる。

4.build変更プログラムの改修
  上記3の機能を持つVASSALを作成する為のbuild変更プログラムを改修する。
(1)改修の内容
   下図のようにVASSAL編集機能で変更した上記3の機能を持つVASSALモジュールと
   変更前のモジュールを比較する。下図枠内は指揮官の例(上段が変更前、下段が変更後)。
   その差分データをbuild変更プログラムに追加する。

(2)改修版プログラムソース
   最後に添付する。

5.その他
(1)部隊指揮官以外の指揮官は指揮部範囲を空白にする。
   参謀長や副官などは、部隊指揮官の代理として交代したときに指揮範囲を手動で入れる。
   なお、臨時の派遣部隊を編成したときには、部隊の指揮官として新規の部隊名を入れ、
   派遣部隊も部隊名を変更する。なお、既存の部隊名と重複しないようにする。
   例)一部のコサックを派遣部隊とし、副官の1人を指揮官とする。
                  派遣部隊を編成前  編成後    
     副官の指揮部隊名と範囲  R0fと空白    R0fDtと3
     派遣部隊の部隊名     R0f       R0fDt    

<個人的な感想>
pythonのbuild変更プログラムは便利である。VASSALの改修を全てのモジュールに反映できる。