public static bool Move(Piece character, int direction, int cost) { //up if (direction == 1) { bool inWay = false; PlayerControls.ClearAllGrids(); //check for other characters in the way for (int i = 0; i < Board.possibleMoveableChars.Length; i++) { if (Board.possibleMoveableChars[i] == character) { continue; } if (Board.possibleMoveableChars[i].rowPosition == character.rowPosition - 1 && Board.possibleMoveableChars[i].colPosition == character.colPosition) { inWay = true; } } for (int i = 0; i < Board.spawnedEnemies.Count; i++) { if (Board.spawnedEnemies[i].rowPosition == character.rowPosition - 1 && Board.spawnedEnemies[i].colPosition == character.colPosition) { inWay = true; } } //check for dead spaces in the way for (int i = 0; i < Board.numDeadSpaces; i++) { if (Board.deadPoints[i].y == character.rowPosition - 1 && Board.deadPoints[i].x == character.colPosition) { inWay = true; } } //check for cannons in the way for (int i = 0; i < Board.numCannons; i++) { if (Board.allCannons[i].cannon.rowPosition == character.rowPosition - 1 && Board.allCannons[i].cannon.colPosition == character.colPosition) { inWay = true; //Board.allCannons[i].UseCannon(Board.spawnedEnemies, 5); } } //check for generators in the way for (int i = 0; i < Board.numGenerators; i++) { if (Board.generators[i].generator.rowPosition == character.rowPosition - 1 && Board.generators[i].generator.colPosition == character.colPosition) { inWay = true; //Board.allCannons[i].UseCannon(Board.spawnedEnemies, 5); } } if (SceneManager.GetActiveScene().buildIndex == 2 && Board.pirateBoss.colPosition == character.colPosition && Board.pirateBoss.rowPosition == character.rowPosition - 1) { inWay = true; } if (!inWay && ExperimentalResources.ModifyResource(cost)) { character.prevPos = character.thePiece.transform.position; character.SetRowAndCol(character.rowPosition - 1, character.colPosition); PlayerControls.UnoccupiedSpaceEnable(character); character.currPos = GameObject.Find("gridRow" + (character.rowPosition) + "Column" + (character.colPosition)).transform.position; return(true); } } //right else if (direction == 2) { PlayerControls.ClearAllGrids(); bool inWay = false; //check for other characters in the way for (int i = 0; i < Board.possibleMoveableChars.Length; i++) { if (Board.possibleMoveableChars[i] == character) { continue; } if (Board.possibleMoveableChars[i].colPosition == character.colPosition + 1 && Board.possibleMoveableChars[i].rowPosition == character.rowPosition) { inWay = true; } } for (int i = 0; i < Board.spawnedEnemies.Count; i++) { if (Board.spawnedEnemies[i].colPosition == character.colPosition + 1 && Board.spawnedEnemies[i].rowPosition == character.rowPosition) { inWay = true; } } //check for dead spaces in the way for (int i = 0; i < Board.numDeadSpaces; i++) { if (Board.deadPoints[i].x == character.colPosition + 1 && Board.deadPoints[i].y == character.rowPosition) { inWay = true; } } //check for cannons in the way for (int i = 0; i < Board.numCannons; i++) { if (Board.allCannons[i].cannon.colPosition == character.colPosition + 1 && Board.allCannons[i].cannon.rowPosition == character.rowPosition) { inWay = true; //Board.allCannons[i].UseCannon(Board.spawnedEnemies, 5); } } //check for generators in the way for (int i = 0; i < Board.numGenerators; i++) { if (Board.generators[i].generator.rowPosition == character.rowPosition && Board.generators[i].generator.colPosition == character.colPosition + 1) { inWay = true; //Board.allCannons[i].UseCannon(Board.spawnedEnemies, 5); } } if (SceneManager.GetActiveScene().buildIndex == 2 && Board.pirateBoss.colPosition == character.colPosition + 1 && Board.pirateBoss.rowPosition == character.rowPosition) { inWay = true; } if (!inWay && ExperimentalResources.ModifyResource(cost)) { character.prevPos = character.thePiece.transform.position; character.SetRowAndCol(character.rowPosition, character.colPosition + 1); PlayerControls.UnoccupiedSpaceEnable(character); character.currPos = GameObject.Find("gridRow" + (character.rowPosition) + "Column" + (character.colPosition)).transform.position; return(true); } } //down else if (direction == 3) { bool inWay = false; PlayerControls.ClearAllGrids(); //check for other characters in the way for (int i = 0; i < Board.possibleMoveableChars.Length; i++) { if (Board.possibleMoveableChars[i] == character) { continue; } if (Board.possibleMoveableChars[i].rowPosition == character.rowPosition + 1 && Board.possibleMoveableChars[i].colPosition == character.colPosition) { inWay = true; } } for (int i = 0; i < Board.spawnedEnemies.Count; i++) { if (Board.spawnedEnemies[i].rowPosition == character.rowPosition + 1 && Board.spawnedEnemies[i].colPosition == character.colPosition) { inWay = true; } } //check for dead spaces in the way for (int i = 0; i < Board.numDeadSpaces; i++) { if (Board.deadPoints[i].y == character.rowPosition + 1 && Board.deadPoints[i].x == character.colPosition) { inWay = true; } } //check for cannons in the way for (int i = 0; i < Board.numCannons; i++) { if (Board.allCannons[i].cannon.rowPosition == character.rowPosition + 1 && Board.allCannons[i].cannon.colPosition == character.colPosition) { inWay = true; //Board.allCannons[i].UseCannon(Board.spawnedEnemies, 5); } } //check for generators in the way for (int i = 0; i < Board.numGenerators; i++) { if (Board.generators[i].generator.rowPosition == character.rowPosition + 1 && Board.generators[i].generator.colPosition == character.colPosition) { inWay = true; //Board.allCannons[i].UseCannon(Board.spawnedEnemies, 5); } } if (SceneManager.GetActiveScene().buildIndex == 2 && Board.pirateBoss.colPosition == character.colPosition && Board.pirateBoss.rowPosition == character.rowPosition + 1) { inWay = true; } if (!inWay && ExperimentalResources.ModifyResource(cost)) { character.prevPos = character.thePiece.transform.position; character.SetRowAndCol(character.rowPosition + 1, character.colPosition); PlayerControls.UnoccupiedSpaceEnable(character); character.currPos = GameObject.Find("gridRow" + (character.rowPosition) + "Column" + (character.colPosition)).transform.position; return(true); } } //left else { bool inWay = false; PlayerControls.ClearAllGrids(); for (int i = 0; i < Board.possibleMoveableChars.Length; i++) { if (Board.possibleMoveableChars[i] == character) { continue; } if (Board.possibleMoveableChars[i].colPosition == character.colPosition - 1 && Board.possibleMoveableChars[i].rowPosition == character.rowPosition) { inWay = true; } } for (int i = 0; i < Board.spawnedEnemies.Count; i++) { if (Board.spawnedEnemies[i].colPosition == character.colPosition - 1 && Board.spawnedEnemies[i].rowPosition == character.rowPosition) { inWay = true; } } //check for dead spaces in the way for (int i = 0; i < Board.numDeadSpaces; i++) { if (Board.deadPoints[i].x == character.colPosition - 1 && Board.deadPoints[i].y == character.rowPosition) { inWay = true; } } //check for cannons in the way for (int i = 0; i < Board.numCannons; i++) { if (Board.allCannons[i].cannon.colPosition == character.colPosition - 1 && Board.allCannons[i].cannon.rowPosition == character.rowPosition) { inWay = true; //Board.allCannons[i].UseCannon(Board.spawnedEnemies, 5); } } //check for generators in the way for (int i = 0; i < Board.numGenerators; i++) { if (Board.generators[i].generator.rowPosition == character.rowPosition && Board.generators[i].generator.colPosition == character.colPosition - 1) { inWay = true; //Board.allCannons[i].UseCannon(Board.spawnedEnemies, 5); } } if (SceneManager.GetActiveScene().buildIndex == 2 && Board.pirateBoss.colPosition == character.colPosition - 1 && Board.pirateBoss.rowPosition == character.rowPosition) { inWay = true; } if (!inWay && ExperimentalResources.ModifyResource(cost)) { character.prevPos = character.thePiece.transform.position; character.SetRowAndCol(character.rowPosition, character.colPosition - 1); PlayerControls.UnoccupiedSpaceEnable(character); character.currPos = GameObject.Find("gridRow" + (character.rowPosition) + "Column" + (character.colPosition)).transform.position; return(true); } } return(false); }
// Update is called once per frame void Update() { if (!frozenForMinigame) { MoveCamera(); CheckRotateCamera(); } if (movingCamera) { RepositionCamera(cameraRotPosition, prevCameraRotPosition, cameraMovementBetween); } // if (!TextManager.playerControlsLocked && !TutorialCards.isTutorialRunning) if (!DialoguePanelManager.playerControlsLocked && !TutorialCards.isTutorialRunning && !frozenForMinigame) { CheckClick(); CheckPlayer(); if (isPlayerTurn) { if (selectedUnit != null) { MovePlayer(); } if (Input.GetKeyDown(KeyCode.Space) || EndTurnButtonScript.isButtonPressed)// || Input.GetMouseButtonDown(0)) { //Clearing all highlighted possible moves and selected character. ClearAllGrids(); // panelUnderCharacter.GetComponent<PanelUnderCharacter>().visible = false; if (selectedUnit) { DisablePanelUnderCharacter(selectedUnit); } selectedUnit = null; EndTurnButtonScript.isButtonPressed = false; TestButton.isEnable = true; GiveNumbers(); isPlayerTurn = false; roundCounter++; if (roundCounter >= 4) { GameObject.Find("GridLevelStuff").GetComponentInChildren <Board>().SpawnEnemy((int)Random.Range(1.0f, 3.99f)); roundCounter = 0; } EnemyTurnsActivate(); } } else if (EnemyMovesDone()) { turnCount++; isPlayerTurn = true; TestButton.isEnable = false; // GameObject.Find("EndTurn").transform.GetComponent<Button>().transition = Navigation.None; ExperimentalResources.ReInitializeResources(); // GameObject.Find("EndTurn").transform.GetComponent<EndButtonToggle>().isVisible = false; foreach (var item in Board.spawnedEnemies) { item.GetComponent <EnemyAI>().stats.canAttack = false; } foreach (var item in Board.possibleMoveableChars) { if (item.thePiece != null) { item.thePiece.GetComponent <Stats>().canAttack = true; } } EndButtonToggle.DisableEndTurn(); } } if (frozenForMinigame) { PlayMinigame(); } }