class JamesBond::Core::MissionPool
Attributes
mission_by_main_command[RW]
mission_list[RW]
Public Class Methods
new(params={})
click to toggle source
# File lib/james_bond/core/mission_pool.rb, line 6 def initialize(params={}) @mission_list = params[:mission_list] build_mission_by_main_command end
Public Instance Methods
decide_mission(command)
click to toggle source
# File lib/james_bond/core/mission_pool.rb, line 11 def decide_mission(command) @mission_by_main_command[command.main_command] end
Private Instance Methods
build_mission_by_main_command()
click to toggle source
# File lib/james_bond/core/mission_pool.rb, line 17 def build_mission_by_main_command @mission_by_main_command = {} @mission_list.each do |mission| mission.core_mission_config.main_commands.each do |main_command| another_mission = @mission_by_main_command[main_command] raise "Mission conflict! Two missions (\"#{another_mission.name}\" and \"#{mission.name}\") " \ + "are assigned for the same command (\"#{main_command}\")" if another_mission @mission_by_main_command[main_command] = mission end end end