Sha256: 3fed581c85f80680207167ca320a48ca38719f5361947901663a15d2b21abe30

Contents?: true

Size: 952 Bytes

Versions: 3

Compression:

Stored size: 952 Bytes

Contents

# frozen string literal: true

require 'dry-initializer'

module SpyAlleyApplication
  module Actions
    class UseMoveCard
      include Dry::Initializer.define -> do
        option :get_move_card_used_node, type: ::Types::Callable, reader: :private
        option :move_card_used, type: ::Types::Callable, reader: :private
        option :process_passing_spaces, type: ::Types::Callable, reader: :private
      end

      def call(game_board:, change_orders:, card_to_use:)
        change_orders = change_orders.push(get_move_card_used_node.(
          player_id: game_board.current_player.id,
          card: card_to_use))
        game_board = move_card_used.(game_board: game_board, move_card_used: card_to_use)
        process_passing_spaces.(
          game_board: game_board,
          change_orders: change_orders,
          board_space: game_board.current_player.location,
          spaces_remaining: card_to_use)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spy_alley_application-0.3.2 lib/spy_alley_application/actions/use_move_card.rb
spy_alley_application-0.3.1 lib/spy_alley_application/actions/use_move_card.rb
spy_alley_application-0.3.0 lib/spy_alley_application/actions/use_move_card.rb