diff --git a/lib/engine/game/g_steam_over_holland/game.rb b/lib/engine/game/g_steam_over_holland/game.rb index 0b952cdd6a..4e536db6c2 100644 --- a/lib/engine/game/g_steam_over_holland/game.rb +++ b/lib/engine/game/g_steam_over_holland/game.rb @@ -369,12 +369,11 @@ def check_distance(route, visits, train = nil) def revenue_for(route, stops) revenue = super - abilities = Array(abilities(route.corporation, :hex_bonus)) - return revenue if abilities.empty? + Array(abilities(route.corporation, :hex_bonus)).each do |ability| + revenue += ability.amount * stops.count { |s| ability.hexes.include?(s.hex.id) } + end - bonus_hexes = abilities.flat_map(&:hexes) - bonus = 20 * stops.map(&:hex).map(&:coordinates).intersect(bonus_hexes).size - revenue + bonus + revenue end def sell_shares_and_change_price(bundle, allow_president_change: true, swap: nil, movement: nil)