public void SpawnFireTrails() { Stop(); // World positions Vector3 leftWheelOffset = Vehicle.GetOffsetFromWorldCoords(Vehicle.GetBoneCoord("wheel_lf")); Vector3 rightWheelOffset = Vehicle.GetOffsetFromWorldCoords(Vehicle.GetBoneCoord("wheel_rf")); float baseOffset = 0.3f; for (int i = 0; i < 30; i++) { Vector3 leftPosOffset = leftWheelOffset + new Vector3(0, i * baseOffset, -0.2f); Vector3 rightPosOffset = rightWheelOffset + new Vector3(0, i * baseOffset, -0.2f); PtfxEntityPlayer leftWheelPtfx = new PtfxEntityPlayer("core", "fire_petrol_one", Vehicle, leftPosOffset, Vector3.Zero, 1.2f, true, false); PtfxEntityPlayer rightWheelPtfx = new PtfxEntityPlayer("core", "fire_petrol_one", Vehicle, rightPosOffset, Vector3.Zero, 1.2f, true, false); leftWheelPtfx.SetEvolutionParam("strength", 1f); leftWheelPtfx.SetEvolutionParam("dist", 1f); leftWheelPtfx.SetEvolutionParam("fadein", 0.1f); rightWheelPtfx.SetEvolutionParam("strength", 1); rightWheelPtfx.SetEvolutionParam("dist", 1f); rightWheelPtfx.SetEvolutionParam("fadein", 0.15f); currentStrength = 1f; fireTrailPtfxs.Add(leftWheelPtfx); fireTrailPtfxs.Add(rightWheelPtfx); } fireTrailPtfxs.ForEach(x => x.Play()); }
public FreezeHandler(TimeCircuits circuits) : base(circuits) { coldAudio = new AudioPlayer("cold.wav", false, 1); ventAudio = new AudioPlayer("vent.wav", false); leftSmokePtfx = new PtfxEntityPlayer("scr_familyscenem", "scr_meth_pipe_smoke", Vehicle, new Vector3(0.5f, -2f, 0.7f), new Vector3(10f, 0, 180f), 10f, false, false); rightSmokePtfx = new PtfxEntityPlayer("scr_familyscenem", "scr_meth_pipe_smoke", Vehicle, new Vector3(-0.5f, -2f, 0.7f), new Vector3(10f, 0, 180f), 10f, false, false); }
private float _timeToDisappear = 360f; // 6 minutes public FreezeHandler(TimeCircuits circuits) : base(circuits) { _coldAudio = circuits.AudioEngine.Create("general/cold.wav", Presets.ExteriorLoop); _ventAudio = circuits.AudioEngine.Create("general/vents.wav", Presets.Exterior); _coldAudio.FadeOutMultiplier = 0.15f; _leftSmokePtfx = new PtfxEntityPlayer( "scr_familyscenem", "scr_meth_pipe_smoke", Vehicle, new Vector3(0.5f, -2f, 0.7f), new Vector3(10f, 0, 180f), 10f, false, false); _rightSmokePtfx = new PtfxEntityPlayer( "scr_familyscenem", "scr_meth_pipe_smoke", Vehicle, new Vector3(-0.5f, -2f, 0.7f), new Vector3(10f, 0, 180f), 10f, false, false); _iceSmoke = new PtfxEntityPlayer( "core", "ent_amb_dry_ice_area", Vehicle, new Vector3(0, 0, 0.5f), Vector3.Zero, 3f, true); // 3 water drips dummies on each door _waterDrops = new PtfxEntityBonePlayer[3 * 2]; for (int i = 0, c = 0; i < _waterDrops.Length / 2; i++) { for (int k = 0; k < 2; k++) { string dummyName = k == 0 ? "ice_drop_left" : "ice_drop_right"; dummyName += i + 1; _waterDrops[c] = new PtfxEntityBonePlayer( "scr_apartment_mp", "scr_apa_jacuzzi_drips", Vehicle, dummyName, Vector3.Zero, Vector3.Zero, 3f, true); c++; } } }
public TimeTravelHandler(TimeCircuits circuits) : base(circuits) { _lightExplosion = new PtfxEntityPlayer("scr_josh3", "scr_josh3_light_explosion", Vehicle, Vector3.Zero, Vector3.Zero, 4f); _timeTravelEffect = new PtfxEntityPlayer("core", "veh_exhaust_spacecraft", Vehicle, new Vector3(0, 4, 0), Vector3.Zero, 8f, true); _whiteSphere = new AnimateProp(Vehicle, ModelHandler.WhiteSphere, Vector3.Zero, Vector3.Zero) { Duration = 0.25f }; LoadRes(); }
public SparksHandler(TimeCircuits circuits) : base(circuits) { sparksAudio = new AudioPlayer($"sparks_{LowerCaseDeloreanType}.wav", false, 0.7f); diodesGlowingSound = new AudioPlayer("diodes_glowing.wav", false, 1); sparksPtfxs.Add(new PtfxEntityPlayer("des_bigjobdrill", "ent_ray_big_drill_sparks", Vehicle, new Vector3(0, 3f, 0), Vector3.Zero, 3.5f, true, true, 15)); sparksPtfxs.Add(new PtfxEntityPlayer("scr_paletoscore", "scr_paleto_box_sparks", Vehicle, new Vector3(0, 3f, 0), new Vector3(0, 0, 180), 1.5f, true, true, 300)); sparksPtfxs.Add(new PtfxEntityPlayer("scr_reconstructionaccident", "sp_sparking_generator", Vehicle, new Vector3(0, 3f, 0), Vector3.Zero, 1.5f, true, true, 400)); foreach (var wheelName in wheelNames) { var worldPos = Vehicle.GetBoneCoord(wheelName); var offset = Vehicle.GetOffsetFromWorldCoords(worldPos); offset = new Vector3(offset.X, offset.Y - 0.3f, offset.Z - 0.15f); var ptfx = new PtfxEntityPlayer("scr_carsteal4", "scr_carsteal5_car_muzzle_flash", Vehicle, offset, new Vector3(0f, 0f, -90f), 1f, true, true, 15); wheelPtfxes.Add(ptfx); } }
public FlyingHandler(TimeCircuits circuits) : base(circuits) { if (Mods.HoverUnderbody == ModState.On) { LoadWheelAnim(); } _flyOn = circuits.AudioEngine.Create("bttf2/hover/toHover.wav", Presets.Exterior); _flyOff = circuits.AudioEngine.Create("bttf2/hover/toRegular.wav", Presets.Exterior); _upSound = circuits.AudioEngine.Create("bttf2/hover/hoverUp.wav", Presets.Exterior); _boostSound = circuits.AudioEngine.Create("bttf2/hover/boost.wav", Presets.Exterior); foreach (var wheelPos in Utils.GetWheelPositions(Vehicle)) { var ptfx = new PtfxEntityPlayer("cut_trevor1", "cs_meth_pipe_smoke", Vehicle, wheelPos.Value, new Vector3(-90, 0, 0), 7f); _smokeParticles.Add(ptfx); } for (int i = 1; i < 6; i++) { if (!ModelHandler.UnderbodyLights.TryGetValue(i, out var model)) { continue; } ModelHandler.RequestModel(model); var prop = new AnimateProp(Vehicle, model, Vector3.Zero, Vector3.Zero); _underbodyLights.Add(prop); } _flyModeInput = new NativeInput((GTA.Control) 357); _flyModeInput.OnControlLongPressed += OnFlyModeControlJustPressed; _hoverGlowing = new AnimateProp(Vehicle, ModelHandler.RequestModel(ModelHandler.HoverGlowing), Vector3.Zero, Vector3.Zero) { Duration = 1.7f }; ventGlowing = new AnimateProp(Vehicle, ModelHandler.RequestModel(ModelHandler.VentGlowing), Vector3.Zero, Vector3.Zero); }
public ReentryHandler(TimeCircuits circuits) : base(circuits) { LoadRes(); _flash = new PtfxEntityPlayer("core", "ent_anim_paparazzi_flash", Vehicle, Vector3.Zero, Vector3.Zero, 50f); }
public ReentryHandler(TimeCircuits circuits) : base(circuits) { reentryAudio = new AudioPlayer($"reentry_{LowerCaseDeloreanType}.wav", false, 2); flash = new PtfxEntityPlayer("core", "ent_anim_paparazzi_flash", Vehicle, Vector3.Zero, Vector3.Zero, 50f, false, false); }