Example #1
0
        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());
        }
Example #2
0
        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++;
                }
            }
        }
Example #4
0
        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();
        }
Example #5
0
        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);
        }
Example #7
0
        public ReentryHandler(TimeCircuits circuits) : base(circuits)
        {
            LoadRes();

            _flash = new PtfxEntityPlayer("core", "ent_anim_paparazzi_flash", Vehicle, Vector3.Zero, Vector3.Zero, 50f);
        }
Example #8
0
        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);
        }