public IEnumerator Board_Create_NotNull(int width, int height) { #region Create Board IBoard board = ObjectsCreator.CreateBoard(width, height); #endregion #region Check Board board.Initial(); Assert.IsNotNull(board); #endregion #region Remove From Scene yield return(new WaitForSeconds(0.25f)); foreach (var cell in board.Cells) { GameObject.Destroy(cell.CurrentGameObject); } #endregion }
public void NavigationManager_Create_NotNull() { IMasterManager masterManager = ObjectsCreator.CreateMasterManager(); INavigationManager navigationManager = new NavigationManager(masterManager); Assert.IsNotNull(navigationManager); }
private void Initialize() { dynamicObjects = ObjectsCreator.GetDynamicObjects(); bombsPowerupInfo = dynamicObjects.GetBombsImage(); flamesPowerupInfo = dynamicObjects.GetFlamesImage(); speedPowerupInfo = dynamicObjects.GetSpeedImage(); wallpassPowerupInfo = dynamicObjects.GetWallpassImage(); }
private void Initialize() { staticObjects = ObjectsCreator.GetStaticObjects(); dynamicObjects = ObjectsCreator.GetDynamicObjects(); fieldMatrix = new int[columnCount, rowCount]; floor = staticObjects.GetFloor(); concreteWall = staticObjects.GetConcreteWall(); brickWall = staticObjects.GetBrickWall(); powerups = staticObjects.GetPowerups(); }
public IEnumerator Cell_SwapAndUndo(SwapTypes swapType) { #region Create Managers IMasterManager masterManager = ObjectsCreator.CreateMasterManager(); ISpawnManager spawnManager = masterManager.SpawnManager; INotifier notifier = masterManager.GameplayNotifier; IUpdateManager updateManager = masterManager.UpdateManager; ICellRegistrator cellRegistrator = new CellRegistrator(notifier, updateManager); #endregion #region Create Cell Vector3 position = new Vector3(1, 1, 0); ICell cellA = spawnManager.SpawnRandomNormalCell(position); cellRegistrator.RegistrateNormalCell(cellA as NormalCell); #endregion #region SetUp UpdateManager updateManager.AddUpdatable(cellA as IUpdatable); updateManager.IsUpdate = true; #endregion yield return(new WaitForSeconds(0.3f)); #region Swap Cell and do Undo ICommand swapCommand = TestHelper.GetSwapCommand(swapType, cellA); swapCommand.Execute(); yield return(new WaitForSeconds(0.5f)); swapCommand.Undo(); #endregion #region Remove From Scene yield return(new WaitForSeconds(0.5f)); GameObject.Destroy(cellA.CurrentGameObject); #endregion }
public void Level_Create_NotNull() { int levelId = 2; int boardWidth = 3; int boardHeight = 9; ILevelTask levelTaskA = ObjectsCreator.CreateLevelTask(Strings.TAG_REDCIRCLE, 5); ILevelTask levelTaskB = ObjectsCreator.CreateLevelTask(Strings.TAG_BLUEMULTIANGLE, 2); ILevelTask[] levelTasks = new ILevelTask[] { levelTaskA, levelTaskB }; ILevel level = new Level(levelId, boardWidth, boardHeight, levelTasks); Assert.IsNotNull(level); }
public static IEnumerator Explode(GameObject explosionSource, float explosionDelay, float explosionDistance, Action <RaycastHit[]> callBack) { yield return(new WaitForSeconds(explosionDelay)); DynamicObjectsGeneratorBase dynamicObjects = ObjectsCreator.GetDynamicObjects(); GameObject explosion = dynamicObjects.GetExplosion(); GameObject gameObject = UnityEngine.Object.Instantiate(explosion, explosionSource.transform.position, Quaternion.identity); GameObject.Destroy(explosionSource); RaycastHit[] rayCastHits = GetHits(explosionSource, explosionDistance); callBack(rayCastHits); yield return(new WaitForSeconds(explosionDelay)); GameObject.Destroy(gameObject); }
public IEnumerator Board_CreateWithOnlyOneElementType(GameElementTypesEnum gameElement, int boardWidth, int boardHeight) { #region Create Board IObjectStorage objectStorage = new ObjectStorage(); ISpawnManager spawnManager = new SpawnManager(objectStorage); IBoard board = ObjectsCreator.CreateBoard(boardWidth, boardHeight); #endregion yield return(null); #region Fill Board for (int i = 0; i < board.Width; i++) { for (int j = 0; j < board.Height; j++) { if (board.Cells[i, j] == null) { Vector2 tempPos = new Vector2(i, j); ICell newCell = spawnManager.SpawnNormalCell(gameElement, tempPos); board.Cells[i, j] = newCell; yield return(new WaitForSeconds(.1f)); } } } #endregion #region Remove From Scene yield return(new WaitForSeconds(.5f)); foreach (var cell in board.Cells) { GameObject.Destroy(cell.CurrentGameObject); } #endregion }
public IEnumerator Board_CreateFromLevel_ExpectedEqualHeight(int boardHeight, int expectedResult) { #region Create Level int levelID = 1; int boardWidth = 5; ILevelTask levelTaskA = ObjectsCreator.CreateLevelTask(Strings.TAG_REDCIRCLE, 5); ILevelTask levelTaskB = ObjectsCreator.CreateLevelTask(Strings.TAG_BLUEMULTIANGLE, 12); ILevelTask[] levelTasks = new[] { levelTaskA, levelTaskB }; ILevel level = ObjectsCreator.CreateLevel(levelID, boardWidth, boardHeight, levelTasks); #endregion #region Create Board int width = level.BoardWidth; int height = level.BoardHeight; IBoard board = ObjectsCreator.CreateBoard(width, height); #endregion #region Fill And Check Board board.Initial(); Assert.That(board.Height, Is.EqualTo(expectedResult)); #endregion #region Remove From Scene yield return(new WaitForSeconds(.5f)); foreach (var cell in board.Cells) { GameObject.Destroy(cell.CurrentGameObject); } #endregion }
public IEnumerator Board_CreateFromLevel_NotNull() { #region create level int levelID = 1; int boardWidth = 5; int boardHeight = 5; ILevelTask levelTaskA = ObjectsCreator.CreateLevelTask(Strings.TAG_REDCIRCLE, 5); ILevelTask levelTaskB = ObjectsCreator.CreateLevelTask(Strings.TAG_BLUEMULTIANGLE, 12); ILevelTask[] levelTasks = new[] { levelTaskA, levelTaskB }; ILevel level = ObjectsCreator.CreateLevel(levelID, boardWidth, boardHeight, levelTasks); #endregion #region create Board int width = level.BoardWidth; int height = level.BoardHeight; IBoard board = ObjectsCreator.CreateBoard(width, height); #endregion #region Check board board.Initial(); Assert.IsNotNull(board); #endregion #region Remove From Scene yield return(new WaitForSeconds(0.25f)); foreach (var cell in board.Cells) { GameObject.Destroy(cell.CurrentGameObject); } #endregion }
public void GameplayLogicManager_Create_NotNull() { IGameplayLogicManager gameplayLogicManager = ObjectsCreator.CreateGameplayLogicManager(); Assert.IsNotNull(gameplayLogicManager); }
public IEnumerator Cells_TryCheck(int equalsCellsCount, bool isVertical) { #region Create Managers And Board IMasterManager masterManager; ICellRegistrator cellRegistrator; IBoard board = ObjectsCreator.CreateBoard(equalsCellsCount + 3, equalsCellsCount + 3, out masterManager, out cellRegistrator); IUpdateManager updateManager = masterManager.UpdateManager; IGameplayLogicManager gameplayLogicManager = ObjectsCreator.CreateGameplayLogicManager(); INotifier gameplayNotifier = masterManager.GameplayNotifier; ISpawnManager spawnManager = masterManager.SpawnManager; IInputManager inputManager = new InputManager(gameplayNotifier); ICheckManager checkManager = new CheckManager(); #endregion #region Create Cells int startX = 2; int startY = 2; ICell swipedCell = null; for (int i = 0; i < equalsCellsCount; i++) { int x = startX; int y = startY; if (isVertical) { if (i == Mathf.Floor(equalsCellsCount / 2)) { x = startX + 1; } else { x = startX; } y = startY + i; } else { if (i == Mathf.Floor(equalsCellsCount / 2)) { y = startY + 1; } else { y = startY; } x = startX + i; } ICell cell = new NormalCell(x, y); cell.CurrentGameObject = spawnManager.SpawnPrefab(GameElementTypesEnum.RedCircle, new Vector3(x, y, 0)); cellRegistrator.RegistrateNormalCell(cell as NormalCell); board.Cells[cell.TargetX, cell.TargetY] = cell; if (i == Mathf.Floor(equalsCellsCount / 2)) { swipedCell = board.Cells[cell.TargetX, cell.TargetY]; } } #endregion yield return(new WaitForSeconds(1f)); #region SetUp Board And Managers board.Initial(); checkManager.Board = board; gameplayLogicManager.Board = board; gameplayLogicManager.CheckManager = checkManager; gameplayLogicManager.SpawnManager = spawnManager; gameplayLogicManager.Notifier = masterManager.UINotifier; inputManager.AddSubscriber(gameplayLogicManager); updateManager.AddUpdatable(inputManager as IUpdatable); updateManager.IsUpdate = true; #endregion yield return(new WaitForSeconds(1f)); #region Create And SetUp MacroCommand to use swap cells ICommand[] commands; if (isVertical) { commands = new ICommand[] { new SwipeLeftCommand(swipedCell), new SwipeRightCommand(board.Cells[swipedCell.TargetX - 1, swipedCell.TargetY]), }; } else { commands = new ICommand[] { new SwipeDownCommand(swipedCell), new SwipeUpCommand(board.Cells[swipedCell.TargetX, swipedCell.TargetY - 1]), }; } ICommand macroCommand = new MacroCommand(commands); gameplayLogicManager.MacroCommand = macroCommand; #endregion #region Try Swap Cells and get Check gameplayLogicManager.MacroCommand.Execute(); yield return(new WaitForSeconds(1f)); gameplayLogicManager.TryCheckSwipedCells(swipedCell); #endregion #region Remove From Scene yield return(new WaitForSeconds(0.2f)); updateManager.IsUpdate = false; foreach (var boadrdCell in board.Cells) { updateManager.RemoveUpdatable(boadrdCell as IUpdatable); } foreach (var cell in board.Cells) { GameObject.Destroy(cell.CurrentGameObject); } #endregion }
public void LevelTask_Create_NotNull() { ILevelTask levelTask = ObjectsCreator.CreateLevelTask(Strings.TAG_REDCIRCLE, 5); Assert.IsNotNull(levelTask); }
public void UpdateManager_Create_NotNull() { IUpdateManager updateManager = ObjectsCreator.CreateUpdateManager(); Assert.IsNotNull(updateManager); }
public void TaskManager_Create_NotNull() { ITaskManager taskManager = ObjectsCreator.CreateTaskManager(); Assert.IsNotNull(taskManager); }
public IEnumerator PowerUp_UseOnePowerUp_Review(PowerUpTypesEnum powerUpTypeEnum) { #region Create Managers IMasterManager masterManager; ICellRegistrator cellRegistrator; IBoard board = ObjectsCreator.CreateBoard(9, 9, out masterManager, out cellRegistrator); IUpdateManager updateManager = masterManager.UpdateManager; IGameplayLogicManager gameplayLogicManager = ObjectsCreator.CreateGameplayLogicManager(); INotifier gameplayNotifier = masterManager.GameplayNotifier; ISpawnManager spawnManager = masterManager.SpawnManager; IInputManager inputManager = new InputManager(gameplayNotifier); ICheckManager checkManager = new CheckManager(); #endregion #region Create And SetUp Cell with PowerUp ICell cellWithPowerUp = new NormalCell(4, 4); Vector3 cellPosition = new Vector2(4, 4); cellWithPowerUp.CurrentGameObject = spawnManager.SpawnPowerPrefab(powerUpTypeEnum, cellPosition); cellRegistrator.RegistrateNormalCell(cellWithPowerUp as NormalCell); board.Cells[cellWithPowerUp.TargetX, cellWithPowerUp.TargetY] = cellWithPowerUp; #endregion yield return(new WaitForSeconds(0.1f)); #region SetUp Board and Managers board.Initial(); checkManager.Board = board; gameplayLogicManager.Board = board; gameplayLogicManager.CheckManager = checkManager; gameplayLogicManager.SpawnManager = spawnManager; gameplayLogicManager.Notifier = new Notifier(); inputManager.AddSubscriber(gameplayLogicManager); updateManager.AddUpdatable(inputManager as IUpdatable); updateManager.IsUpdate = true; #endregion yield return(new WaitForSeconds(0.3f)); #region Try Use PowerUp int swipeCount = 2; gameplayLogicManager.TryCheckSwipedCells(cellWithPowerUp, swipeCount); #endregion #region Remove From Scene yield return(new WaitForSeconds(2f)); updateManager.IsUpdate = false; foreach (var cell in board.Cells) { GameObject.Destroy(cell.CurrentGameObject); } #endregion }
public void MasterManager_Create_NotNull() { IMasterManager masterManager = ObjectsCreator.CreateMasterManager(); Assert.IsNotNull(masterManager); }
public void Coroutine_Create_NotNull() { ICoroutiner coroutiner = ObjectsCreator.CreateCoroutiner(); Assert.IsNotNull(coroutiner); }
public IEnumerator PowerUp_UseTwoPowerUp_Review(PowerUpTypesEnum powerUpTypeEnumA, PowerUpTypesEnum powerUpTypeEnumB) { #region Create Managers IMasterManager masterManager; ICellRegistrator cellRegistrator; IBoard board = ObjectsCreator.CreateBoard(9, 9, out masterManager, out cellRegistrator); IUpdateManager updateManager = masterManager.UpdateManager; IGameplayLogicManager gameplayLogicManager = ObjectsCreator.CreateGameplayLogicManager(); INotifier gameplayNotifier = masterManager.GameplayNotifier; ISpawnManager spawnManager = masterManager.SpawnManager; IInputManager inputManager = new InputManager(gameplayNotifier); ICheckManager checkManager = new CheckManager(); #endregion #region Create And SetUp Cells with PowerUp IList <ICell> cellsWithPowerUp = new List <ICell>(); IList <Vector3> positions = new List <Vector3>(); switch (powerUpTypeEnumA) { case PowerUpTypesEnum.Bomb: positions.Add(new Vector2(4, 4)); positions.Add(new Vector2(2, 4)); break; case PowerUpTypesEnum.Vertical: positions.Add(new Vector2(3, 3)); positions.Add(new Vector2(3, 6)); break; case PowerUpTypesEnum.Horizontal: positions.Add(new Vector2(3, 3)); positions.Add(new Vector2(6, 3)); break; } for (int i = 0; i < 2; i++) { ICell cell = new NormalCell((int)positions[i].x, (int)positions[i].y); Vector3 cellPosition = new Vector2((int)positions[i].x, (int)positions[i].y); cell.CurrentGameObject = spawnManager.SpawnPowerPrefab(i == 0 ? powerUpTypeEnumA : powerUpTypeEnumB, positions[i]); cellRegistrator.RegistrateNormalCell(cell as NormalCell); board.Cells[cell.TargetX, cell.TargetY] = cell; cellsWithPowerUp.Add(cell); } #endregion yield return(new WaitForSeconds(0.1f)); #region SetUp Board and Managers board.Initial(); checkManager.Board = board; gameplayLogicManager.Board = board; gameplayLogicManager.CheckManager = checkManager; gameplayLogicManager.SpawnManager = spawnManager; gameplayLogicManager.Notifier = new Notifier(); inputManager.AddSubscriber(gameplayLogicManager); updateManager.AddUpdatable(inputManager as IUpdatable); updateManager.IsUpdate = true; #endregion yield return(new WaitForSeconds(0.3f)); #region Try Use PowerUp int swipeCount = 2; gameplayLogicManager.TryCheckSwipedCells(cellsWithPowerUp[0], swipeCount); #endregion #region Remove From Scene yield return(new WaitForSeconds(2f)); updateManager.IsUpdate = false; foreach (var cell in board.Cells) { GameObject.Destroy(cell.CurrentGameObject); } #endregion }
public void CellRegistrator_Create_NotNull() { ICellRegistrator cellRegistrator = ObjectsCreator.CreateCellRegistrator(); Assert.IsNotNull(cellRegistrator); }