// perform fast travel actions private void performFastTravel() { RaiseOnPreFastTravelEvent(); // Cache scene first, if fast travelling while on ship. if (GameManager.Instance.TransportManager.IsOnShip()) { SaveLoadManager.CacheScene(GameManager.Instance.StreamingWorld.SceneName); } GameManager.Instance.StreamingWorld.TeleportToCoordinates((int)endPos.X, (int)endPos.Y, StreamingWorld.RepositionMethods.DirectionFromStartMarker); if (speedCautious) { GameManager.Instance.PlayerEntity.CurrentHealth = GameManager.Instance.PlayerEntity.MaxHealth; GameManager.Instance.PlayerEntity.CurrentFatigue = GameManager.Instance.PlayerEntity.MaxFatigue; if (!GameManager.Instance.PlayerEntity.Career.NoRegenSpellPoints) { GameManager.Instance.PlayerEntity.CurrentMagicka = GameManager.Instance.PlayerEntity.MaxMagicka; } } DaggerfallUnity.WorldTime.DaggerfallDateTime.RaiseTime(travelTimeMinutes * 60); // Halt random enemy spawns for next playerEntity update so player isn't bombarded by spawned enemies at the end of a long trip GameManager.Instance.PlayerEntity.PreventEnemySpawns = true; // Vampires and characters with Damage from Sunlight disadvantage always arrive just after 6pm regardless of travel type // Otherwise raise arrival time to just after 7am if cautious travel would arrive at night if (GameManager.Instance.PlayerEffectManager.HasVampirism() || GameManager.Instance.PlayerEntity.Career.DamageFromSunlight) { DaggerfallUnity.Instance.WorldTime.DaggerfallDateTime.RaiseTime((DaggerfallDateTime.DuskHour - DaggerfallUnity.Instance.WorldTime.DaggerfallDateTime.Hour) * 3600); } else if (speedCautious) { if ((DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour < 7) || ((DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour == 7) && (DaggerfallUnity.WorldTime.DaggerfallDateTime.Minute < 10))) { float raiseTime = (((7 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour) * 3600) + ((10 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Minute) * 60) - DaggerfallUnity.WorldTime.DaggerfallDateTime.Second); DaggerfallUnity.WorldTime.DaggerfallDateTime.RaiseTime(raiseTime); } else if (DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour > 17) { float raiseTime = (((31 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour) * 3600) + ((10 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Minute) * 60) - DaggerfallUnity.WorldTime.DaggerfallDateTime.Second); DaggerfallUnity.WorldTime.DaggerfallDateTime.RaiseTime(raiseTime); } } DaggerfallUI.Instance.UserInterfaceManager.PopWindow(); travelWindow.CloseTravelWindows(true); GameManager.Instance.PlayerEntity.RaiseSkills(); DaggerfallUI.Instance.FadeBehaviour.FadeHUDFromBlack(); RaiseOnPostFastTravelEvent(); }
public void BeginButtonOnClickHandler(BaseScreenComponent sender, Vector2 position) { Refresh(); Debug.Log("Final Travel Time: " + finalTravelTime); GameManager.Instance.StreamingWorld.TeleportToCoordinates((int)endPos.X, (int)endPos.Y, StreamingWorld.RepositionMethods.RandomStartMarker); DaggerfallUnity.WorldTime.DaggerfallDateTime.RaiseTime((float)finalTravelTime * 60); terrains.Clear(); DaggerfallUI.Instance.UserInterfaceManager.PopWindow(); travelWindow.CloseTravelWindows(true); }
public void BeginButtonOnClickHandler(BaseScreenComponent sender, Vector2 position) { Refresh(); if (!enoughGoldCheck()) { showNotEnoughGoldPopup(); return; } else { GameManager.Instance.PlayerEntity.GoldPieces -= tripCost; } GameManager.Instance.StreamingWorld.TeleportToCoordinates((int)endPos.X, (int)endPos.Y, StreamingWorld.RepositionMethods.RandomStartMarker); if (speedCautious) { GameManager.Instance.PlayerEntity.CurrentHealth = GameManager.Instance.PlayerEntity.MaxHealth; GameManager.Instance.PlayerEntity.CurrentFatigue = GameManager.Instance.PlayerEntity.MaxFatigue; GameManager.Instance.PlayerEntity.CurrentMagicka = GameManager.Instance.PlayerEntity.MaxMagicka; } DaggerfallUnity.WorldTime.DaggerfallDateTime.RaiseTime((travelTimeCalculator.TravelTimeTotalLand + travelTimeCalculator.TravelTimeTotalWater) * 60); // Raise arrival time to just after 7am if cautious travel would otherwise arrive at night // Increasing this from 6am to 7am as game is quite dark on at 6am (in Daggerfall Unity, Daggerfall is lighter) // Will consider retuning lighting so this can be like classic, although +1 hours to travel time isn't likely to be a problem for now if (speedCautious) { if ((DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour < 7) || ((DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour == 7) && (DaggerfallUnity.WorldTime.DaggerfallDateTime.Minute < 10))) { float raiseTime = (((7 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour) * 3600) + ((10 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Minute) * 60) - DaggerfallUnity.WorldTime.DaggerfallDateTime.Second); DaggerfallUnity.WorldTime.DaggerfallDateTime.RaiseTime(raiseTime); } else if (DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour > 17) { float raiseTime = (((31 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour) * 3600) + ((10 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Minute) * 60) - DaggerfallUnity.WorldTime.DaggerfallDateTime.Second); DaggerfallUnity.WorldTime.DaggerfallDateTime.RaiseTime(raiseTime); } } travelTimeCalculator.ClearPath(); DaggerfallUI.Instance.UserInterfaceManager.PopWindow(); travelWindow.CloseTravelWindows(true); GameManager.Instance.PlayerEntity.RaiseSkills(); }
// perform fast travel actions private void performFastTravel() { // Cache scene first, if fast travelling while on ship. if (GameManager.Instance.TransportManager.IsOnShip()) { SaveLoadManager.CacheScene(GameManager.Instance.StreamingWorld.SceneName); } GameManager.Instance.StreamingWorld.TeleportToCoordinates((int)endPos.X, (int)endPos.Y, StreamingWorld.RepositionMethods.DirectionFromStartMarker); if (speedCautious) { GameManager.Instance.PlayerEntity.CurrentHealth = GameManager.Instance.PlayerEntity.MaxHealth; GameManager.Instance.PlayerEntity.CurrentFatigue = GameManager.Instance.PlayerEntity.MaxFatigue; GameManager.Instance.PlayerEntity.CurrentMagicka = GameManager.Instance.PlayerEntity.MaxMagicka; } DaggerfallUnity.WorldTime.DaggerfallDateTime.RaiseTime(travelTimeMinutes * 60); // Halt random enemy spawns for next playerEntity update so player isn't bombarded by spawned enemies at the end of a long trip GameManager.Instance.PlayerEntity.PreventEnemySpawns = true; // Raise arrival time to just after 7am if cautious travel would otherwise arrive at night // Increasing this from 6am to 7am as game is quite dark on at 6am (in Daggerfall Unity, Daggerfall is lighter) // Will consider retuning lighting so this can be like classic, although +1 hours to travel time isn't likely to be a problem for now if (speedCautious) { if ((DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour < 7) || ((DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour == 7) && (DaggerfallUnity.WorldTime.DaggerfallDateTime.Minute < 10))) { float raiseTime = (((7 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour) * 3600) + ((10 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Minute) * 60) - DaggerfallUnity.WorldTime.DaggerfallDateTime.Second); DaggerfallUnity.WorldTime.DaggerfallDateTime.RaiseTime(raiseTime); } else if (DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour > 17) { float raiseTime = (((31 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour) * 3600) + ((10 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Minute) * 60) - DaggerfallUnity.WorldTime.DaggerfallDateTime.Second); DaggerfallUnity.WorldTime.DaggerfallDateTime.RaiseTime(raiseTime); } } DaggerfallUI.Instance.UserInterfaceManager.PopWindow(); travelWindow.CloseTravelWindows(true); GameManager.Instance.PlayerEntity.RaiseSkills(); DaggerfallUI.Instance.FadeBehaviour.FadeHUDFromBlack(); }
private void YesButton_OnMouseClick(BaseScreenComponent sender, Vector2 position) { DaggerfallUI.Instance.FadeBehaviour.SmashHUDToBlack(); // Teleport to destination. PlayerEnterExit playerEnterExit = GameManager.Instance.PlayerEnterExit; if (playerEnterExit.IsPlayerInside) { playerEnterExit.TransitionExterior(); } GameManager.Instance.StreamingWorld.TeleportToCoordinates((int)destinationPos.X, (int)destinationPos.Y, StreamingWorld.RepositionMethods.RandomStartMarker); // Close windows. DaggerfallUI.Instance.UserInterfaceManager.PopWindow(); travelWindow.CloseTravelWindows(); CloseWindow(); DaggerfallUI.Instance.FadeBehaviour.FadeHUDFromBlack(); }
// perform fast travel actions private void performFastTravel() { GameManager.Instance.StreamingWorld.TeleportToCoordinates((int)endPos.X, (int)endPos.Y, StreamingWorld.RepositionMethods.RandomStartMarker); if (speedCautious) { GameManager.Instance.PlayerEntity.CurrentHealth = GameManager.Instance.PlayerEntity.MaxHealth; GameManager.Instance.PlayerEntity.CurrentFatigue = GameManager.Instance.PlayerEntity.MaxFatigue; GameManager.Instance.PlayerEntity.CurrentMagicka = GameManager.Instance.PlayerEntity.MaxMagicka; } DaggerfallUnity.WorldTime.DaggerfallDateTime.RaiseTime(travelTimeMinutes * 60); // Raise arrival time to just after 7am if cautious travel would otherwise arrive at night // Increasing this from 6am to 7am as game is quite dark on at 6am (in Daggerfall Unity, Daggerfall is lighter) // Will consider retuning lighting so this can be like classic, although +1 hours to travel time isn't likely to be a problem for now if (speedCautious) { if ((DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour < 7) || ((DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour == 7) && (DaggerfallUnity.WorldTime.DaggerfallDateTime.Minute < 10))) { float raiseTime = (((7 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour) * 3600) + ((10 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Minute) * 60) - DaggerfallUnity.WorldTime.DaggerfallDateTime.Second); DaggerfallUnity.WorldTime.DaggerfallDateTime.RaiseTime(raiseTime); } else if (DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour > 17) { float raiseTime = (((31 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Hour) * 3600) + ((10 - DaggerfallUnity.WorldTime.DaggerfallDateTime.Minute) * 60) - DaggerfallUnity.WorldTime.DaggerfallDateTime.Second); DaggerfallUnity.WorldTime.DaggerfallDateTime.RaiseTime(raiseTime); } } DaggerfallUI.Instance.UserInterfaceManager.PopWindow(); travelWindow.CloseTravelWindows(true); GameManager.Instance.PlayerEntity.RaiseSkills(); }