public void CalculateDistanceToTargets(int startPointX, int startPointY) { Vector3 startLoc = new Vector3(); Vector3 endLoc = new Vector3(); startLoc.y = startPointY; startLoc.z = startPointX - (startPointY - (Mathf.Abs(startPointY) % 2)) / 2; startLoc.x = -startLoc.y - startLoc.z; GameObject[] PlayersAlive = GameObject.FindGameObjectsWithTag("Player"); foreach (GameObject Player in PlayersAlive) { PlayableCharacter player = Player.GetComponent <PlayableCharacter> (); endLoc.y = player.PlayerClass.TileY; endLoc.z = player.PlayerClass.TileX - (player.PlayerClass.TileY - (Mathf.Abs(player.PlayerClass.TileY) % 2)) / 2; endLoc.x = -endLoc.y - endLoc.z; int distance = (int)(Mathf.Abs(startLoc.x - endLoc.x) + Mathf.Abs(startLoc.y - endLoc.y) + Mathf.Abs(startLoc.z - endLoc.z)) / 2; if (distance <= range) { GameObject Tile = GameObject.Find("Hex_" + player.PlayerClass.TileX + "_" + player.PlayerClass.TileY); ClickableTile tile = Tile.GetComponent <ClickableTile> (); GameObject HighlightTiles = GameObject.Find("_Scripts"); HighlightTiles highlightTiles = HighlightTiles.GetComponent <HighlightTiles> (); highlightTiles.tileX = tile.tileX; highlightTiles.tileY = tile.tileY; highlightTiles.ShowHoveringTileSkill(); } } }
public void CalculateAreaNoMid(int targetX, int targetY) { Vector3 ret = new Vector3(); Vector3 unitRet = new Vector3(); GameObject Player = GameObject.Find(map.selecterPlayer); PlayableCharacter player = Player.GetComponent <PlayableCharacter> (); int distanceFromMiddle; int distanceFromPlayer; ret.y = targetY; ret.z = targetX - (targetY - (Mathf.Abs(targetY) % 2)) / 2; ret.x = -ret.y - ret.z; unitRet.y = player.PlayerClass.TileY; unitRet.z = player.PlayerClass.TileX - (player.PlayerClass.TileY - (Mathf.Abs(player.PlayerClass.TileY) % 2)) / 2; unitRet.x = -unitRet.y - unitRet.z; distanceFromPlayer = (int)((Mathf.Abs(unitRet.x - ret.x) + Mathf.Abs(unitRet.y - ret.y) + Mathf.Abs(unitRet.z - ret.z)) / 2); GameObject[] ClickableTiles = GameObject.FindGameObjectsWithTag("Hex"); foreach (GameObject tile in ClickableTiles) { ClickableTile clickableTile = tile.GetComponent <ClickableTile> (); Vector3 hexLoc = new Vector3(); hexLoc.y = clickableTile.tileY; hexLoc.z = clickableTile.tileX - (clickableTile.tileY - (Mathf.Abs(clickableTile.tileY) % 2)) / 2; hexLoc.x = -hexLoc.y - hexLoc.z; distanceFromMiddle = (int)((Mathf.Abs(ret.x - hexLoc.x) + Mathf.Abs(ret.y - hexLoc.y) + Mathf.Abs(ret.z - hexLoc.z)) / 2); if (distanceFromMiddle <= area && distanceFromMiddle != 0) { if (distanceFromPlayer <= skillDistance) { GameObject HighlightTiles = GameObject.Find("_Scripts"); HighlightTiles highlightTiles = HighlightTiles.GetComponent <HighlightTiles> (); highlightTiles.tileX = clickableTile.tileX; highlightTiles.tileY = clickableTile.tileY; highlightTiles.ShowTilesThatWillBeHitSkill(); } } if (distanceFromMiddle == 0) { if (distanceFromPlayer <= skillDistance) { GameObject HighlightTiles = GameObject.Find("_Scripts"); HighlightTiles highlightTiles = HighlightTiles.GetComponent <HighlightTiles> (); highlightTiles.tileX = clickableTile.tileX; highlightTiles.tileY = clickableTile.tileY; highlightTiles.ShowHoveringTileSkill(); } } } }
public void CalculateTrapArea(int playerX, int playerY) { Vector3 startLoc = new Vector3(); startLoc.y = playerY; startLoc.z = playerX - (playerY - (Mathf.Abs(playerY) % 2)) / 2; startLoc.x = -startLoc.y - startLoc.z; GameObject[] Tiles = GameObject.FindGameObjectsWithTag("Hex"); foreach (GameObject tile in Tiles) { bool enemyInTile = false; ClickableTile clickableTile = tile.GetComponent <ClickableTile> (); Vector3 hexLoc = new Vector3(); hexLoc.y = clickableTile.tileY; hexLoc.z = clickableTile.tileX - (clickableTile.tileY - (Mathf.Abs(clickableTile.tileY) % 2)) / 2; hexLoc.x = -hexLoc.y - hexLoc.z; int n = (int)(Mathf.Abs(startLoc.x - hexLoc.x) + Mathf.Abs(startLoc.y - hexLoc.y) + Mathf.Abs(startLoc.z - hexLoc.z)) / 2; GameObject[] Enemies = GameObject.FindGameObjectsWithTag("Hex"); foreach (GameObject Enemy in Enemies) { BaseEnemy enemy = Enemy.GetComponent <BaseEnemy>(); // && (enemy.TileY != clickableTile.tileY && enemy.TileX != clickableTile.tileX) // enemy.TileX = clickableTile.tileX; // enemy.TileY = clickableTile.tileY; if (enemy.TileY == clickableTile.tileY && enemy.TileX == clickableTile.tileX) { enemyInTile = true; } } if (n == 1 && enemyInTile == false) { GameObject HighlightTiles = GameObject.Find("_Scripts"); HighlightTiles highlightTiles = HighlightTiles.GetComponent <HighlightTiles> (); highlightTiles.tileX = clickableTile.tileX; highlightTiles.tileY = clickableTile.tileY; highlightTiles.ShowHoveringTileSkill(); } } }
void RunTargets() { // GameObject ButtonScripts = GameObject.Find ("ButtonsCanvas"); // ButtonScripts buttonScripts = ButtonScripts.GetComponent<ButtonScripts> (); GameObject HighlightTiles = GameObject.Find("_Scripts"); HighlightTiles highlightTiles = HighlightTiles.GetComponent <HighlightTiles> (); // Debug.Log(effect); /* if (effect == Effects.Attack) { * buttonScripts.TurnEverythingFalse(); * map.HideAllowedTiles(); * map.ShowAttackableTiles(); * // GameObject Unit = GameObject.Find("UnitOne"); * // Unit unit = Unit.GetComponent<Unit> (); * // unit.Attack(); * buttonScripts.attackSelected = true; * // changeAreaTiles = false; * // moveSelected = false; * // moveSelected = false; * } * else if (effect == Effects.ChangeArea) { * // Debug.Log(effect); * buttonScripts.TurnEverythingFalse(); * buttonScripts.changeAreaTiles = true; * Debug.Log(buttonScripts.changeAreaTiles); * map.HideAllowedTiles(); * * } */ switch (target) { case Targets.Ally: // GameObject[] Players = GameObject.FindGameObjectsWithTag("Player"); // foreach (GameObject PlayerAlly in Players) { // GameObject Distance = GameObject.Find ("_Scripts"); // CalculateDistance distance = Distance.GetComponent<CalculateDistance> (); // PlayableCharacter playerAlly = PlayerAlly.GetComponent<PlayableCharacter> (); // GameObject TileAlly = GameObject.Find ("Hex_" + playerAlly.PlayerClass.TileX + "_" + playerAlly.PlayerClass.TileY ); // ClickableTile tileAlly = TileAlly.GetComponent<ClickableTile> (); buttonScripts.allySelected = true; // distance.range = range; // tileAlly.ChangeMaterial(); // } break; case Targets.Area: GameObject Area = GameObject.Find("_Scripts"); ChangeTilesArea area = Area.GetComponent <ChangeTilesArea> (); area.area = areaRange; area.skillDistance = range; buttonScripts.changeAreaTiles = true; break; case Targets.Cone: // Debug.Log("Runeffect Cone"); GameObject Cone = GameObject.Find("_Scripts"); Cone cone = Cone.GetComponent <Cone> (); cone.skillDistance = range; buttonScripts.coneSelected = true; break; case Targets.Enemy: buttonScripts.attackSelected = true; break; case Targets.Line: GameObject Line = GameObject.Find("LineRenderer"); DrawLine line = Line.GetComponent <DrawLine> (); line.skillDistance = range; buttonScripts.drawSelected = true; break; case Targets.Self: selectedTarget = map.selecterPlayer; GameObject PlayerSelf = GameObject.Find(map.selecterPlayer); PlayableCharacter playerSelf = PlayerSelf.GetComponent <PlayableCharacter> (); GameObject TileSelf = GameObject.Find("Hex_" + playerSelf.PlayerClass.TileX + "_" + playerSelf.PlayerClass.TileY); ClickableTile tileSelf = TileSelf.GetComponent <ClickableTile> (); highlightTiles.tileX = tileSelf.tileX; highlightTiles.tileY = tileSelf.tileY; highlightTiles.ShowHoveringTileSkill(); break; case Targets.AreaMobility: GameObject AreaMobility = GameObject.Find("_Scripts"); ChangeTilesArea areaMobility = AreaMobility.GetComponent <ChangeTilesArea> (); areaMobility.area = areaRange; areaMobility.skillDistance = range; buttonScripts.changeAreaTilesNoMid = true; break; case Targets.Trap: buttonScripts.trapSelected = true; break; default: break; } }