// Update is called once per frame internal virtual void Update() { if (myTile && !myTile.IsVisible()) { animationSpeed = unseenMovementSpeed; } else { animationSpeed = normalMovementSpeed; } HandleMovement(); HandleVisibility(); }
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(); } } }