// Update is called once per frame void Update() { if (fireBoltSelected) { if (Input.GetMouseButtonUp(0)) { coordinate = GetComponent <Interactable>().boardCamMove.coordinate; foreach (GameObject unit in fireBoltUnits) { UnitTileCheck UTC = unit.GetComponent <UnitTileCheck>(); Interactable interactable = unit.GetComponent <Interactable>(); if (UTC.coordinate == coordinate) { BoardCameraMovement.boardTile cTile = null; foreach (BoardCameraMovement.boardTile bTile in interactable.boardCamMove.allTiles) { if (coordinate == bTile.pos) { cTile = bTile; break; } } interactable.health = interactable.health - damage; interactable.boardCamMove.newLogEntry(cTile, "firebolt", unit, gameObject); GetComponent <Interactable>().boardCamMove.turnSwitch(); } unit.GetComponent <Interactable>().unitSelected = false; } fireBoltSelected = false; } } }
public void setInhabitant() { boardCamMove = board.GetComponent <BoardCameraMovement>(); foreach (BoardCameraMovement.boardTile bTile in boardCamMove.allTiles) { if (coord == bTile.pos) { currentTile = bTile; bTile.inhabitant = gameObject; } } }
void Update() { if (health > maxHealth) { health = maxHealth; } if (health <= 0) { print(":("); switch (faction) { case "wizard": boardCamMove.wizardUnits.Remove(gameObject); boardCamMove.blockedTiles.Remove(coord); break; case "alien": boardCamMove.alienUnits.Remove(gameObject); boardCamMove.blockedTiles.Remove(coord); break; case "robot": boardCamMove.robotUnits.Remove(gameObject); boardCamMove.blockedTiles.Remove(coord); break; } Destroy(gameObject); } if (moveSelected) { coordinate = boardCamMove.coordinate; if (Input.GetMouseButtonUp(0)) { UnitTileCheck UTC = GetComponent <UnitTileCheck>(); Vector3Int newCoord = new Vector3Int(coordinate.x, coordinate.y, 0); //Gets coordinate of mouse position if (tileRange.Contains(newCoord)) { Vector3Int prevCoord = coord; coord = new Vector3Int(UTC.coordinate.x, UTC.coordinate.y, 0); transform.position = grid.CellToWorld(coordinate); tilePrev(); tileBuffCheck(newCoord); if (boardCamMove.blockedTiles.Contains(newCoord)) { StaticDataScript.noFight = false; StaticDataScript.fighterNum = 0; StaticDataScript.winHealth = 0; StaticDataScript.coord = coord; StaticDataScript.player1 = gameObject.name; StaticDataScript.player1Health = health; StaticDataScript.player1MaxHealth = maxHealth; StaticDataScript.player1Faction = faction; StaticDataScript.player1Damage = damage; StaticDataScript.player1Colour = colour; fighterNum = 1; //units = GameObject.FindGameObjectsWithTag("Unit"); foreach (GameObject unit in units) { Vector3Int enemyCoord = unit.GetComponent <UnitTileCheck>().coordinate; if (newCoord == new Vector3Int(enemyCoord.x, enemyCoord.y, 0)) { Interactable interactable = unit.GetComponent <Interactable>(); StaticDataScript.player2 = unit.gameObject.name; StaticDataScript.player2Health = interactable.health; StaticDataScript.player2MaxHealth = interactable.maxHealth; StaticDataScript.player2Faction = interactable.faction; StaticDataScript.player2Damage = interactable.damage; StaticDataScript.player2Colour = interactable.colour; interactable.fighterNum = 2; } } StaticDataScript.coord = newCoord; fightStarted = true; } boardCamMove.blockedTiles.Remove(new Vector3Int(coord.x, coord.y, 0)); boardCamMove.blockedTiles.Add(newCoord); coord = grid.WorldToCell(transform.position); coord.z = 0; foreach (BoardCameraMovement.boardTile bTile in boardCamMove.allTiles) { if (bTile.pos == coord) { foreach (BoardCameraMovement.boardTile bTile2 in boardCamMove.allTiles) { if (bTile2.pos == prevCoord) { bTile2.inhabitant = null; break; } } currentTile = bTile; bTile.inhabitant = gameObject; break; } } if (!fightStarted) { boardCamMove.turnSwitch(); } boardCamMove.newLogEntry(currentTile, "movement", gameObject, null); } else { print("cannot move to this tile"); } moveSelected = false; tilePrev(); } } healthPercentage = Mathf.Ceil((health / maxHealth) * 100); if (fightStarted) { SceneManager.SetActiveScene(SceneManager.GetSceneByName("Arena")); fightStarted = false; } }