summaryrefslogtreecommitdiffstats
path: root/lib/colonial_twilight/fln_bot.rb
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2020-09-03 15:45:54 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2020-09-03 15:45:54 +0200
commit1ea408bc51382058fbeb54e88678432a459a44c9 (patch)
tree05317cbcae29d3c18a85f882c04dd697141d1951 /lib/colonial_twilight/fln_bot.rb
parentc18b41671efabbd20a743e01dd8498d71d550eb9 (diff)
downloadcolonial-twilight-1ea408bc51382058fbeb54e88678432a459a44c9.zip
colonial-twilight-1ea408bc51382058fbeb54e88678432a459a44c9.tar.gz
Board/Cli : introduce Box class, clean up CLI
Diffstat (limited to 'lib/colonial_twilight/fln_bot.rb')
-rw-r--r--lib/colonial_twilight/fln_bot.rb19
1 files changed, 6 insertions, 13 deletions
diff --git a/lib/colonial_twilight/fln_bot.rb b/lib/colonial_twilight/fln_bot.rb
index 0cb8b46..e119d36 100644
--- a/lib/colonial_twilight/fln_bot.rb
+++ b/lib/colonial_twilight/fln_bot.rb
@@ -576,11 +576,9 @@ module ColonialTwilight
end
def transfer h, n, what, from, to, towhat=nil
- towhat = what if towhat.nil?
h[:controls][from] ||= from.control unless from.is_a? Symbol
h[:controls][to] ||= to.control unless to.is_a? Symbol
- @board.transfer n, what, from, to, towhat
- h[:transfers] << { :n => n, :what => what, :from=>from, :to => to, :towhat=> towhat }
+ h[:transfers] << @board.transfer( n, what, from, to, towhat)
# puts h[:transfers][-1] if @debug
end
@@ -595,15 +593,16 @@ module ColonialTwilight
IGNORE = [:pass, :event, :agitate].freeze
def apply_action h
+ selected = h[:selected]
action = h[:action]
if OPERATIONS.include? action
operation_done action
- raise "already selected #{h[:selected].name}" if @selected_spaces.include? h[:selected]
- @selected_spaces << h[:selected] #unless @selected_spaces.include? h[:selected]
+ raise "already selected #{selected.name}" if @selected_spaces.include? selected
+ @selected_spaces << selected #unless @selected_spaces.include? selected
puts 'selected spaces :: ' + @selected_spaces.collect(){|s| s.is_a?(Symbol) ? s.to_s : s.name}.join(' :: ') if @debug
elsif SPECIAL_ACTIVITIES.include? action
special_activity_done action
- @selected_spaces << h[:selected] if action == :ambush
+ @selected_spaces << selected if action == :ambush
elsif not IGNORE.include? action
raise "apply unknown action #{h[:action]}"
else
@@ -613,13 +612,7 @@ module ColonialTwilight
@board.shift_resources :fln, -cost
@expended_resources += cost unless h.has_key? :already_expended # _reserve_agitate
h[:resources] = {:cost=>cost, :value=>@board.fln_resources}
- h[:controls].each do |k,v|
- if v != k.control
- h[:controls][k] = [v, k.control]
- else
- h[:controls].delete k
- end
- end
+ h[:controls] = h[:controls].inject({}){|ch,(k,v)| ch[k] = [v, k.control] if v != k.control; ch}
@ui.show_player_action self, h
true
end