Esempio n. 1
0
        public async Task <TMGame> StartNewGame(TMContext context)
        {
            await context.ReplyOKAsync();

            var game = new TMGame();

            game.Room = this;
            await game.SaveAsync();

            this.Status = RoomStatus.Playing;
            await this.SaveAsync();

            game.UseRpc(Lobby);

            var players = new List <TMPlayer>();

            foreach (var info in this.ClientInfos)
            {
                TMPlayer player = new TMPlayer(info)
                {
                    Game = game
                };
                players.Add(player);
            }

            await SaveAllAsync(players);

            game.Players = players;

            //List<Task> createdGameTasks = new List<Task>();

            //foreach (var p in game.Players)
            //{
            //    p.UseRpc(Lobby);
            //    createdGameTasks.Add(this.RpcClientAsync(p.Client, "OnNewGameCreated", game, p));
            //}

            this.RpcAllAsync("OnNewGameCreated", game, game.Players).ContinueWith(t =>
            {
                game.RpcAllAsync("WaitingForAllottingCharacters");
                return(game.InitAllotCharactersAsync());
            }).Unwrap();

            return(game);
        }
Esempio n. 2
0
 public Task <TMFeedback> TriggerAsync(TMPlayer player, TMPhase phase, TMOperation operation)
 {
     return(null);
 }
Esempio n. 3
0
 public virtual bool IfWon(TMIntelligence receiving, IEnumerable <TMIntelligence> received, TMPlayer dying, TMPlayer winning)
 {
     return(this.Mission.IfWon(receiving, received, dying, winning));
 }