Slackwolf\Game\GameManager::endGame PHP Method

endGame() public method

public endGame ( $id, null $enderUserId = null )
$id
$enderUserId null
    public function endGame($id, $enderUserId = null)
    {
        $game = $this->getGame($id);
        if (!$game) {
            return;
        }
        $playerList = RoleSummaryFormatter::format($game->getLivingPlayers(), $game->getOriginalPlayers());
        $client = $this->client;
        $winningTeam = $game->whoWon();
        if ($winningTeam !== null) {
            $winMsg = ":clipboard: Role Summary\r\n--------------------------------------------------------------\r\n{$playerList}\r\n\r\n:tada: The game is over. The ";
            if ($winningTeam == Role::VILLAGER) {
                $winMsg .= "Townsfolk are victorious!";
            } elseif ($winningTeam == Role::WEREWOLF) {
                $winMsg .= "Werewolves are victorious!";
            } elseif ($winningTeam == Role::TANNER) {
                $winMsg .= "Tanner is victorious!";
            } else {
                $winMsg .= "UnknownTeam is victorious!";
            }
            $this->sendMessageToChannel($game, $winMsg);
        }
        if ($enderUserId !== null) {
            $client->getUserById($enderUserId)->then(function (\Slack\User $user) use($game, $playerList) {
                $gameMsg = ":triangular_flag_on_post: The ";
                $roleSummary = "";
                if ($game->getState() != GameState::LOBBY) {
                    $gameMsg .= "game was ended";
                    $roleSummary .= "\r\n\r\nRole Summary:\r\n----------------\r\n{$playerList}";
                } else {
                    $gameMsg .= "lobby was closed";
                }
                $this->sendMessageToChannel($game, $gameMsg . " by @{$user->getUsername()}." . $roleSummary);
            });
        }
        unset($this->games[$id]);
    }