Пример #1
0
 public TeamsController(
     IGame game,
     IGameStorage gameStorage)
 {
     this.gameEngine  = game;
     this.gameStorage = gameStorage;
 }
Пример #2
0
 public BiddersController(
     IGame game,
     IGameStorage gameStorage)
 {
     gameEngine       = game;
     this.gameStorage = gameStorage;
 }
Пример #3
0
 public GameManager(IGameStorage gameStorage, IPlayerStorage playerStorage,
                    RoundScorer roundScorer)
 {
     _gameStorage   = gameStorage;
     _playerStorage = playerStorage;
     _roundScorer   = roundScorer;
 }
Пример #4
0
 public Handler(IGame game, IGameStats gameStats, IMediator mediator, IGameStorage storage)
 {
     _game      = game;
     _gameStats = gameStats;
     _mediator  = mediator;
     _storage   = storage;
 }
Пример #5
0
 protected TestBase(ITestOutputHelper output)
 {
     Storage   = new NullStorage();
     Timer     = new TestTimer();
     GameBoard = new GameBoard(Storage, Timer);
     _output   = output;
 }
Пример #6
0
        public MainPage(IGame game,
                        IPixelMapper pixelMapper,
                        OrderedList <ITool> tools,
                        OrderedList <ILayerRenderer> layers,
                        OrderedList <ICommand> commands,
                        ITrainController trainControls,
                        ITrackParameters trackParameters,
                        ITrackLayout trackLayout,
                        IGameStorage gameStorage)
        {
            this.Title("Trains - " + ThisAssembly.AssemblyInformationalVersion);

            var controlDelegate = new TrainsDelegate(game, pixelMapper);

            _miniMapDelegate = new MiniMapDelegate(trackLayout, trackParameters, pixelMapper);

            this.Body = () =>
            {
                return(new HStack()
                {
                    new VStack()
                    {
                        new ToggleButton("Configuration", _configurationShown, () => _configurationShown.Value = !_configurationShown.Value),
                        new Spacer(),
                        _configurationShown ?
                        CreateConfigurationControls(layers) :
                        CreateToolsControls(tools, controlDelegate),
                        new Spacer(),
                        _configurationShown ? null :
                        CreateCommandControls(commands),
                        new Spacer(),
                        new DrawableControl(_miniMapDelegate).Frame(height: 100)
                    }.Frame(100, alignment: Alignment.Top),
                    new VStack()
                    {
                        new TrainControllerPanel(trainControls),
                        new DrawableControl(controlDelegate)
                    }
                }.FillHorizontal());
            };

            _timer          = new GameTimer();
            _timer.Interval = 16;
            _timer.Elapsed += (s, e) =>
            {
                game.AdjustViewPortIfNecessary();

                ThreadHelper.Run(async() =>
                {
                    await ThreadHelper.SwitchToMainThreadAsync();

                    controlDelegate.Invalidate();
                    _miniMapDelegate.Invalidate();
                });
            };
            _timer.Start();
            _trackLayout = trackLayout;
            _gameStorage = gameStorage;
        }
Пример #7
0
 public GameController(IGameStorage gameStorage, IFieldGeneratorFactory fieldGeneratorFactory,
                       ISeedGenerator seedGenerator, IGameManager gameManager)
 {
     GameStorage           = gameStorage;
     FieldGeneratorFactory = fieldGeneratorFactory;
     SeedGenerator         = seedGenerator;
     GameManager           = gameManager;
 }
Пример #8
0
 protected TestBase()
 {
     Storage   = new NullStorage();
     Timer     = new TestTimer();
     GameBoard = new GameBoard(Storage, Timer)
     {
         SpeedAdjustmentFactor = 100
     };
 }
Пример #9
0
 protected TestBase(ITestOutputHelper output)
 {
     Storage     = new NullStorage();
     Timer       = new TestTimer();
     TrackLayout = new Layout();
     TerrainMap  = new TerrainMap();
     GameBoard   = new GameBoard(TrackLayout, TerrainMap, Storage, Timer);
     _output     = output;
 }
Пример #10
0
        public void Setup()
        {
            _mockGameSessionStorage       = Substitute.For <IGameSessionStorage>();
            _mockGameStorage              = Substitute.For <IGameStorage>();
            _mockGameErrandStorage        = Substitute.For <IGameErrandStorage>();
            _mockGameSessionErrandStorage = Substitute.For <IGameSessionErrandStorage>();
            _mockGameSessionEventStorage  = Substitute.For <IGameSessionEventStorage>();

            _service = new GameSessionService(_mockGameSessionStorage, _mockGameStorage, _mockGameErrandStorage, _mockGameSessionErrandStorage, _mockGameSessionEventStorage);
        }
Пример #11
0
 public GameController(IGameStorage gameStorage, GameManager gameManager,
                       GameTimer gamesTimers, IMapper mapper,
                       IHubContext <LobbyHub> lobbyHubContext)
 {
     _gameStorage     = gameStorage;
     _gameManager     = gameManager;
     _gamesTimers     = gamesTimers;
     _mapper          = mapper;
     _lobbyHubContext = lobbyHubContext;
 }
Пример #12
0
        public GameSessionService(IGameSessionStorage gameSessionStorage, IGameStorage gameStorage, IGameErrandStorage gameErrandStorage, IGameSessionErrandStorage gameSessionErrandStorage, IGameSessionEventStorage gameSessionEventStorage)
        {
            _gameSessionStorage       = gameSessionStorage;
            _gameStorage              = gameStorage;
            _gameErrandStorage        = gameErrandStorage;
            _gameSessionErrandStorage = gameSessionErrandStorage;
            _gameSessionEventStorage  = gameSessionEventStorage;

            _gameSessionEvents = new Subject <Event>();
        }
Пример #13
0
    public GameStats(IMediator mediator, IGameStorage storage)
    {
        _mediator = mediator;
        _storage  = storage;

        _playerStats = new();

#pragma warning disable 4014
        Reset(0);
#pragma warning restore 4014
    }
Пример #14
0
 public RoundScorer(IGameStorage gameStorage, IPlayerStorage playerStorage)
 {
     _gameStorage   = gameStorage;
     _playerStorage = playerStorage;
 }
 protected override void OnSetup()
 {
     _mockGameStorage = Substitute.For <IGameStorage>();
     Controller       = new GameController(_mockGameStorage);
 }
Пример #16
0
        public MainPage(IGame game,
                        IEnumerable <ITool> tools,
                        IEnumerable <ILayerRenderer> layers,
                        IEnumerable <ICommand> commands,
                        ITrainController trainControls,
                        ILayout trackLayout,
                        IGameStorage gameStorage,
                        ITerrainMap terrainMap,
                        MiniMapDelegate miniMapDelegate,
                        TrainsDelegate trainsDelegate)
        {
            this.Title("Trains - " + ThisAssembly.AssemblyInformationalVersion);

            _game            = game;
            _controlDelegate = trainsDelegate;
            _miniMapDelegate = miniMapDelegate;

            this.Body = () =>
            {
                return(new HStack()
                {
                    new VStack()
                    {
                        _configurationShown?null:
                        new Button(trainControls.BuildMode ? "Building" : "Playing", () => SwitchGameMode()),
                        new Spacer(),
                        _configurationShown ?
                        CreateConfigurationControls(layers) :
                        CreateToolsControls(tools, _controlDelegate, trainControls.BuildMode.Value),
                        new Spacer(),
                        _configurationShown || !trainControls.BuildMode ? null :
                        CreateCommandControls(commands),
                        new Spacer(),
                        new HStack()
                        {
                            new Button(" - ", () => _game.Zoom(-1))
                            .Frame(40),
                            new Spacer(),
                            new Button(" + ", () => _game.Zoom(1))
                            .Frame(40),
                        },
                        new Spacer(),
                        new Button("Snapshot", () => Snapshot()),
                        new Button("Configuration", () => _configurationShown.Value = !_configurationShown.Value),
                        new DrawableControl(_miniMapDelegate).Frame(height: 100)
                    }.Frame(100, alignment: Alignment.Top),
                    new VStack()
                    {
                        new TrainControllerPanel(trainControls),
                        new DrawableControl(_controlDelegate)
                    }
                }.FillHorizontal());
            };

            _trackLayout = trackLayout;
            _gameStorage = gameStorage;

            _ = PresentLoop();

            void SwitchGameMode()
            {
                trainControls.ToggleBuildMode();

                if (_controlDelegate == null)
                {
                    return;
                }

                _controlDelegate.CurrentTool.Value = tools.FirstOrDefault(t => ShouldShowTool(trainControls.BuildMode, t));
            }

            void Snapshot()
            {
                (int width, int height) = _game.GetSize();
                using var bitmap        = new SKBitmap(width, height, SKImageInfo.PlatformColorType, SKAlphaType.Premul);
                using var skCanvas      = new SKCanvas(bitmap);
                using (ICanvas canvas = new SKCanvasWrapper(skCanvas))
                {
                    canvas.Save();
                    _game.Render(canvas);
                    canvas.Restore();
                }
                Clipboard.SetImage(bitmap.ToWriteableBitmap());
            }

            _terrainMap = terrainMap;
        }
Пример #17
0
 public StoreHostedService(IGame game, IGameStorage store)
 {
     Game  = game ?? throw new ArgumentNullException(nameof(game));
     Store = store ?? throw new ArgumentNullException(nameof(store));
 }
Пример #18
0
 public GameService(IGameStorage storage)
 {
     _storage = storage;
 }
Пример #19
0
        public MainPage(IGame game,
                        IPixelMapper pixelMapper,
                        OrderedList <ITool> tools,
                        OrderedList <ILayerRenderer> layers,
                        OrderedList <ICommand> commands,
                        ITrainController trainControls,
                        ITrackParameters trackParameters,
                        ITrackLayout trackLayout,
                        IGameStorage gameStorage,
                        ITimer gameTimer,
                        Factory <IToolPreviewer> previewerFactory)
        {
            this.Title("Trains - " + ThisAssembly.AssemblyInformationalVersion);

            var controlDelegate = new TrainsDelegate(game, pixelMapper, previewerFactory);

            _miniMapDelegate = new MiniMapDelegate(trackLayout, trackParameters, pixelMapper);

            this.Body = () =>
            {
                return(new HStack()
                {
                    new VStack()
                    {
                        _configurationShown?null:
                        new Button(trainControls.BuildMode ? "Building" : "Playing", () => SwitchGameMode()),
                        new Spacer(),
                        _configurationShown ?
                        CreateConfigurationControls(layers) :
                        CreateToolsControls(tools, controlDelegate, trainControls.BuildMode.Value),
                        new Spacer(),
                        _configurationShown || !trainControls.BuildMode ? null :
                        CreateCommandControls(commands),
                        new Spacer(),
                        new Button("Configuration", () => _configurationShown.Value = !_configurationShown.Value),
                        new DrawableControl(_miniMapDelegate).Frame(height: 100)
                    }.Frame(100, alignment: Alignment.Top),
                    new VStack()
                    {
                        new TrainControllerPanel(trainControls),
                        new DrawableControl(controlDelegate)
                    }
                }.FillHorizontal());
            };

            _gameTimer          = gameTimer;
            _gameTimer.Elapsed += (s, e) =>
            {
                game.AdjustViewPortIfNecessary();

                controlDelegate.FlagDraw();
                _miniMapDelegate.FlagDraw();

                ThreadHelper.Run(async() =>
                {
                    await ThreadHelper.SwitchToMainThreadAsync();

                    controlDelegate.Invalidate();
                    _miniMapDelegate.Invalidate();
                });
            };
            _trackLayout = trackLayout;
            _gameStorage = gameStorage;

            void SwitchGameMode()
            {
                trainControls.ToggleBuildMode();

                if (controlDelegate == null)
                {
                    return;
                }

                controlDelegate.CurrentTool.Value = tools.FirstOrDefault(t => ShouldShowTool(trainControls.BuildMode, t));
            }
        }
Пример #20
0
 public GameController(IGameStorage gameStorage)
 {
     _gameStorage = gameStorage;
 }
Пример #21
0
 protected GameModel(IGameStorage <IGameManager> gameStorage)
 {
     GameStorage = gameStorage;
 }