コード例 #1
0
 private StateContainer(NetServer peer,
                        GameState game, PlayerLookup players, IGameView view,
                        PlayerConnectionLookup connections)
     : base(peer, game, players, view)
 {
     this.connections = connections;
 }
コード例 #2
0
 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
     };
 }
コード例 #3
0
ファイル: GameState.cs プロジェクト: tdav/syzygy
        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 },
            };
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: BuildGameHandler.cs プロジェクト: tdav/syzygy
        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);
            }
        }
コード例 #6
0
ファイル: StateContainer.cs プロジェクト: tdav/syzygy
 private StateContainer(NetClient peer, GameState game, PlayerLookup players, IGameView view)
     : base(peer, game, players, view)
 {
 }
コード例 #7
0
 public GameBuilder(PlayerLookup players, IGameBehaviourProvider behaviourProvider)
 {
     this.game = new GameState(players, behaviourProvider);
 }
コード例 #8
0
ファイル: GameBuilder.cs プロジェクト: tdav/syzygy
 public GameBuilder(PlayerLookup players, IGameBehaviourProvider behaviourProvider)
 {
     this.game = new GameState(players, behaviourProvider);
 }