Ejemplo n.º 1
0
        public override void onStart()
        {
            base.onStart();

            if (serverInformation == null)
            {
                // we need to run a server
                var localServerPort = DEFAULT_GAME_PORT;
                server = new GameServer(new NetworkConnectionProvider(RemoteGameProtocol.instance,
                                                                      new Target(Target.AnyIP, localServerPort), GameServer.MAX_CONNECTIONS));
                server.initializeSimulation();
                // run the server on a server thread
                serverThread = new Thread(server.Start);
                serverThread.Start();
                serverInformation = new ServerInformation {
                    ip = Target.LoopbackIP, port = localServerPort
                };
            }

            // run a client and connect
            // TODO: locally generate and store RSA client key
            client = new RemoteGameClient(new NetworkClientConnection(RemoteGameProtocol.instance));
            var clientConnectTask = client.ConnectAsync(new Target(serverInformation.ip, serverInformation.port));

            clientConnectTask.ContinueWith(x => client.sendMessageAsync(new JoinMessage {
                ready = true
            }));
//            client.onGameInfo = setupOnConnected;
            client.subscribe <GameInfoMessage>(setupOnConnected);
            client.subscribe <EmpireFetchMessage>(empireFetch);
            client.subscribe <WorldUpdateMessage>(worldUpdate);

            gameState = new RemoteGameState();
        }
Ejemplo n.º 2
0
        public GameBoard(RemoteGameState gameState)
        {
            this.gameState = gameState;

            var tileTexture = GlintCore.contentSource.Load <Texture2D>("Sprites/Game/tile");

            unknownTileSubtex = new Subtexture(tileTexture, new Rectangle(0, 0, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE));
            baseTileSubtex    = new Subtexture(tileTexture,
                                               new Rectangle(TILE_TEXTURE_SIZE, 0, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE));
            propertyTileSubtex = new Subtexture(tileTexture,
                                                new Rectangle(0, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE));
            highlightedTileSubtex = new Subtexture(tileTexture,
                                                   new Rectangle(TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE));

            var tileDisplayTexture = GlintCore.contentSource.Load <Texture2D>("Sprites/Game/tile_display");

            tileDisplayActiveSubtex = new Subtexture(tileDisplayTexture,
                                                     new Rectangle(0, 0, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE));
            tileDisplayTargetSubtex = new Subtexture(tileDisplayTexture,
                                                     new Rectangle(TILE_TEXTURE_SIZE, 0, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE));

            var stationsTexture = GlintCore.contentSource.Load <Texture2D>("Sprites/Game/station");

            stationSubtexes = Subtexture.subtexturesFromAtlas(stationsTexture, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE);

            var pawnsTexture = GlintCore.contentSource.Load <Texture2D>("Sprites/Game/pawns");

            pawnSubtexes = Subtexture.subtexturesFromAtlas(pawnsTexture, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE);
        }