<?php
/**
 * T100 game.
 */
//var_dump(array_keys(get_defined_vars()));



/**
 * Start game when going to site via GET
 */
$app->router->get("t100", function () use ($app) {
    $data = [
        "title" => "Tärning 100"
    ];

    $app->view->add("t100/start", $data);
    $app->page->render($data);
});

/**
 * Play game using POST and SESSION
 */
$app->router->post("t100", function () use ($app) {
    $app->session();
    
    $post = $app->request->getPost();
    $game;
    if (isset($post["player"])) {
        $dices = 2;
        if (isset($post["dices"]) && is_numeric($post["dices"])) {
            $dices = $post["dices"];
        }
        $game = new \Rasb14\T100\Game($dices, $post["player"]);
    } elseif ($app->session->has("game")) {
        $game = $app->session->get("game");
    } else {
        $app->view->add("t100/error", [
            "title" => "Tärning 100",
            "message" => "No name entered."
        ]);
        $app->page->render([
            "title" => "Tärning 100",
            "message" => "No name entered."
        ]);
    }

    if (isset($post["save"])) {
        $game->doRoll(true);
    } else {
        $game->doRoll(false);
    }
    
    if (!is_null($game->winner())) {
        $app->session->destroy();

        $data = [
            "title" => "Tärning 100",
            "winner" => $game->winner()
        ];

        $app->view->add("t100/win", $data);
        $app->page->render($data);
    } else {
        $app->session->set("game", $game);
        
        $data = [
            "title" => "Tärning 100",
            "graphic" => $game->graphic(),
            "unsaved" => $game->currentUnsaved(),
            "standings" => $game->generateStandingsTable(),
            "histogram" => $game->htmlHistogram()
        ];
    
        $app->view->add("t100/game", $data);
        $app->page->render($data);
    }
});
