Skip to content

Instantly share code, notes, and snippets.

module.controller('GameController', function($scope, $rootScope, commandService) {
$scope.selectedPlayer = $rootScope.game.players[0];
$scope.winners = [];
$scope.gameFinished = false;
$scope.playAgain = function() {
$rootScope.gameId = null;
$rootScope.$on('events.TurnCountdownUpdated', function(event, data) {
$rootScope.game.turn.secondsLeft = data.secondsLeft;
$rootScope.$apply();
});
$rootScope.$on('events.TurnChanged', function(event, data) {
$rootScope.game.turn = data.turn;
$rootScope.$apply();
});
$rootScope.$on('events.GameStarted', function(event, data) {
$rootScope.game = {
players: data.players,
turn: data.initialTurn,
scores: []
};
$rootScope.page = "game";
$rootScope.$apply();
});
module.controller('StartGameController', function($scope, $rootScope, commandService) {
$scope.playersCount = 6;
$scope.loading = false;
$scope.hidePopoverTimeout = null;
$scope.startGame = function() {
$scope.loading = true;
module.controller('CreateGameController', function($scope, $rootScope, commandService, eventService) {
$scope.loading = false;
$scope.createNewGame = function() {
$scope.loading = true;
commandService.createGame(function(data) {
$scope.loading = false;
$rootScope.gameId = data.id;
$rootScope.page = "choose_players";
<div ng-switch on="page">
<div ng-switch-when="create" ng-controller="CreateGameController">
<!-- content -->
</div>
<div ng-switch-when="choose_players" ng-controller="StartGameController">
<!-- content -->
</div>
<div ng-switch-when="game" ng-controller="GameController">
<!-- content -->
$rootScope.page = "create"; // one of: "create", "choose_players", "game"
module.service('commandService', function($http) {
return {
createGame: function(success, error) {
$http.post('/game')
.success(success)
.error(error);
},
startGame: function(gameId, playersCount, error) {
$http.post('/game/' + gameId + '/start?playersCount=' + playersCount)
.error(error);
override def receive = {
case ev: GameEvent =>
out ! ev
}
override val requestStrategy = new RequestStrategy {
override def requestDemand(remainingRequested: Int) =
Math.max(remainingRequested, 1)
}
override def receive = {
case OnNext(message: Message) =>
val gameEvent =
GameEvent(
gameId = message.headers("gameId"),