public void Setup()
        {
            player = new Player("Player");
            var players = new[] { player };

            dice = new ControlledDice();
            var realEstateHandler = FakeHandlerFactory.CreateEmptyRealEstateHandler(players);

            landableSpaces = new Dictionary <Int32, UnownableSpace>();

            for (var i = 0; i < BoardConstants.BOARD_SIZE; i++)
            {
                landableSpaces.Add(i, new LandableSpace());
            }

            space6  = landableSpaces[6] as LandableSpace;
            space10 = landableSpaces[10] as LandableSpace;

            var spaceHandler = new UnownableHandler(landableSpaces);

            banker       = new Banker(players);
            boardHandler = new BoardHandler(players, realEstateHandler, spaceHandler, banker);
            jailHandler  = new JailHandler(dice, boardHandler, banker);
            turnHandler  = new TurnHandler(dice, boardHandler, jailHandler, realEstateHandler, banker);
        }
Ejemplo n.º 2
0
 public Game()
 {
     // По-хорошему здесь должен применяться механизм
     // внедрения зависимостей, но так как приложение
     // учебное, то объекты создаются явно
     _turnHandler = new DefaultTurnHandler(new TurnValidator());
     _reporter    = new DefaultReporter(new DefaultGameOverAnalyst());
 }
Ejemplo n.º 3
0
        public Game(IEnumerable<IPlayer> newPlayers, ITurnHandler turnHandler, IBanker banker)
        {
            CheckNumberOfPlayers(newPlayers);

            var randomizer = new PlayerOrderRandomizer();
            var randomizedPlayers = randomizer.Execute(newPlayers);
            players = new LinkedList<IPlayer>(randomizedPlayers);

            this.turnHandler = turnHandler;
            this.banker = banker;
            currentPlayerPointer = players.First;
            Round = 1;
        }
Ejemplo n.º 4
0
        public Game(IEnumerable <IPlayer> newPlayers, ITurnHandler turnHandler, IBanker banker)
        {
            CheckNumberOfPlayers(newPlayers);

            var randomizer        = new PlayerOrderRandomizer();
            var randomizedPlayers = randomizer.Execute(newPlayers);

            players = new LinkedList <IPlayer>(randomizedPlayers);

            this.turnHandler     = turnHandler;
            this.banker          = banker;
            currentPlayerPointer = players.First;
            Round = 1;
        }
Ejemplo n.º 5
0
        public void InjectDependencies(
            Hero hero,
            ITurnHandler turnHandler,
            IHeroActionController moveActionSimulator,
            IEventDispatcher eventDispatcher)
        {
            _hero            = hero;
            _turnHandler     = turnHandler;
            _actionSimulator = moveActionSimulator;
            _eventDispatcher = eventDispatcher;

            _actionSimulator.OnActionStartSimulation    += SetAsNotSelectable;
            _actionSimulator.OnActionSimulationFinished += UpdateGuiOnActionSimulated;
            _turnHandler.OnTurnStart += SetAsSelectable;
        }
Ejemplo n.º 6
0
        public TurnDealer(
            ITurnHandler player1TurnHandler,
            ITurnHandler player2TurnHandler,
            IEventDispatcher eventDispatcher)
        {
            _player1TurnHandler = player1TurnHandler;
            _player2TurnHandler = player2TurnHandler;
            _eventDispatcher    = eventDispatcher;

            _player1TurnHandler.InjectDependencies(this);
            _player2TurnHandler.InjectDependencies(this);

            _player1TurnHandler.OnTurnFinished += ChangeTurnToPlayer2;
            _player2TurnHandler.OnTurnFinished += ChangeTurnToCPU;
            _eventDispatcher.Subscribe <GameActionsExecutedSignal>(HandleAllActionsExecuted);
        }
Ejemplo n.º 7
0
        private void Start()
        {
            NotificationSystem.RegisterListener(Visit);
            CommandDispatcher = new CombatEventDispatcher(NotificationSystem);
            TurnDispatcher    = new TurnEventDispatcher(NotificationSystem);
            SelectionSystem   = new SelectionSystem(CombatController);
            PlayerTurnHandler = new PlayerTurnHandler(OnTurnStart);
            TurnSystem.SetPlayerTurnHandler(PlayerTurnHandler);

            PlayerInfo = PlayerInfo.CreateFromPersistence();

            PlayerCharacter = PlayerInfo.PlayerCharacter.DecorateWithEquipmentDecorator();

            CombatController.ActiveAllies = new List <ICharacter> {
                PlayerCharacter
            };
            TurnDispatcher.DispatchEndTurn();
        }
Ejemplo n.º 8
0
 public void InjectDependencies(
     int heroInstanceId,
     ITurnHandler turnHandler,
     IEventDispatcher eventDispatcher,
     IGameActionsExecutioner gameActionsExecutioner)
 {
     InitializeHeroEntity(heroInstanceId);
     _turnHandler = turnHandler;
     _heroSelector.InjectDependencies(
         _hero,
         turnHandler,
         _heroActionController,
         eventDispatcher
         );
     _heroActionController.InjectDependencies(_hero, gameActionsExecutioner);
     _heroMovementController.InjectDependencies(_hero);
     _guiView.InjectDependencies(_hero, HeroHealth);
     _heroHealthController.InjectDependencies(_hero, HeroHealth);
     _heroAttackController.InjectDependencies(_hero);
     _heroAbilityController.InjectDependencies(_hero);
 }
        public void Init()
        {
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            mockDeck = fixture.Create<Mock<IDeck>>();
            mockDice = fixture.Create<Mock<Dice>>();
            mockDeckFactory = fixture.Create<Mock<IDeckFactory>>();
            mockPlayer = fixture.Create<Mock<IPlayer>>();

            ninject = new StandardKernel(new BindingsModule());

            ninject.Rebind<IDice>().ToConstant(mockDice.Object).InSingletonScope();
            ninject.Rebind<IDeckFactory>().ToConstant(mockDeckFactory.Object).InSingletonScope();
            ninject.Rebind<ITaskHandler>().To<TaskHandler>().WithConstructorArgument(PlayerFactory.BuildPlayers(6)); // register six OTHER players

            mockDeckFactory.Setup(x => x.BuildChanceDeck()).Returns(mockDeck.Object);
            mockDeckFactory.Setup(x => x.BuildCommunitiyChestDeck()).Returns(mockDeck.Object);

            turnHandler = ninject.Get<ITurnHandler>();
            player = ninject.Get<IPlayer>();
            realtor = ninject.Get<IRealtor>();

            jailer = ninject.Get<IJailer>();
            taskHandler = ninject.Get<ITaskHandler>();
        }
Ejemplo n.º 10
0
 public void SetPlayerTurnHandler(ITurnHandler playerTurnHandler)
 {
     TurnHandlers.Add(TurnType.Player, playerTurnHandler);
 }
Ejemplo n.º 11
0
 private void InjectHeroControllerDependencies(IEnumerable <HeroController> heroControllers, ITurnHandler turnHandler)
 {
     foreach (var heroController in heroControllers)
     {
         heroController.InjectDependencies(_counterHeroesInstalled, turnHandler, _eventDispatcher, _gameActionsExecutioner);
         ++_counterHeroesInstalled;
     }
 }
Ejemplo n.º 12
0
 private void InstallTurnDependencies()
 {
     _player1TurnHandler = new TurnHandler(TurnTypes.Turn.Player_1, _player1Heroes);
     _player2TurnHandler = new TurnHandler(TurnTypes.Turn.Player_2, _player2Heroes);
     _turnDealer         = new TurnDealer(_player1TurnHandler, _player2TurnHandler, _eventDispatcher);
 }
Ejemplo n.º 13
0
 public RoundHandler(ITurnHandler turnHandler)
 {
     this.turnHandler = turnHandler;
 }
        public void Setup()
        {
            player = new Player("Player");
            var players = new[] { player };

            dice = new ControlledDice();
            var realEstateHandler = FakeHandlerFactory.CreateEmptyRealEstateHandler(players);

            landableSpaces = new Dictionary<Int32, UnownableSpace>();

            for (var i = 0; i < BoardConstants.BOARD_SIZE; i++)
                landableSpaces.Add(i, new LandableSpace());

            space6 = landableSpaces[6] as LandableSpace;
            space10 = landableSpaces[10] as LandableSpace;

            var spaceHandler = new UnownableHandler(landableSpaces);
            banker = new Banker(players);
            boardHandler = new BoardHandler(players, realEstateHandler, spaceHandler, banker);
            jailHandler = new JailHandler(dice, boardHandler, banker);
            turnHandler = new TurnHandler(dice, boardHandler, jailHandler, realEstateHandler, banker);
        }