예제 #1
0
        public void CanObserveConsistentGameStateChanges()
        {
            var gameStateService = GameStateService.Get();

            gameStateService.Init(10, 0);
            var stateObserverCalled = false;

            void StateValidator()
            {
                CanObserveConsistentGameStateChanges stateChanges = new CanObserveConsistentGameStateChanges();

                stateObserverCalled = true;
                ObserverController.Get().observableProperity.Register(stateChanges);
                ObserverController.Get().observableProperity.Propriety = new List <int> {
                    1, 9
                };
            }

            gameStateService.State.CoinsChanged += StateValidator;
            gameStateService.State.StarsChanged += StateValidator;

            var shopService = ShopService.Get();

            shopService.BuyStars(1, 1);
            ObserverController.Get().observableProperity.Notify();

            Assert.That(stateObserverCalled, "Obsever not called");
        }
예제 #2
0
        public JembiControllerTest()
        {
            _observationService = new Mock <IObservationService>();
            _observerManager    = new Mock <IObservationManager>();
            _config             = new Mock <IConfiguration>();

            controller = new ObserverController(_observationService.Object);
        }
        public void Start()
        {
            spriteRenderer     = GetComponent <SpriteRenderer>();
            animator           = GetComponent <Animator>();
            observerController = GetComponent <ObserverController>();
            movementController = GetComponent <CharacterMovementController>();

            currentState      = idleState;
            currentDirectionX = -1; // Enemies always initially face left

            if (!waypointLeft.Equals(Vector3.negativeInfinity) && !waypointRight.Equals(Vector3.negativeInfinity))
            {
                globalWaypointLeft  = waypointLeft + transform.position;
                globalWaypointRight = waypointRight + transform.position;

                waypointController = new WaypointController(globalWaypointLeft, globalWaypointRight);
            }
        }
예제 #4
0
        public void CanObserveGameStateChanges()
        {
            var gameStateService = GameStateService.Get();

            gameStateService.Init(10, 0);

            var gameState           = gameStateService.State;
            var stateObserverCalled = false;

            gameState.CoinsChanged += () =>
            {
                stateObserverCalled = true;

                ObserveGameStateChanges gameStateChanges = new ObserveGameStateChanges();
                ObserverController.Get().observableInt.Register(gameStateChanges);
                ObserverController.Get().observableInt.Propriety = 8;
            };
            ShopService.Get().UseCoins(2);

            //Note:-Assume That game state is in a consistent state.
            ObserverController.Get().observableInt.Notify();
            Assert.That(stateObserverCalled, "Obsever not called");
        }
예제 #5
0
 public void CreateObserverController <T>()
     where T : ObserverController
 {
     ObserverController = (ObserverController)Activator.CreateInstance(typeof(T), RobotAgents.Cast <Agent>().Concat(CartAgents), Tasks);
 }