From 29d56809f383fe0baf1f1b4867428ba5b26fbf54 Mon Sep 17 00:00:00 2001 From: Patrik Olesen Date: Thu, 12 Sep 2024 22:02:39 +0200 Subject: [PATCH 1/4] [18Uruguay] Company shall only retreive destination_bonus in their own turn Fixes #11073 --- lib/engine/game/g_18_uruguay/game.rb | 1 + .../game/g_18_uruguay/step/destination_bonus.rb | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/engine/game/g_18_uruguay/game.rb b/lib/engine/game/g_18_uruguay/game.rb index cecd5ef96f..cbce649147 100644 --- a/lib/engine/game/g_18_uruguay/game.rb +++ b/lib/engine/game/g_18_uruguay/game.rb @@ -283,6 +283,7 @@ def after_buy_company(player, company, _price) def operating_round(round_num) Round::Operating.new(self, [ + G18Uruguay::Step::DestinationBonus, Engine::Step::Bankrupt, Engine::Step::Exchange, G18Uruguay::Step::Farm, diff --git a/lib/engine/game/g_18_uruguay/step/destination_bonus.rb b/lib/engine/game/g_18_uruguay/step/destination_bonus.rb index 584c32f54b..2098d26743 100644 --- a/lib/engine/game/g_18_uruguay/step/destination_bonus.rb +++ b/lib/engine/game/g_18_uruguay/step/destination_bonus.rb @@ -12,8 +12,10 @@ def description end def log_skip(entity) - return if entity.minor? + return unless entity.corporation? return if entity == @game.rptla + return if @game.abilities(entity, :destination_bonus).nil? + return if destination_node_check?(entity).nil? super end @@ -21,15 +23,16 @@ def log_skip(entity) def actions(entity) return [] if entity.minor? return [] if entity == @game.rptla + return [] if @game.abilities(entity, :destination_bonus).nil? self.class::ACTIONS end def auto_actions(entity) - corporations = @round.entities.select { |c| destination_node_check?(c) } - return [Engine::Action::Pass.new(entity)] if corporations.empty? + return [] unless entity.corporation? + return [Engine::Action::Pass.new(entity)] if destination_node_check?(entity).nil? - [Engine::Action::DestinationConnection.new(entity, corporations: corporations)] + [Engine::Action::DestinationConnection.new(entity, corporations: [entity])] end def destination_node_check?(corporation) From 5422b7e24461e0d6f6ac8db2a4e7bb3f3608768c Mon Sep 17 00:00:00 2001 From: patrikolesen Date: Fri, 27 Sep 2024 07:25:56 +0200 Subject: [PATCH 2/4] Update lib/engine/game/g_18_uruguay/step/destination_bonus.rb Co-authored-by: Oliver Burnett-Hall --- lib/engine/game/g_18_uruguay/step/destination_bonus.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/engine/game/g_18_uruguay/step/destination_bonus.rb b/lib/engine/game/g_18_uruguay/step/destination_bonus.rb index 2098d26743..cb74452313 100644 --- a/lib/engine/game/g_18_uruguay/step/destination_bonus.rb +++ b/lib/engine/game/g_18_uruguay/step/destination_bonus.rb @@ -14,8 +14,7 @@ def description def log_skip(entity) return unless entity.corporation? return if entity == @game.rptla - return if @game.abilities(entity, :destination_bonus).nil? - return if destination_node_check?(entity).nil? + return unless destination_node_check?(entity) super end From b4f7903b2766990e85f22b607abfab5ae8ef8196 Mon Sep 17 00:00:00 2001 From: patrikolesen Date: Fri, 27 Sep 2024 07:26:15 +0200 Subject: [PATCH 3/4] Update lib/engine/game/g_18_uruguay/step/destination_bonus.rb Co-authored-by: Oliver Burnett-Hall --- lib/engine/game/g_18_uruguay/step/destination_bonus.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/engine/game/g_18_uruguay/step/destination_bonus.rb b/lib/engine/game/g_18_uruguay/step/destination_bonus.rb index cb74452313..c803f5dddc 100644 --- a/lib/engine/game/g_18_uruguay/step/destination_bonus.rb +++ b/lib/engine/game/g_18_uruguay/step/destination_bonus.rb @@ -29,7 +29,7 @@ def actions(entity) def auto_actions(entity) return [] unless entity.corporation? - return [Engine::Action::Pass.new(entity)] if destination_node_check?(entity).nil? + return [Engine::Action::Pass.new(entity)] unless destination_node_check?(entity) [Engine::Action::DestinationConnection.new(entity, corporations: [entity])] end From 6a61a6ee9805825acf19d7c56940b059b8edd54c Mon Sep 17 00:00:00 2001 From: Patrik Olesen Date: Fri, 27 Sep 2024 07:31:09 +0200 Subject: [PATCH 4/4] [18Uruguay] Only return boolean from destination_node_check? --- lib/engine/game/g_18_uruguay/step/destination_bonus.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/engine/game/g_18_uruguay/step/destination_bonus.rb b/lib/engine/game/g_18_uruguay/step/destination_bonus.rb index c803f5dddc..b7849e80ce 100644 --- a/lib/engine/game/g_18_uruguay/step/destination_bonus.rb +++ b/lib/engine/game/g_18_uruguay/step/destination_bonus.rb @@ -35,11 +35,11 @@ def auto_actions(entity) end def destination_node_check?(corporation) - return if corporation.closed? - return if corporation.destination_coordinates.nil? + return false if corporation.closed? + return false if corporation.destination_coordinates.nil? ability = @game.abilities(corporation, :destination_bonus) - return if ability.nil? + return false if ability.nil? destination_hex = @game.hex_by_id(corporation.destination_coordinates) home_node = corporation.tokens.first.city