diff --git a/lib/engine/game/base.rb b/lib/engine/game/base.rb index 8f58e24bb0..e0d87a869e 100644 --- a/lib/engine/game/base.rb +++ b/lib/engine/game/base.rb @@ -3227,7 +3227,7 @@ def ability_time_is_or_start? end def ability_blocking_step - supported_steps = [Step::Tracker, Step::Token, Step::Route, Step::BuyTrain] + supported_steps = [Step::Tracker, Step::Token, Step::Route, Step::Dividend, Step::BuyTrain] @round.steps.find do |step| supported_steps.any? { |s| step.is_a?(s) } && !step.passed? && step.active? && step.blocks? end diff --git a/lib/engine/game/g_18_royal_gorge/step/special_choose.rb b/lib/engine/game/g_18_royal_gorge/step/special_choose.rb index 56a9d69379..1e9eb3df3f 100644 --- a/lib/engine/game/g_18_royal_gorge/step/special_choose.rb +++ b/lib/engine/game/g_18_royal_gorge/step/special_choose.rb @@ -7,13 +7,22 @@ module Game module G18RoyalGorge module Step class SpecialChoose < Engine::Step::SpecialChoose + def actions(entity) + if @game.indebted.include?(entity) || + (entity.company? && %w[RG-D SF-D].include?(entity.sym)) + super + else + [] + end + end + def process_choose_ability(action) return unless action.choice == 'pay_debt' debt_company = action.entity corporation = debt_company.owner - ability = abilities(corporation) + ability = Array(abilities(corporation)).find { |a| a.description == 'Pay debt' } ability.use! debtor, = @game.indebted[corporation]