class LoveLetterApplication::Actions::Soldier

Public Class Methods

id() click to toggle source
# File lib/love_letter_application/actions/soldier.rb, line 34
def self.id;1;end

Public Instance Methods

call(target_player_id:, target_card_id:, game_board:, change_orders:) click to toggle source
# File lib/love_letter_application/actions/soldier.rb, line 15
def call(target_player_id:, target_card_id:, game_board:, change_orders:)
  game_board = play_card.call(
    game_board: game_board,
    card_id: Soldier::id)
  change_orders = change_orders.push(get_card_played_node.(
    player_id: game_board.current_player_id.to_i,
    card_id: Soldier::id))
  if guess_is_correct?(target_player_id, target_card_id, game_board)
    process_correct_guess.(
      target_player_id: target_player_id,
      game_board: game_board,
      change_orders: change_orders)
  else
    process_incorrect_guess.(
      game_board: game_board,
      change_orders: change_orders)
  end
end

Private Instance Methods

guess_is_correct?(target_player_id, target_card_id, game_board) click to toggle source
# File lib/love_letter_application/actions/soldier.rb, line 37
def guess_is_correct?(target_player_id, target_card_id, game_board)
  game_board
    .players
    .find{|player| player.id.to_i.eql?(target_player_id)}
    .hand
    .any?{|card| card.id.to_i.eql?(target_card_id)}
end