class LoveLetterApplication::Actions::PlayCard

Public Instance Methods

call(**args) click to toggle source
# File lib/love_letter_application/actions/play_card.rb, line 12
def call(**args)
  card_id = args[:card_id].to_i
  change_orders = args[:change_orders]
  game_board = args[:game_board]
  player_id = game_board.current_player_id.to_i
  change_orders = change_orders.push(
    get_played_card_node.(
      player_id: player_id,
      card_id: card_id))
  game_board = get_game_board_with_played_card.(
    game_board: game_board,
    player_id: player_id,
    card_id: card_id)
  new_args = args.reject{|k, v| [:change_orders, :game_board].include?(k)}
  new_args[:change_orders] = change_orders
  new_args[:game_board] = game_board
  resolve_card_action_for[card_id].(new_args)
end