void Update()
        {
            if (playerAutopilot != null)
            {
                if (destinationName == null)
                {
                    InterruptFastTravel();
                    return;
                }

                if (!travelUi.isShowing)
                {
                    DaggerfallUI.UIManager.PushWindow(travelUi);
                }

                playerAutopilot.Update();

                hudVitals.Update();

                // This code only comes into play if enemies are nearby without an encounter event having been fired *first*.
                // This is the case when the core spawns enemies nearby. When quests trigger encounters on the other hand, the OnEncounter event fires first and this code is never reached.
                if (GameManager.Instance.AreEnemiesNearby() && !delayCombat)
                {
                    Debug.Log("enemies nearby while fast travelling");

                    if (avoidEncounters != AvoidEncounterChoice.NO)
                    {
                        travelUi.CloseWindow();
                        AttemptAvoid();
                    }
                    else
                    {
                        travelUi.CloseWindow();
                        DaggerfallUI.MessageBox("An enemy is seeking to bring a premature end to your journey...");
                        return;
                    }
                }
                else if (delayCombat)
                {
                    if (DaggerfallUnity.Instance.WorldTime.Now.ToClassicDaggerfallTime() >= delayCombatTime)
                    {
                        delayCombat = false;
                    }
                }
                var currentDiseaseCount = GameManager.Instance.PlayerEffectManager.DiseaseCount;

                // check for diseases.
                if (currentDiseaseCount != diseaseCount)
                {
                    if (currentDiseaseCount > diseaseCount)
                    {
                        Debug.Log("detected new disease, interrupting fast travel!");
                        InterruptFastTravel();
                        DaggerfallUI.Instance.CreateHealthStatusBox(DaggerfallUI.Instance.UserInterfaceManager.TopWindow).Show();
                    }
                    diseaseCount = currentDiseaseCount;
                }
            }
        }
        void Update()
        {
            if (playerAutopilot != null)
            {
                if (!travelUi.isShowing)
                {
                    DaggerfallUI.UIManager.PushWindow(travelUi);
                }

                playerAutopilot.Update();

                hudVitals.Update();

                if (GameManager.Instance.AreEnemiesNearby() && delayCombat <= 0.0f)
                {
                    if (encounterAvoidanceSystem)
                    {
                        InterruptFastTravel();

                        UserInterfaceManager uiManager      = DaggerfallUI.Instance.UserInterfaceManager;
                        DaggerfallMessageBox avoidEncounter = new DaggerfallMessageBox(uiManager, DaggerfallMessageBox.CommonMessageBoxButtons.YesNo,
                                                                                       "You approach a hostile encounter. Attempt to avoid it?", uiManager.TopWindow);
                        avoidEncounter.OnButtonClick += AvoidEncounter_OnButtonClick;
                        avoidEncounter.Show();
                    }
                    else
                    {
                        travelUi.CloseWindow();
                        DaggerfallUI.MessageBox("An enemy is seeking to bring a premature end to your journey...");
                        return;
                    }
                }
                else if (delayCombat > 0.0f)
                {
                    delayCombat -= Time.deltaTime;

                    if (delayCombat <= 0.0f)
                    {
                        delayCombat = 0.0f;
                    }
                }
            }
        }