summaryrefslogtreecommitdiff
path: root/lib/chessh/ssh/client/menus/create_game.ex
blob: 99d2c0e20be1d0b22c6b4a13a6003bf938d27153 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
defmodule Chessh.SSH.Client.CreateGameMenu do
  alias IO.ANSI

  alias Chessh.PlayerSession
  alias Chessh.SSH.Client.Game

  require Logger

  use Chessh.SSH.Client.SelectPaginatePoller

  def dynamic_options(), do: false
  def tick_delay_ms(), do: 1000
  def max_displayed_options(), do: 4
  def title(), do: ["-- Create A New Game --"]

  def initial_options(%State{player_session: %PlayerSession{} = player_session}) do
    [
      {"😀 vs 😀 | ⬜ White", {Game, %Game.State{player_session: player_session, color: :light}}},
      {"😀 vs 😀 | ⬛ Black", {Game, %Game.State{player_session: player_session, color: :dark}}},
      {"😀 vs 🤖 | ⬜ White",
       {Chessh.SSH.Client.SelectBot,
        %Chessh.SSH.Client.SelectPaginatePoller.State{
          player_session: player_session,
          extra_info: %{
            color: :light
          }
        }}},
      {"🤖 vs 😀 | ⬛ Black",
       {Chessh.SSH.Client.SelectBot,
        %Chessh.SSH.Client.SelectPaginatePoller.State{
          player_session: player_session,
          extra_info: %{
            color: :dark
          }
        }}}
    ]
  end

  def make_process_tuple(selected, _state) do
    selected
  end
end