Current section

Files

Jump to
islands_text_client lib islands text_client player react players_set.ex
Raw

lib/islands/text_client/player/react/players_set.ex

defmodule Islands.TextClient.Player.React.PlayersSet do
@moduledoc false
alias Islands.Engine.Tally
alias Islands.TextClient.Player.React.Wait
alias Islands.TextClient.{State, Summary}
@spec maybe_wait(State.t()) :: State.t()
def maybe_wait(
%State{
player_id: :player1,
tally: %Tally{player1_state: :islands_set}
} = state
) do
state
|> Summary.display()
|> Wait.for(:player1_turn, "your opponent to set islands")
end
def maybe_wait(
%State{
player_id: :player2,
tally: %Tally{player2_state: :islands_set}
} = state
) do
state
|> Summary.display()
|> Wait.for(:player2_turn, "your opponent to set islands and play")
end
def maybe_wait(%State{} = state), do: state
end