Exemple #1
0
        public EULALogicProvider(ILogicHandler logicHandler, IGameEngineInterface gameEngineInterface, IDataLayer dataLayer)
            : base(logicHandler, gameEngineInterface, dataLayer)
        {
            var btnEULAAccept = _gameEngineInterface.FindGameObject("btnEULAAccept");

            btnEULAAccept.LogicHandler = _logicHandler;

            var btnEULACancel = _gameEngineInterface.FindGameObject("btnEULACancel");

            btnEULACancel.LogicHandler = _logicHandler;

            var btnEULAPrompt = _gameEngineInterface.FindGameObject("btnEULAPrompt");

            btnEULAPrompt.LogicHandler = _logicHandler;

            var btnPrivacyPolicyPrompt = _gameEngineInterface.FindGameObject("btnPrivacyPolicyPrompt");

            btnPrivacyPolicyPrompt.LogicHandler = _logicHandler;

            _pnlEULA = _gameEngineInterface.FindGameObject("pnlEULA");

            if (_dataLayer.GetIsEULAAccepted())
            {
                _pnlEULA.SetActive(false);
            }

            _buttonHandlers.Add("btnEULAAccept", btnAccept_Click);
            _buttonHandlers.Add("btnEULACancel", btnCancel_Click);
            _buttonHandlers.Add("btnEULAPrompt", btnEULA_Click);
            _buttonHandlers.Add("btnPrivacyPolicyPrompt", btnPrivacyPolicy_Click);
        }
        public void TestInitialize()
        {
            _gameController      = Substitute.For <IGameController>();
            _logicHandler        = Substitute.For <ILogicHandler>();
            _gameEngineInterface = Substitute.For <IGameEngineInterface>();
            _dataLayer           = Substitute.For <IDataLayer>();

            _audioSourceShip = Substitute.For <IAudioSource>();

            _playerShip           = Substitute.For <IGameObject>();
            _playerShip.Transform = Substitute.For <ITransform>();

            _camera = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("MainCamera").Returns(_camera);
            _camera.Transform.Position.Returns(new Vector3(0, 0, 0));

            _sourceAsteroid = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("sourceAsteroid").Returns(_sourceAsteroid);
            _sourceAsteroid.Transform.Position.Returns(new Vector3(0, 0, 0));

            _playerShipScript = Substitute.For <IPlayerShipScript>();
            _playerShipScript.Health.Returns(100);

            _playerShip.GetSize().Returns(new Vector3(10, 10, 10));

            _gameEngineInterface.Screen.Width.Returns(SCREEN_WIDTH);
            _logicHandler.GameController = _gameController;

            _asteroidPlacementLogicImplementer = Substitute.For <IAsteroidPlacementLogicImplementer>();

            _gameLogicProvider = new GameLogicProvider(_logicHandler, _gameEngineInterface, _dataLayer, _asteroidPlacementLogicImplementer); //todo 2nd game: couldn't get Substitute.ForPartsOf to work, so I had to mock all the stuff needed for the call to InitStage()

            _gameEngineInterface.Time = Substitute.For <ITime>();
            _gameEngineInterface.Time.DeltaTime.Returns(1);
        }
        public void TestInitialize()
        {
            _logicHandler        = Substitute.For <ILogicHandler>();
            _gameEngineInterface = Substitute.For <IGameEngineInterface>();
            _dataLayer           = Substitute.For <IDataLayer>();

            _gameEngineInterface.AppVersion.Returns("1.0.0.0");

            _btnPrivacyPolicy = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("btnPrivacyPolicy").Returns(_btnPrivacyPolicy);

            _btnHowToPlay = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("btnHowToPlay").Returns(_btnHowToPlay);

            _btnShare = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("_btnShare").Returns(_btnShare); //todo: howcome the UT works with a misnamed button?

            var txtVersionNumberGameObject = Substitute.For <IGameObject>();

            _txtVersionNumber = Substitute.For <IText>();
            txtVersionNumberGameObject.GetComponent <IText>().Returns(_txtVersionNumber);
            _gameEngineInterface.FindGameObject("txtVersionNumber").Returns(txtVersionNumberGameObject);

            _pnlMainMenu = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("pnlMainMenu").Returns(_pnlMainMenu);

            _inMenuLogicProvider = new InMenuLogicProvider(_logicHandler, _gameEngineInterface, _dataLayer);
        }
        public void OnStart(IGameEngineInterface gameEngineInterface, IDataLayer dataLayer, IStoreLogicService storeLogicService)
        {
            GameEngineInterface = gameEngineInterface;
            DataLayer           = dataLayer;

            MenuLogicHandler.GameController = this;
            GameLogicHandler.GameController = this;

            MenuLogicHandler.GameEngineInterface = gameEngineInterface;
            GameLogicHandler.GameEngineInterface = gameEngineInterface;

            GameEngineInterface.AppStoreService.OnAppStoreInitialized           = storeLogicService.OnProductsLoaded;
            GameEngineInterface.AppStoreService.OnPurchaseSucceededEventHandler = storeLogicService.OnAppStorePurchaseSucceeded;
            storeLogicService.OnProductsConverted = OnProductsConvertedHandler;

            GameEngineInterface.VSyncCount = 1;

            storeLogicService.DataLayer = dataLayer;

            if (CurLevel == null)                   //CurLevel will only be null the very first time the app is loaded.
            {
                CurLevel = dataLayer.GetCurLevel(); //the player's current level is the default value for the Choose Level screen
            }

            //GameEngineInterface.LogToConsole(string.Format("screen size: {0} x {1} px", GameEngineInterface.Screen.Width, GameEngineInterface.Screen.Height));
        }
Exemple #5
0
        public void TestInitialize()
        {
            _logicHandler        = Substitute.For <ILogicHandler>();
            _gameEngineInterface = Substitute.For <IGameEngineInterface>();
            _dataLayer           = Substitute.For <IDataLayer>();

            _winLogicProvider = new WinLogicProvider(_logicHandler, _gameEngineInterface, _dataLayer);
        }
        public BaseLogicProvider(ILogicHandler logicHandler, IGameEngineInterface gameEngineInterface, IDataLayer dataLayer)
        {
            _logicHandler        = logicHandler;
            _gameEngineInterface = gameEngineInterface;
            _dataLayer           = dataLayer;

            ClearInputStates();
        }
        public void TestInitialize()
        {
            _logicHandler = Substitute.For <ILogicHandler>();
            _logicHandler.GameController = Substitute.For <IGameController>();

            _gameEngineInterface = Substitute.For <IGameEngineInterface>();
            _dataLayer           = Substitute.For <IDataLayer>();

            _chooseLevelLogicProvider = new ChooseLevelLogicProvider(_logicHandler, _gameEngineInterface, _dataLayer);
        }
Exemple #8
0
        public AsteroidPlacementLogicImplementer(IGameEngineInterface gameEngineInterface, int asteroidDensity)
        {
            _gameEngineInterface = gameEngineInterface;
            _asteroidDensity     = asteroidDensity;

            var playerShip = gameEngineInterface.FindGameObject("PlayerShip");

            SHIP_WIDTH = playerShip.GetSize().X;

            AllAsteroids = new List <IGameObject>();
        }
        public GameLogicProvider(ILogicHandler gameLogicHandler, IGameEngineInterface gameEngineInterface, IDataLayer dataLayer, IAsteroidPlacementLogicImplementer asteroidPlacementLogicImplementer)
            : base(gameLogicHandler, gameEngineInterface, dataLayer)
        {
            _halfScreenWidth = _gameEngineInterface.Screen.Width / 2;

            _inputStates[InputAxis.Horizontal] = 0f;
            _inputStates[InputAxis.Cancel]     = 0f;

            _gameEngineInterface.TimeScale = 1;

            _asteroidPlacementLogicImplementer = asteroidPlacementLogicImplementer;
        }
        public void TestInitialize()
        {
            _logicHandler        = Substitute.For <ILogicHandler>();
            _gameEngineInterface = Substitute.For <IGameEngineInterface>();

            _pnlHowToPlay = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("pnlHowToPlay").Returns(_pnlHowToPlay);

            _btnHowToPlayOk = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("btnHowToPlayOk").Returns(_btnHowToPlayOk);

            _howToPlayLogicProvider = new HowToPlayLogicProvider(_logicHandler, _gameEngineInterface, _dataLayer);
        }
        public void TestInitialize()
        {
            _sourceAsteroid = Substitute.For <IGameObject>();
            _playerShip     = Substitute.For <IGameObject>();
            _mainCamera     = Substitute.For <IGameObject>();

            _gameEngineInterface = Substitute.For <IGameEngineInterface>();
            _gameEngineInterface.FindGameObject("PlayerShip").Returns(_playerShip);
            _gameEngineInterface.FindGameObject("Asteroid").Returns(_sourceAsteroid);
            _gameEngineInterface.FindGameObject("MainCamera").Returns(_mainCamera);

            _sourceAsteroid.GetSize().X.Returns(2);
            _playerShip.GetSize().X.Returns(10);

            _asteroidPlacementLogicImplementer = new AsteroidPlacementLogicImplementer(_gameEngineInterface, _asteroidDensity);
            _asteroidPlacementLogicImplementer.SourceAsteroid   = _sourceAsteroid;
            _asteroidPlacementLogicImplementer.LogToDebugOutput = LogToDebugOutput;

            SetPrivateMember("X_MAX", _asteroidPlacementLogicImplementer, 40);
            SetPrivateMember("_asteroidDensity", _asteroidPlacementLogicImplementer, 1);

            //asserts for constructor test:
            _playerShip.Received().GetSize();
            _sourceAsteroid.Received().GetSize();

            _gameEngineInterface.Received(1).FindGameObject("PlayerShip");

            //these mocks used to be part of CalculateXMinAndXMax
            const float CAMERA_HEIGHT = 5;
            const int   SCREEN_WIDTH  = 100; //the screen is 100 pixels wide

            var leftEdgeOfScreen  = new Vector3(0, 0, 0);
            var rightEdgeOfScreen = new Vector3(SCREEN_WIDTH, 0, 0);

            _sourceAsteroid.Transform.Position.Y.Returns(0);
            _mainCamera.Transform.Position.Y.Returns(CAMERA_HEIGHT);

            _gameEngineInterface.Screen.Width.Returns(SCREEN_WIDTH);

            _gameEngineInterface.ScreenUtils = Substitute.For <IScreenUtils>();
            _gameEngineInterface.ScreenUtils
            .GetWorldPointFromScreenPoint(Arg.Is <IVector3>(v => v.X == 0 && v.Y == 0 && v.Z == CAMERA_HEIGHT))
            .Returns(new Vector3(0, 0, 0));

            _gameEngineInterface.ScreenUtils
            .GetWorldPointFromScreenPoint(Arg.Is <IVector3>(v => v.X == SCREEN_WIDTH && v.Y == 0 && v.Z == CAMERA_HEIGHT))
            .Returns(new Vector3(WORLD_WIDTH, 0, 0));
        }
        public void TestInitialize()
        {
            _gameEngineInterface = Substitute.For <IGameEngineInterface>();

            _logicHandler = Substitute.For <ILogicHandler>();

            _btnOutOfLivesOk = Substitute.For <IGameObject>();
            _pnlOutOfLives   = Substitute.For <IGameObject>();
            _txtDebugOutput  = Substitute.For <IGameObject>();

            _outOfLivesLogicProvider = new OutOfLivesLogicProvider(_logicHandler, _gameEngineInterface, _dataLayer);

            _gameEngineInterface.FindGameObject("btnOutOfLivesOk").Returns(_btnOutOfLivesOk);
            _gameEngineInterface.FindGameObject("pnlOutOfLives").Returns(_pnlOutOfLives);
            _gameEngineInterface.FindGameObject("txtDebugOutput").Returns(_txtDebugOutput);
        }
Exemple #13
0
 public LoseTransitionLogicProvider(ILogicHandler logicHandler, IGameEngineInterface gameEngineInterface, IDataLayer dataLayer)
     : base(logicHandler, gameEngineInterface, dataLayer)
 {
 }
Exemple #14
0
 public HowToPlayLogicProvider(ILogicHandler logicHandler, IGameEngineInterface gameEngineInterface, IDataLayer dataLayer) : base(logicHandler, gameEngineInterface, dataLayer)
 {
 }
Exemple #15
0
 public ChooseLevelLogicProvider(ILogicHandler logicHandler, IGameEngineInterface gameEngineInterface, IDataLayer dataLayer)
     : base(logicHandler, gameEngineInterface, dataLayer)
 {
 }
 public PauseLogicProvider(ILogicHandler logicHandler, IGameEngineInterface gameEngineInterface, IDataLayer dataLayer)
     : base(logicHandler, gameEngineInterface, dataLayer)
 {
     _pnlPauseMenu = null;
 }
Exemple #17
0
 public LoseLogicProvider(IGameController gameController, ILogicHandler logicHandler, IGameEngineInterface gameEngineInterface, IDataLayer dataLayer)
     : base(logicHandler, gameEngineInterface, dataLayer)
 {
     _gameController = gameController;
 }
Exemple #18
0
 public OutOfLivesLogicProvider(ILogicHandler logicHandler, IGameEngineInterface gameEngineInterface, IDataLayer dataLayer)
     : base(logicHandler, gameEngineInterface, dataLayer)
 {
 }
        public void TestInitialize()
        {
            _logicHandler        = Substitute.For <ILogicHandler>();
            _gameEngineInterface = Substitute.For <IGameEngineInterface>();
            _dataLayer           = Substitute.For <IDataLayer>();

            _gameController = Substitute.For <IGameController>();
            _logicHandler.GameController.Returns(_gameController);
            _productInfoViewModels = new List <ProductInfoViewModel>()
            {
                new ProductInfoViewModel {
                    ProductId = Constants.ProductNames.BuyLivesSmall, PriceString = "$0.99", SavePctString = string.Empty
                },
                new ProductInfoViewModel {
                    ProductId = Constants.ProductNames.BuyLivesMedium, PriceString = "$1.99", SavePctString = "SAVE 30%"
                },
                new ProductInfoViewModel {
                    ProductId = Constants.ProductNames.BuyLivesLarge, PriceString = "$2.99", SavePctString = "SAVE 40%"
                },
            };
            _gameController.ProductsForUI.Returns(_productInfoViewModels);

            _dataLayer.GetNumLivesRemaining().Returns(10);

            _getMoreLivesLogicProvider = new GetMoreLivesLogicProvider(_logicHandler, _gameEngineInterface, _dataLayer);

            _pnlGetMoreLives = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("pnlGetMoreLives").Returns(_pnlGetMoreLives);

            _btnCancel = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("btnGetMoreLivesCancel").Returns(_btnCancel);

            _btnBuyLivesSmall = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("btnBuyLivesSmall").Returns(_btnBuyLivesSmall);

            _btnBuyLivesMedium = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("btnBuyLivesMedium").Returns(_btnBuyLivesMedium);

            _btnBuyLivesLarge = Substitute.For <IGameObject>();
            _gameEngineInterface.FindGameObject("btnBuyLivesLarge").Returns(_btnBuyLivesLarge);

            _txtCurrentLivesGameObject = Substitute.For <IGameObject>();
            _txtCurrentLives           = Substitute.For <IText>();
            _txtCurrentLivesGameObject.GetComponent <IText>().Returns(_txtCurrentLives);
            _gameEngineInterface.FindGameObject("txtCurrentLives").Returns(_txtCurrentLivesGameObject);

            var txtDebugOutputGameObject = Substitute.For <IGameObject>();

            _txtDebugOutput = Substitute.For <IText>();
            txtDebugOutputGameObject.GetComponent <IText>().Returns(_txtDebugOutput);
            _gameEngineInterface.FindGameObject("txtDebugOutput").Returns(txtDebugOutputGameObject);

            _buttonAndSaveLabels[Constants.ProductNames.BuyLivesSmall] = new Tuple <IText, IText>(Substitute.For <IText>(), Substitute.For <IText>());
            _btnBuyLivesSmall.GetComponent <IText>().Returns(_buttonAndSaveLabels[Constants.ProductNames.BuyLivesSmall].Item1);

            _buttonAndSaveLabels[Constants.ProductNames.BuyLivesMedium] = new Tuple <IText, IText>(Substitute.For <IText>(), Substitute.For <IText>());
            _btnBuyLivesMedium.GetComponent <IText>().Returns(_buttonAndSaveLabels[Constants.ProductNames.BuyLivesMedium].Item1);
            var savePctMediumGameObj = Substitute.For <IGameObject>();

            savePctMediumGameObj.GetComponent <IText>().Returns(_buttonAndSaveLabels[Constants.ProductNames.BuyLivesMedium].Item2);
            _gameEngineInterface.FindGameObject("txtBuyLivesMediumSavePct").Returns(savePctMediumGameObj);


            _buttonAndSaveLabels[Constants.ProductNames.BuyLivesLarge] = new Tuple <IText, IText>(Substitute.For <IText>(), Substitute.For <IText>());
            _btnBuyLivesLarge.GetComponent <IText>().Returns(_buttonAndSaveLabels[Constants.ProductNames.BuyLivesLarge].Item1);
            var savePctLargeGameObj = Substitute.For <IGameObject>();

            savePctLargeGameObj.GetComponent <IText>().Returns(_buttonAndSaveLabels[Constants.ProductNames.BuyLivesLarge].Item2);
            _gameEngineInterface.FindGameObject("txtBuyLivesLargeSavePct").Returns(savePctLargeGameObj);
        }