MOE3: 輸送命令

MOE2 の輸送命令

MOE2 で輸送命令を出す場合、輸送対象の陸軍が明示的に海路移動を宣言している必要がある。

輸送命令を指定する際の操作と行軍解決処理の簡易化と「おせっかい輸送」回避のためだが、実はこの仕様だと本来のルール上は可能なはずの「自動海路選択」が適用されない。

おせっかい輸送

例えば、Hol に独陸軍、Bel に仏海軍がいるとしよう。

独は「Bel の仏海軍が Pic に後退するなら」Hol の陸軍を Bel に進めたいと考えて A Hol-Bel を指定し、仏も同じ考えで F Bel-Hol を指定していたとする。お互いに「進軍できれば儲けもの」程度の思惑で、実際には 1 vs 1 で状況は動かないはずだった。

ところが、何のつもりか、ここで英が Nth の海軍に対して、誰が頼んだわけでもない F Nth C German A Hol-Bel を指示していた場合、仏独両軍にとっては想定外の入れ替えが発生してしまうことになる。

……本当に?

もちろん、それはルールで封じられている。

輸送についてのレアケース

陸軍が移動する際に陸路と海路両方の解釈が可能な場合、下記の通り処理する。

  1. 輸送海軍のどれか一つでも陸軍と所属国が同じなら海路。
  2. 輸送海軍の全てが対象の陸軍と所属国が異なるなら陸路。
  3. 陸軍が海路を宣言していれば海路。

というわけで「おせっかい輸送」は 2 で阻止される。

自動海路選択

むしろ「自動海路選択」、上記 1 のケースだが、MOE で輸送を利用する場合にはシステム上 3 を強制されるのでこのルールの出番がない。

正確には、海路宣言の強制によってレアケースルールの実装をサボったわけだ。

今のところ MOE の輸送仕様について特に問題視する声は聞こえてこないが、本来はルール上可能ならばシステム上も可能であるべきとは思う。

MOE3 での仕様

陸軍が海路利用を宣言していない場合でも、同じ所属国の海軍による輸送が成立していれば海路を選択したものと見なす。

どう実装すれば良いのか見通しは立っていないが、なるようになるだろう。

MoveOrder(移動命令)の海路宣言

というわけで、すっかり忘れてた。

MoveOrder モデルで必要な属性

  • destination_id: 「どこへ移動するか」を示す Province への参照。
  • viaconvoy: 海路利用を宣言する場合は true← New!

Order モデルの属性

改めて。

Order モデルの属性

  • player_id: 「誰が指示した命令か」を特定するための参照。
  • unit_id: 「どの卓の何ターン目のどの軍への命令か」を特定するための参照。
  • destination_id: 「どこへ移動するか」を示す Province への参照。
  • viaconvoy: 海路利用を宣言する場合は true
  • target_id: 「どの命令を」支援あるいは輸送するかを示す Order への参照。
  • sample: 支援または輸送命令の target に設定される複製命令なら true
  • type: 単一テーブル継承用の属性。

今度こそ Order および派生モデルの実装だ。