Example #1
0
        public static (IGame, State) Generate(GameConfiguration conf)
        {
            var playerRating = ThreadLocalRandom.Current().Next(conf.MinRating, conf.MaxRating);

            var spaceGridTileCache = new SpaceGridTileCache(
                Mathf.CeilToInt(SystemInfo.processorCount / 2F),
                new SpaceTileIO(Application.persistentDataPath),
                SpaceTileFactory.Construct(playerRating, conf)
                );

            spaceGridTileCache.Init();

            var gridNavigator = new SpaceGridNavigator(conf.TileSize);

            var visibilityManager = new SpaceGridTilesVisibilityManager(
                conf.TileSize,
                gridNavigator,
                spaceGridTileCache
                );

            var playerPosition = new Position(0, 0);

            visibilityManager.Init(gridNavigator.FindTile(playerPosition));

            var game = new Game(
                playerRating,
                new SpaceGrid(gridNavigator, spaceGridTileCache),
                visibilityManager,
                conf
                );

            var initialState = game.Init(playerPosition);

            return(game, initialState);
        }
Example #2
0
File: Game.cs Project: kotovdv/Nova
 public Game(
     int playerRating,
     SpaceGrid spaceGrid,
     SpaceGridTilesVisibilityManager tilesManager,
     GameConfiguration conf
     )
 {
     _conf         = conf;
     _spaceGrid    = spaceGrid;
     _playerRating = playerRating;
     _tilesManager = tilesManager;
     _planets      = new ObservablePlanets(_spaceGrid, _conf.AlternativeViewCapacity, _playerRating);
 }