defmodule Hangman.Text.Client.Summary do
@moduledoc """
Displays a summary of the game.
"""
alias Hangman.Text.Client.State
@emit? true
@more :reset
@one :light_yellow
@doc """
Displays a summary of the game.
"""
@spec display(State.t()) :: State.t()
def display(%State{tally: tally} = state) do
[
if(tally.turns_left == 1, do: @one, else: @more),
"""
Word so far: #{Enum.join(tally.letters, " ")}
Guesses left: #{tally.turns_left}
Letters used: #{Enum.join(tally.guesses, " ")}
"""
]
|> IO.ANSI.format(@emit?)
|> IO.puts()
state
end
end