public override void Process() { if (IsPlaying) { CurrentTime = CurrentTime.Add(TimeSpan.FromSeconds(Game.LastFrameTime)); TimedEventManager.RunEvents(CurrentTime); if (TimedEventManager.AllExecuted(CurrentTime)) { StartExplodingScene(); } if (_justAttached) { DeloreanTimedEventManager.RunEvents(CurrentTime); if (_wheelPtfxes != null) { foreach (var wheelPTFX in _wheelPtfxes) { wheelPTFX.Process(); } } } } }
public override void OnEnd() { if (IsPlaying) { if (TimedEventManager.IsCustomCameraActive) { TimedEventManager.ResetCamera(); } if (_missionMusic.IsAnyInstancePlaying) { _missionMusic.Stop(); } _wheelPtfxes?.ForEach(x => x?.Stop()); _wheelPtfxes.Clear(); tRogersSierra.isOnTrainMission = false; if (tRogersSierra.isExploded == false) { tRogersSierra.FunnelSmoke = RogersSierra.Commons.SmokeColor.Default; } } }
public void StartExplodingScene() { //if (tRogersSierra.isDeLoreanAttached) // RogersSierraManager.DetachDeLorean(); TimedEventManager.ClearEvents(); TimedEventManager.Add(CurrentTime.Add(TimeSpan.FromSeconds(2)), CurrentTime.Add(TimeSpan.FromSeconds(3))); TimedEventManager.Last.OnExecute += TrainExplosion_OnExecute; }
public override void OnStart() { if ((tRogersSierra?.isExploded).HasValue ? tRogersSierra.isExploded : true) { IsPlaying = false; return; } Main.RogersSierra.AudioEngine.BaseSoundFolder = "BackToTheFutureV\\Sounds"; _funnelExpl = Main.RogersSierra.AudioEngine.Create($"story/trainMission/funnelExplosion.wav", Presets.ExteriorLoud); _funnelExpl.SourceBone = "funnel_dummy"; _missionMusic = Main.RogersSierra.AudioEngine.Create($"story/trainMission/music.wav", Presets.No3D); CurrentTime = TimeSpan.Zero; TimedEventManager.ClearEvents(); TimedEventManager.ManageCamera = false; TimedEventManager.Add(0, 0, 0, 0, 10, 0, TimeMultiplier); TimedEventManager.Last.SetCamera(tRogersSierra.Locomotive, new Vector3(2.5f, 13f, -1f), tRogersSierra.Locomotive, Vector3.Zero); TimedEventManager.Add(0, 0, 0, 0, 25, 0, TimeMultiplier); //reach 25mph TimedEventManager.Last.SetSpeed(0, 25); TimedEventManager.Last.OnExecute += SetSpeed_OnExecute; TimedEventManager.Add(1, 29, 386, 1, 31, 386, TimeMultiplier); TimedEventManager.Last.SetCamera(tRogersSierra.Locomotive, new Vector3(0, 15f, 2f), tRogersSierra.Locomotive, Vector3.Zero); TimedEventManager.Add(1, 29, 386, 1, 40, 137, TimeMultiplier); //green log explosion and reach 35mph TimedEventManager.Last.SetSpeed(25, 35); TimedEventManager.Last.OnExecute += Explosion_OnExecute; TimedEventManager.Add(2, 16, 266, 2, 25, 364, TimeMultiplier); //yellow log explosion and reach 40mph TimedEventManager.Last.SetSpeed(35, 40); TimedEventManager.Last.OnExecute += Explosion_OnExecute; TimedEventManager.Add(2, 25, 364, 3, 3, 406, TimeMultiplier); //reach 45mph TimedEventManager.Last.SetSpeed(40, 45); TimedEventManager.Last.OnExecute += SetSpeed_OnExecute; TimedEventManager.Add(3, 3, 406, 3, 16, 710, TimeMultiplier); //reach 50mph TimedEventManager.Last.SetSpeed(45, 50); TimedEventManager.Last.OnExecute += SetSpeed_OnExecute; TimedEventManager.Add(3, 20, 321, 3, 21, 587, TimeMultiplier); //first whistle TimedEventManager.Last.OnExecute += Whistle_OnExecute; TimedEventManager.Add(3, 21, 87, 3, 21, 587, TimeMultiplier); //stop whistle TimedEventManager.Last.OnExecute += Whistle_OnExecute; TimedEventManager.Add(3, 21, 587, 3, 23, 315, TimeMultiplier); //second whistle TimedEventManager.Last.OnExecute += Whistle_OnExecute; TimedEventManager.Add(3, 22, 815, 3, 23, 315, TimeMultiplier); //stop whistle TimedEventManager.Last.OnExecute += Whistle_OnExecute; TimedEventManager.Add(3, 23, 315, 3, 24, 511, TimeMultiplier); //third whistle TimedEventManager.Last.OnExecute += Whistle_OnExecute; TimedEventManager.Add(3, 24, 11, 3, 24, 511, TimeMultiplier); //stop whistle TimedEventManager.Last.OnExecute += Whistle_OnExecute; TimedEventManager.Add(3, 24, 511, 3, 25, 529, TimeMultiplier); //fourth whistle TimedEventManager.Last.OnExecute += Whistle_OnExecute; TimedEventManager.Add(3, 25, 529, 3, 47, 111, TimeMultiplier); //reach 55mph TimedEventManager.Last.SetSpeed(50, 55); TimedEventManager.Last.OnExecute += SetSpeed_OnExecute; TimedEventManager.Add(3, 47, 111, 4, 26, 239, TimeMultiplier); //reach 60mph TimedEventManager.Last.SetSpeed(55, 60); TimedEventManager.Last.OnExecute += SetSpeed_OnExecute; TimedEventManager.Add(4, 26, 239, 4, 46, 395, TimeMultiplier); //reach 70mph TimedEventManager.Last.SetSpeed(60, 70); TimedEventManager.Last.OnExecute += SetSpeed_OnExecute; TimedEventManager.Add(5, 10, 603, 5, 13, 603, TimeMultiplier); //red log explosion and reach 72mph TimedEventManager.Last.SetSpeed(70, 72); TimedEventManager.Last.OnExecute += Explosion_OnExecute; TimedEventManager.Add(5, 19, 0, 5, 21, 0, TimeMultiplier); //reach 75mph TimedEventManager.Last.SetSpeed(72, 75); TimedEventManager.Last.OnExecute += SetSpeed_OnExecute; TimedEventManager.Add(5, 25, 0, 5, 40, 137, TimeMultiplier); //reach 80mph TimedEventManager.Last.SetSpeed(75, 80); TimedEventManager.Last.OnExecute += SetSpeed_OnExecute; //TimedEventManager.Add(5, 56, 450, 7, 12, 627, TimeMultiplier); //reach 88mph TimedEventManager.Add(5, 56, 450, 7, 4, 627, TimeMultiplier); //reach 88mph TimedEventManager.Last.SetSpeed(80, 88); TimedEventManager.Last.OnExecute += SetSpeed_OnExecute; TimedEventManager.Add(5, 56, 450, 9, 12, 627, TimeMultiplier); //reach 88mph tRogersSierra.isOnTrainMission = true; _wheelPtfxes = new List <PtfxEntityBonePlayer>(); _funnelExplPtfx = new PtfxEntityBonePlayer("scr_josh3", "scr_josh3_explosion", tRogersSierra.Locomotive, "funnel_dummy", Vector3.Zero, Vector3.Zero); _missionMusic.Play(); if (!PlayMusic) { _missionMusic.Volume = 0f; } }