class LoveLetterApplication::Results::ProcessSwitchHands

Public Instance Methods

call(target_player_id:, game_board:, change_orders:) click to toggle source
# File lib/love_letter_application/results/process_switch_hands.rb, line 14
def call(target_player_id:, game_board:, change_orders:)
  player_id = game_board.current_player_id.to_i
  old_card_id, new_card_id = get_cards_held_by(player_id, target_player_id.to_i, game_board)
  game_board = switch_hands.(
    player_id: player_id,
    target_player_id: target_player_id,
    game_board: game_board)
  process_next_player_turn.(
    game_board: game_board,
    change_orders: change_orders.push(get_hands_switched_node.(
      player_id: player_id,
      target_player_id: target_player_id,
      card_id_given: old_card_id,
      card_id_taken: new_card_id)))
end

Private Instance Methods

get_cards_held_by(player_id, target_player_id, game_board) click to toggle source
# File lib/love_letter_application/results/process_switch_hands.rb, line 31
def get_cards_held_by(player_id, target_player_id, game_board)
  old_card_id = game_board.players
    .find{|player| player.id.to_i.eql?(player_id)}
    .hand
    .first
    .id
    .to_i

  new_card_id = game_board.players
    .find{|player| player.id.to_i.eql?(target_player_id)}
    .hand
    .first
    .id
    .to_i

  [old_card_id, new_card_id]
end