Ejemplo n.º 1
0
        public override void SimulateUpdateAlways_EnhancementEnable()
        {
            if (StatMaster.isClient)
            {
                return;
            }

            Debug.Log(hinge.targetPosition); Debug.Log(hinge.targetRotation);

            if (SwitchKey.IsPressed || SwitchKey.EmulationPressed())
            {
                state = !state;
                Debug.Log("switch");
            }
            if (/*Held*/ HeldToggle.IsActive)
            {
                if (SwitchKey.IsReleased)
                {
                    state = !state;
                }
            }
            if (state != lastState)
            {
                lastState = state;

                if (state)
                {
                    MakeCogStatic();
                }
                else
                {
                    MakeCogNormal();
                }
            }
        }
Ejemplo n.º 2
0
        public override void SimulateUpdateAlways_EnhancementEnable()
        {
            try
            {
                if (!effected)
                {
                    if (AddSpeedKey.IsPressed || AddSpeedKey.EmulationPressed())
                    {
                        Speed    += ChangeSpeedValue.Value;
                        lastSpeed = Speed;
                    }

                    if (ReduceSpeedKey.IsPressed || ReduceSpeedKey.EmulationPressed())
                    {
                        Speed    -= ChangeSpeedValue.Value;
                        lastSpeed = Speed;
                    }
                }
            }
            catch { }

            if (toggleToggle.IsActive)
            {
                if (effectKey.IsPressed || effectKey.EmulationPressed())
                {
                    effected = !effected;
                    setValue();
                }
            }
            else
            {
                if (effectKey.IsHeld || effectKey.EmulationHeld())
                {
                    effected = true;
                }
                else
                {
                    effected = false;
                }
                setValue();
            }

            void setValue()
            {
                Speed = effected ? 0f : lastSpeed;
                if (dragTogetherToggle.IsActive)
                {
                    var rigi = GetComponent <Rigidbody>();
                    rigi.drag        = effected ? 0f : defaultDrag;
                    rigi.angularDrag = effected ? 0f : defaultAngularDrag;
                }
            }
        }
Ejemplo n.º 3
0
        public override void SimulateUpdateAlways_EnhancementEnable()
        {
            if (playKey.IsPressed || playKey.EmulationPressed())
            {
                if (!oneShotToggle.IsActive)
                {
                    if (audioSource.time == 0 && !audioSource.isPlaying)
                    {
                        audioSource.Play();
                    }
                    else if (audioSource.time > 0 && audioSource.isPlaying)
                    {
                        audioSource.Pause();
                    }
                    else if (audioSource.time > 0 && !audioSource.isPlaying)
                    {
                        audioSource.UnPause();
                    }
                }
                else
                {
                    audioSource.PlayOneShot(audioSource.clip);
                }
            }
            if (stopKey.IsPressed || stopKey.EmulationPressed())
            {
                audioSource.Stop();
            }

            if (muteKey.IsPressed || muteKey.EmulationPressed())
            {
                audioSource.mute = !audioSource.mute;
            }

            if (playKey.IsReleased)
            {
                if (releaseToPauseToggle.IsActive)
                {
                    audioSource.Pause();
                }

                if (releaseToStopToggle.IsActive)
                {
                    audioSource.Stop();
                }
            }
        }
Ejemplo n.º 4
0
        public override void SimulateUpdateAlways()
        {
            if ((launch_key.IsPressed || launch_key.EmulationPressed()) && !rocketScript.Launched)
            {
                rocketScript.LaunchEnabled = true;
                if (StatMaster.isHosting)
                {
                    var message = LaunchMessage.CreateMessage(BlockBehaviour, rocketScript.Guid.ToString());
                    ModNetworking.SendToAll(message);
                }
            }

            if (healthBar.health <= 0 && isExploded == false)
            {
                rocketScript.Explody();
            }
        }
        public override void SimulateUpdateAlways_EnhancementEnable()
        {
            if (StatMaster.isClient)
            {
                return;
            }

            if (SwitchKey.IsPressed || SwitchKey.EmulationPressed())
            {
                //Effect = !Effect;
                EffectToggle.IsActive = !EffectToggle.IsActive;
                SetVelocityCap(/*Effect*/ EffectToggle.IsActive);
            }

            if (!/*Toggle*/ ToggleToggle.IsActive)
            {
                if (SwitchKey.IsReleased || SwitchKey.EmulationReleased())
                {
                    //Effect = !Effect;
                    EffectToggle.IsActive = !EffectToggle.IsActive;
                    SetVelocityCap(/*Effect*/ EffectToggle.IsActive);
                }
            }

            if (/*LiftIndicator*/ LiftIndicatorToggle.IsActive)
            {
                ////模拟速度向量转换到升力模块的坐标
                //AD.xyz = Vector3.Scale(AD.Rigidbody.transform.InverseTransformDirection(SettingWindow.simulateVelocity_Vector), ad.AxisDrag);
                ////计算模拟速度向量模的平方
                //ad.currentVelocitySqr = Mathf.Min(SettingWindow.simulateVelocity_Vector.sqrMagnitude, GetComponent<BlockBehaviour>().GetBlockID() == (int)BlockType.Wing ? 100 : 900);
                if (ConfigurableJoint != null)
                {
                    liftVector = AD.Rigidbody.transform.TransformVector(AD.xyz * AD.currentVelocitySqr);
                    LR.SetPosition(0, transform.TransformPoint(AD.Rigidbody.centerOfMass));
                    LR.SetPosition(1, transform.TransformPoint(AD.Rigidbody.centerOfMass) + liftVector);
                }
                else
                {
                    LR.enabled = false;
                }
            }
        }
        public override void SimulateUpdateAlways_EnhancementEnable()
        {
            base.SimulateUpdateAlways_EnhancementEnable();

            if (channelIndex < 0)
            {
                return;
            }

            if (changeChannelKey.IsPressed || changeChannelKey.EmulationPressed())
            {
                if (++channelIndex > channelList.Count - 1)
                {
                    channelIndex = 0;
                }
                stickToCamera(channelIndex);
            }

            if (switchKey.IsPressed || switchKey.EmulationPressed())
            {
                mr.enabled = !mr.enabled;
            }
        }
        public override void SimulateUpdateAlways_EnhancementEnable()
        {
            if (gameObject.activeInHierarchy)
            {
                if (!GroupFireKey.Ignored)
                {
                    if ((GroupFireKey.IsHeld || GroupFireKey.EmulationHeld()) && !StatMaster.isClient)
                    {
                        if (!RocketsController.Instance.launchStarted)
                        {
                            StartCoroutine(RocketsController.Instance.LaunchRocketFromGroup(rocket.ParentMachine.PlayerID, GroupFireKey.GetKey(0)));
                        }
                    }
                }

                if (radar != null)
                {
                    if (!StatMaster.isClient)
                    {
                        radar.Switch = rocket.hasFired;
                    }

                    if (GuidedRocketToggle.IsActive)
                    {
                        //When toggle auto aim key is released, change the auto aim status
                        if (ManualOverrideKey.IsReleased || ManualOverrideKey.EmulationReleased())
                        {
                            if (radar.RadarType == RadarScript.RadarTypes.ActiveRadar)
                            {
                                //radar.meshRenderer.enabled = radar.canBeOverridden && ShowRadarToggle.IsActive && radar.Switch;
                                radar.DisplayRadarZone = radar.canBeOverridden && ShowRadarToggle.IsActive && radar.Switch;
                                //radar.meshCollider.enabled = radar.canBeOverridden && radar.Switch;
                                radar.canBeOverridden = !radar.canBeOverridden;
                                if (!radar.canBeOverridden)
                                {
                                    radar.ClearTarget(false);
                                }
                            }
                        }

                        if (LockTargetKey.IsPressed || LockTargetKey.EmulationPressed())
                        {
                            if (radar.RadarType == RadarScript.RadarTypes.ActiveRadar)
                            {
                                if (radar.canBeOverridden)
                                {
                                    radar.SetTargetManual();
                                }
                                else
                                {
                                    //保留重新搜索目标的能力
                                    radar.ClearTarget(false);
                                }
                            }
                        }
                    }
                }

                if (rocket.hasFired)
                {
                    //Let rocket controller know the rocket is fired
                    SendRocketFired();

                    if (!rocket.hasExploded)
                    {
                        if (GuidedRocketToggle.IsActive)
                        {
                            //Activate aerodynamic effect
                            guideController.enableAerodynamicEffect = StabilityToggle.IsActive;

                            //Record the launch time for the guide delay
                            if (!launchTimeRecorded)
                            {
                                launchTimeRecorded = true;
                                launchTime         = Time.time;
                            }

                            //Rocket can be triggered after the time elapsed after firing is greater than guide delay
                            if (Time.time - launchTime >= GuideDelaySlider.Value + 0.15f && TorqueSlider.Value > 0)
                            {
                                guideController.Switch = true;
                            }

                            //Proximity fuse behaviour
                            if (ProximityFuzeToggle.IsActive)
                            {
                                if (radar.TargetDistance <= ProximityFuzeRangeSlider.Value + 1f)
                                {
                                    StartCoroutine(RocketExplode());
                                }
                            }
                        }
                    }
                }

                if (rocket.hasExploded && !rocketExploMsgSent)
                {
                    Destroy(radarObject);
                    Destroy(guideObject);

                    if (HighExploToggle.IsActive)
                    {
                        StartCoroutine(RocketExplode());
                    }

                    try
                    {
                        if (RocketsController.Instance.playerGroupedRockets.TryGetValue(StatMaster.isMP ? rocket.ParentMachine.PlayerID : 0, out Dictionary <KeyCode, HashSet <TimedRocket> > groupedRockets))
                        {
                            if (groupedRockets.TryGetValue(GroupFireKey.GetKey(0), out HashSet <TimedRocket> rockets))
                            {
                                rockets.Remove(rocket);
                            }
                        }
                    }
                    catch { }
                    rocketExploMsgSent = true;
                }

                if (!NoSmokeToggle.IsActive)
                {
                    var em = smokeTrail.emission;
                    var r  = em.rate;
                    r.constant = /*TrailSmokeEmissionConstant*/ trailSmokePropertise.EmissionConstant;
                    em.rate    = r;
                    smokeTrail.startLifetime = /*TrailSmokeLifetime*/ trailSmokePropertise.Lifetime;
                    smokeTrail.startSize     = /*TrailSmokeSize*/ trailSmokePropertise.Size;
                }
            }
        }