Current section

Files

Jump to
islands_text_client lib islands text client joiner.ex
Raw

lib/islands/text/client/joiner.ex

defmodule Islands.Text.Client.Joiner do
@moduledoc """
Allows to join the _Game of Islands_.
"""
import Islands.Text.Client.Guard
alias Islands.Text.Client.Options
alias Islands.Client.{Player, RPC, State}
alias Islands.Player, as: Gamer
@spec join(String.t(), String.t(), Gamer.gender(), Keyword.t()) :: no_return
def join(game_name, player_name, gender, options \\ [])
when valid_game_args(game_name, player_name, gender, options) do
{mode, pause} = Options.get(options)
game_name
|> RPC.add_player(player_name, gender)
|> State.new(:player2, player_name, gender, mode, pause)
|> Player.play()
end
end