diff --git a/lib/engine/game/g_1880/round/operating.rb b/lib/engine/game/g_1880/round/operating.rb index 65b6566ff5..9e3292d8e9 100644 --- a/lib/engine/game/g_1880/round/operating.rb +++ b/lib/engine/game/g_1880/round/operating.rb @@ -30,13 +30,13 @@ def after_process(action) super end - def after_end_of_turn(_action) - @game.end_game! if trigger_game_end? + def after_end_of_turn(operator) + @game.end_game! if trigger_game_end?(operator) end - def trigger_game_end? + def trigger_game_end?(operator) round_num == @game.final_operating_rounds && - @current_operator == @game.train_marker + operator == @game.train_marker end end end diff --git a/lib/engine/round/operating.rb b/lib/engine/round/operating.rb index ff078242f1..27afaa357c 100644 --- a/lib/engine/round/operating.rb +++ b/lib/engine/round/operating.rb @@ -46,12 +46,12 @@ def after_process(action) return if entity.owner&.player? || entity.receivership? end - after_end_of_turn(action) + after_end_of_turn(@current_operator) next_entity! unless @game.finished end - def after_end_of_turn(action); end + def after_end_of_turn(operator); end def force_next_entity! @steps.each(&:pass!) @@ -84,7 +84,10 @@ def start_operating @log << "#{@game.acting_for_entity(entity).name} operates #{entity.name}" unless finished? @game.place_home_token(entity) if @home_token_timing == :operate skip_steps - next_entity! if finished? + return unless finished? + + after_end_of_turn(entity) + next_entity! end def recalculate_order