private StateContainer(NetServer peer, GameState game, PlayerLookup players, IGameView view, PlayerConnectionLookup connections) : base(peer, game, players, view) { this.connections = connections; }
public BuildGameHandler(NetClient peer, PlayerLookup players, Id <Player> ownID) : base(peer, players, ownID, new ClientBehaviourProvider(peer)) { this.stateBuilder = new StateContainer.Builder { Client = peer, Players = players }; }
public GameState(PlayerLookup players, IGameBehaviourProvider behaviours) { this.players = players; this.requestHandler = behaviours.GetRequestHandler(); this.collisionHandler = behaviours.GetCollisionHandler(this); this.continuousSynchronizer = behaviours.GetContinuousSynchronizer(this); this.deletableDictionaries = new Dictionary <Type, object> { { typeof(IBody), this.bodies }, { typeof(FreeObject), this.freeObjects }, }; this.deletableLists = new Dictionary <Type, object> { { typeof(Economy.Economy), this.economies }, }; }
public bool AddPlayer(string name, string avatar) { if (!PlayerLookup.ContainsKey(name)) { var newPlayer = new Player() { Name = name, Position = Players.Count, Chips = BuyInAmount, Avatar = avatar, Folded = true }; PlayerLookup[name] = newPlayer; Players.Add(newPlayer); return(true); } return(false); }
public BuildGameHandler(NetServer server, PlayerLookup players, PlayerConnectionLookup connections, Id <Player> ownID) : base(server, players, ownID, new ServerBehaviourProvider(server, connections)) { this.stateBuilder = new StateContainer.Builder { Server = server, Players = players, Connections = connections, }; var generator = new SimpleGenerator(); var instructions = generator.Generate(players.Select(p => p.ID).ToList()); // instructions may want to be spaced out in time in the future, // to prevent packet loss, and thus longer building time foreach (var instruction in instructions) { // build own game this.executeInstruction(instruction); if (connections.Count > 0) { // instruct clients how to build game var message = server.CreateMessage(); instruction.WriteMessage(message); server.SendMessage(message, connections, NetDeliveryMethod.ReliableOrdered, 0); } } // send finish message and finish this.finish(this.stateBuilder); if (connections.Count > 0) { var finishMessage = server.CreateMessage(); finishMessage.Write((byte)GenerationMessageType.FinishGenerating); server.SendMessage(finishMessage, connections, NetDeliveryMethod.ReliableOrdered, 0); } }
private StateContainer(NetClient peer, GameState game, PlayerLookup players, IGameView view) : base(peer, game, players, view) { }
public GameBuilder(PlayerLookup players, IGameBehaviourProvider behaviourProvider) { this.game = new GameState(players, behaviourProvider); }