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); }
public Task <TMFeedback> TriggerAsync(TMPlayer player, TMPhase phase, TMOperation operation) { return(null); }
public virtual bool IfWon(TMIntelligence receiving, IEnumerable <TMIntelligence> received, TMPlayer dying, TMPlayer winning) { return(this.Mission.IfWon(receiving, received, dying, winning)); }