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]);
}