internal void DeploySecurity(EnemyProgram enemy, DungeonTile dungeonTile) { enemy.SetTile(dungeonTile); enemy.transform.position = dungeonTile.GetOccupyingCoordinates(enemy.IsFlying(), false); enemyPrograms.Add(enemy); dungeonTile.Occupy(enemy); }
internal override void Proc(DungeonTile targetTile) { AudioSource.PlayClipAtPoint(teleportSound, FindObjectOfType <Camera>().transform.position, PlayerPrefs.GetFloat(Options.sfxVolumeKey)); if (!targetTile.isOccupied) { if (targetTile.IsVisible() && ((!targetTile.isBlocked) || Program.selectedProgram.IsFlying())) { Instantiate(teleportEffect, Program.selectedProgram.transform.position, Quaternion.identity); Instantiate(teleportEffect, targetTile.GetOccupyingCoordinates(Program.selectedProgram.IsFlying(), false), Quaternion.identity); Program.selectedProgram.myTile.Vacate(Program.selectedProgram); Program.selectedProgram.myTile = targetTile; targetTile.Occupy(Program.selectedProgram); Program.selectedProgram.gameObject.transform.position = targetTile.GetOccupyingCoordinates(Program.selectedProgram.IsFlying(), false); EndProc(); } } }
internal void DeploySelected(DungeonTile dungeonTile) { if (Mathf.Abs(DeploymentZone.instance.myCoords.x - dungeonTile.xCoord) <= DeploymentZone.instance.range && Mathf.Abs(DeploymentZone.instance.myCoords.z - dungeonTile.zCoord) <= DeploymentZone.instance.range && grid.CanDeployHere(dungeonTile)) { Program.selectedProgram.myTile = dungeonTile; Program.selectedProgram.transform.position = dungeonTile.GetOccupyingCoordinates(Program.selectedProgram.IsFlying(), false); Program.selectedProgram.BeginPlay(); dungeonTile.Occupy(Program.selectedProgram); } else { Debug.Log((Mathf.Abs(DeploymentZone.instance.myCoords.x - dungeonTile.xCoord)).ToString()); Debug.Log((Mathf.Abs(DeploymentZone.instance.myCoords.z - dungeonTile.zCoord)).ToString()); Debug.Log(DeploymentZone.instance.range.ToString()); Debug.Log(grid.CanDeployHere(dungeonTile).ToString()); } }
internal void AttemptMove(DungeonTile target) { DungeonManager.instance.Wait(); List <DungeonTile> tempPath = DungeonManager.instance.grid.FindPath(myTile, target, movesLeft, IsFlying()); if (tempPath[tempPath.Count - 1] == target && !target.isOccupied) { myTile.Vacate(this); target.Occupy(this); movePath = tempPath; movesLeft -= (movePath.Count - 1); isAnimating = true; } else { movePath = new List <DungeonTile>(); movePath.Add(myTile); isAnimating = true; if (GetComponent <EnemyProgram>()) { GetComponent <EnemyProgram>().BeginSearch(); } } }