MOE3: 行軍解決処理の基本デザイン

MainPhase#resolve_orders の基本形

setupresolve_movecleanup の順に処理し、最後の orders(true) では引数の true 指定でキャッシュを破棄したクエリを返す。

class MainPhase < Phase
  def resolve_orders
    setup
    resolve_move
    cleanup

    orders(true)
  end

  def setup
    @orders = orders.to_a
  end

  def reslove_move
    # これから実装
  end

  def cleanup
    @orders.each do |order|
      order.save!
    end
  end
end

とりあえず単純移動命令処理の resolve_move から実装し、スタンドオフ、玉突き衝突といった処理区分を resolve_move の前後に追加していく。