Example #1
0
        protected MKey AddKey(string displayName, string key, List <KeyCode> keys)
        {
            MKey mKey = new MKey(displayName, key, keys[0]);

            foreach (KeyCode k in keys)
            {
                mKey.AddOrReplaceKey(keys.IndexOf(k), k);
            }

            myMapperTypes.Add(mKey);

            BlockPropertiseChangedEvent += () =>
            {
                keys.Clear();
                for (int i = 0; i < mKey.KeysCount; i++)
                {
                    keys.Add(mKey.GetKey(i));
                }
            };

            mKey.KeysChanged += () =>
            {
                keys.Clear();
                for (int i = 0; i < mKey.KeysCount; i++)
                {
                    keys.Add(mKey.GetKey(i));
                }
            };

            return(mKey);
        }
Example #2
0
 public IEnumerable <MappedKeyItem> GetMKeys(MKey key)
 {
     // Unified interface to get all Int codes from any Key and ExtKey
     if (key is MExtKey mk)
     {
         //for (int i = 0; i < key.KeysCount; ++i)
         //    yield return mk.ResolveKey(i);
         foreach (var k in mk.ResolveKeys())
         {
             yield return(k);
         }
     }
     else
     {
         if (key.useMessage)
         {
             for (int i = 0; i < key.message.Length; ++i)
             {
                 yield return(new MappedKeyItem(key.message[i]));
             }
         }
         else
         {
             for (int i = 0; i < key.KeysCount; ++i)
             {
                 yield return(new MappedKeyItem(key.GetKey(i)));
             }
         }
     }
 }
        public override void SafeAwake()
        {
            HardnessMenu = /*BB.*/ AddMenu("Hardness", /*HardnessIndex*/ 0, LanguageManager.Instance.CurrentLanguage.MetalHardness /*, false*/);

            ExtendKey = /*BB.*/ AddKey(LanguageManager.Instance.CurrentLanguage.Extend, "Extend", KeyCode.E);
            ShrinkKey = /*BB.*/ AddKey(LanguageManager.Instance.CurrentLanguage.Retract, "Shrink", KeyCode.F);

            HydraulicToggle = /*BB.*/ AddToggle(LanguageManager.Instance.CurrentLanguage.HydraulicMode, "Pressure", /*Hydraulic*/ false);

            R2CToggle = /*BB.*/ AddToggle(LanguageManager.Instance.CurrentLanguage.ReturnToCenter, "Return to center", /* R2C*/ false);

            DamperSlider = /*BB.*/ AddSlider(LanguageManager.Instance.CurrentLanguage.Damper, "Damper", /*Damper*/ 1f, 0f, 5f);

            FeedSlider = /*BB.*/ AddSlider(LanguageManager.Instance.CurrentLanguage.FeedSpeed, "feed", /*Feed*/ 0.5f, 0f, 2f);

            ExtendLimitSlider = /*BB.*/ AddSlider(LanguageManager.Instance.CurrentLanguage.ExtendLimit, "ExtendLimit", /*ExtendLimit*/ 1f, 0f, 3f);

            ShrinkLimitSlider = /*BB.*/ AddSlider(LanguageManager.Instance.CurrentLanguage.RetractLimit, "ShrinkLimit", /*RetractLimit*/ 1f, 0f, 3f);

            SpeedSlider = FeedSlider;

            base.SafeAwake();
#if DEBUG
            ConsoleController.ShowMessage("悬挂添加进阶属性");
#endif
        }
Example #4
0
        MExtKey ExtendKey(MKey baseKey, KeyCode defaultValue)
        {
            var newKey = new MExtKey(baseKey.NameLocalisationId, baseKey.Key, defaultValue, this, baseKey.isEmulator);

            //newKey.DeSerialize(baseKey.Serialize());
            return(newKey);
        }
Example #5
0
        public override MKey AddKey(MKey key)
        {
            key = base.AddKey(ExtendKey(key, key.GetKey(0)));
            var keyIdx = MapperTypes.IndexOf(key);

            return(key);
        }
Example #6
0
        public override void SafeAwake()
        {
            #region 基本功能参数初始化

            launch_key              = AddKey(LanguageManager.Instance.CurrentLanguage.launch, "Launch", KeyCode.L);
            launch_key.KeysChanged += () => { changedPropertise(); };

            thrustForce_slider = AddSlider(LanguageManager.Instance.CurrentLanguage.thrustForce, "Thrust Force", 1, 0f, 10f);
            thrustForce_slider.ValueChanged += (value) => { changedPropertise(); };

            thrustTime_slider = AddSlider(LanguageManager.Instance.CurrentLanguage.thrustTime, "Thrust Time", 1, 0f, 10f);
            thrustTime_slider.ValueChanged += (value) => { changedPropertise(); };

            DragForce_slider = AddSlider(LanguageManager.Instance.CurrentLanguage.drag, "DRAG", 0.5f, 0.2f, 3f);
            DragForce_slider.ValueChanged += (value) => { changedPropertise(); };

            thrustDelay_slider = AddSlider(LanguageManager.Instance.CurrentLanguage.thrustDelay, "Thrust Delay", 0, 0f, 10f);
            thrustDelay_slider.ValueChanged += (value) => { changedPropertise(); };

            //colliderDelay_slider = AddSlider("碰撞开启 0.05s", "Collider Enable", 0f, 0f, 0.5f);
            //colliderDelay_slider.ValueChanged += (value) => { changedPropertise(); };

            #endregion

            healthBar = GetComponent <BlockHealthBar>();

            initRocketScript();

            changedPropertise();

            //DisplayInMapper(0);
        }
Example #7
0
        public override void SafeAwake()
        {
            HardnessMenu = BB.AddMenu(LanguageManager.hardness, Hardness, MetalHardness, false);
            HardnessMenu.ValueChanged += (int value) => { Hardness = value; ChangedProperties(); };

            ExtendKey = BB.AddKey(LanguageManager.extend, "Extend", KeyCode.E);
            ShrinkKey = BB.AddKey(LanguageManager.retract, "Shrink", KeyCode.F);

            HydraulicToggle          = BB.AddToggle(LanguageManager.hydraulicMode, "Pressure", Hydraulic);
            HydraulicToggle.Toggled += (bool value) => { Hydraulic = R2CToggle.DisplayInMapper = ExtendKey.DisplayInMapper = ShrinkKey.DisplayInMapper = FeedSlider.DisplayInMapper = ExtendLimitSlider.DisplayInMapper = ShrinkLimitSlider.DisplayInMapper = value; ChangedProperties(); };

            R2CToggle          = BB.AddToggle(LanguageManager.returnToCenter, "Return to center", R2C);
            R2CToggle.Toggled += (bool value) => { R2C = value; ChangedProperties(); };

            FeedSlider = BB.AddSlider(LanguageManager.feedSpeed, "feed", Feed, 0f, 2f);
            FeedSlider.ValueChanged += (float value) => { Feed = value; ChangedProperties(); };

            ExtendLimitSlider = BB.AddSlider(LanguageManager.extendLimit, "ExtendLimit", ExtendLimit, 0f, 3f);
            ExtendLimitSlider.ValueChanged += (float value) => { ExtendLimit = value; ChangedProperties(); };

            ShrinkLimitSlider = BB.AddSlider(LanguageManager.retractLimit, "ShrinkLimit", RetractLimit, 0f, 3f);
            ShrinkLimitSlider.ValueChanged += (float value) => { RetractLimit = value; ChangedProperties(); };



#if DEBUG
            ConsoleController.ShowMessage("悬挂添加进阶属性");
#endif
        }
Example #8
0
        public override void SimulateUpdateAlways_EnhancementEnable()
        {
            if (StatMaster.isClient)
            {
                return;
            }

            getLastKey();

            if (!(leftKey.IsHeld || rightKey.IsHeld) && ReturnToCenter && steeringWheel.AngleToBe != 0)
            {
                rigidbody.WakeUp();

                float angleSpeed = Time.deltaTime * 100f * steeringWheel.targetAngleSpeed * rotationSpeedSlider.Value;

                float target = 0;

                if (!Near && lastKey != null)
                {
                    float sign = Mathf.Sign(steeringWheel.AngleToBe);

                    if (lastKey.Key == "left" && sign < 0)
                    {
                        target = 179;
                    }
                    else if (lastKey.Key == "right" && sign > 0)
                    {
                        target = -179;
                    }
                    else
                    {
                        target = 0;
                    }
                }
                else
                {
                    target = 0;
                }
                steeringWheel.AngleToBe = Mathf.MoveTowardsAngle(steeringWheel.AngleToBe, target, angleSpeed);
            }

            void getLastKey()
            {
                if (steeringWheel.AngleToBe != 0f)
                {
                    if (leftKey.IsReleased)
                    {
                        lastKey = leftKey;
                    }
                    if (rightKey.IsReleased)
                    {
                        lastKey = rightKey;
                    }
                }
                else
                {
                    lastKey = null;
                }
            }
        }
        protected override void SafeAwake()
        {
            CameraLookAtToggle          = AddToggle("追踪摄像机", "TrackingCamera", cameraLookAtToggled);
            CameraLookAtToggle.Toggled += (bool value) => { cameraLookAtToggled = RecordTargetToggle.DisplayInMapper = LockTargetKey.DisplayInMapper = RotateSpeedSlider.DisplayInMapper = ResetViewKey.DisplayInMapper = value; ChangedProperties(); };
            BlockDataLoadEvent         += (XDataHolder BlockData) => { cameraLookAtToggled = CameraLookAtToggle.IsActive; };

            RecordTargetToggle          = AddToggle("记录目标", "RecordTarget", recordTarget);
            RecordTargetToggle.Toggled += (bool value) =>
            {
                recordTarget = value;
                ChangedProperties();
            };
            BlockDataLoadEvent += (XDataHolder BlockData) => { recordTarget = RecordTargetToggle.IsActive; };

            RotateSpeedSlider = AddSlider("追踪速度", "RotateSpeed", rotateSpeed, 1, 100, false);
            RotateSpeedSlider.ValueChanged += (float value) => { rotateSpeed = value; ChangedProperties(); };
            BlockDataLoadEvent             += (XDataHolder BlockData) => { rotateSpeed = RotateSpeedSlider.Value; };

            LockTargetKey = AddKey("锁定目标", "LockTarget", lockKeys);
            LockTargetKey.InvokeKeysChanged();

            ResetViewKey = AddKey("暂停/恢复追踪", "ResetView", resetKeys);
            ResetViewKey.InvokeKeysChanged();

            // Get the actual camera's transform, not the joint's transform
            realCameraTransform = GetComponent <FixedCameraBlock>().CompoundTracker;
            realCameraTransform.gameObject.AddComponent <SmoothLookAt>();
            defaultRotation = realCameraTransform.rotation;
            // Add reference to the camera's buildindex
            selfIndex = GetComponent <BlockBehaviour>().BuildIndex;

#if DEBUG
            ConsoleController.ShowMessage("摄像机添加进阶属性");
#endif
        }
        protected override void SafeAwake()
        {
            HardnessMenu = AddMenu("Hardness", Hardness, new List <string> {
                "低碳钢", "中碳钢", "高碳钢"
            }, false);
            HardnessMenu.ValueChanged += (int value) => { Hardness = value; ChangedProperties(); };
            BlockDataLoadEvent        += (XDataHolder BlockData) => { Hardness = HardnessMenu.Value; };

            ExtendKey = AddKey("伸出", "Extend", ExtendKeyCodes);
            ShrinkKey = AddKey("收回", "Shrink", ShrinkKeyCodes);

            PressureToggle          = AddToggle("液压模式", "Pressure", Pressure);
            PressureToggle.Toggled += (bool value) => { Pressure = ExtendKey.DisplayInMapper = ShrinkKey.DisplayInMapper = FeedSlider.DisplayInMapper = value; ChangedProperties(); };
            BlockDataLoadEvent     += (XDataHolder BlockData) => { Pressure = PressureToggle.IsActive; };

            FeedSlider = AddSlider("进给速度", "feed", Feed, 0f, 2f, false);
            FeedSlider.ValueChanged += (float value) => { Feed = value; ChangedProperties(); };
            BlockDataLoadEvent      += (XDataHolder BlockData) => { Feed = FeedSlider.Value; };

            ExtendLimitSlider = AddSlider("伸出限制", "ExtendLimit", ExtendLimit, 0f, 3f, false);
            ExtendLimitSlider.ValueChanged += (float value) => { ExtendLimit = value; ChangedProperties(); };
            BlockDataLoadEvent             += (XDataHolder BlockData) => { ExtendLimit = ExtendLimitSlider.Value; };

            ShrinkLimitSlider = AddSlider("收缩限制", "ShrinkLimit", ShrinkLimit, 0f, 3f, false);
            ShrinkLimitSlider.ValueChanged += (float value) => { ShrinkLimit = value; ChangedProperties(); };
            BlockDataLoadEvent             += (XDataHolder BlockData) => { ShrinkLimit = ShrinkLimitSlider.Value; };



#if DEBUG
            ConsoleController.ShowMessage("悬挂添加进阶属性");
#endif
        }
        /// <summary>
        ///  return value or null
        /// </summary>
        public MValue GetValue(MKey k)
        {
            MValue v;

            return(_dict.TryGetValue(k, out v)
              ? v
              : null);
        }
Example #12
0
        public override void SafeAwake()
        {
            SwitchKey = /*BB.*/ AddKey("Switch", "Switch", KeyCode.R);
            SwitchKey.InvokeKeysChanged();

            HeldToggle = /*BB.*/ AddToggle("Toggle", "Toggle", /*Held*/ false);
            //HeldToggle.Toggled += (value) => { Held = value; ChangedProperties(); };
        }
Example #13
0
    public override void SafeAwake()
    {
        UpKey          = AddKey(LanguageManager.Instance.CurrentLanguage.UpKey, "Up", KeyCode.U);
        DownKey        = AddKey(LanguageManager.Instance.CurrentLanguage.DownKey, "Down", KeyCode.J);
        BackKey        = AddKey(LanguageManager.Instance.CurrentLanguage.BackKey, "Back", KeyCode.K);
        ClutchKey      = AddKey(LanguageManager.Instance.CurrentLanguage.ClutchKey, "Clutch", KeyCode.C);
        ModelMenu      = AddMenu("Model", 0, LanguageManager.Instance.CurrentLanguage.Model);
        StrengthSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.Strength, "Force", Strength, 0, 10f);
        RatioSlider    = AddSlider(LanguageManager.Instance.CurrentLanguage.Ratio, "Ratio", Ratio, 0f, 2f);

        ModelMenu.ValueChanged += (value) =>
        {
            Model = (model)ModelMenu.Value;
            DisplayInMapper();
        };
        StrengthSlider.ValueChanged += (value) => { Strength = value; };
        RatioSlider.ValueChanged    += (value) => { Ratio = value; };

        OutAxis = null;
        foreach (var go in GetComponentsInChildren <Transform>())
        {
            if (go.name == "OutAxis")
            {
                OutAxis = go.gameObject;
            }
        }

        if (OutAxis == null)
        {
            OutAxis      = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
            OutAxis.name = "OutAxis";
            OutAxis.transform.SetParent(transform);
            OutAxis.transform.position         = transform.TransformPoint(transform.InverseTransformPoint(transform.position) + Vector3.forward * 0.75f);
            OutAxis.transform.rotation         = transform.rotation;
            OutAxis.transform.localEulerAngles = Vector3.right * 90f;
            OutAxis.transform.localScale       = Vector3.one * 0.2f;

            CJ_Axis                   = OutAxis.AddComponent <ConfigurableJoint>();
            CJ_Axis.axis              = Vector3.up; CJ_Axis.secondaryAxis = Vector3.right;
            CJ_Axis.connectedBody     = Rigidbody;
            CJ_Axis.angularYMotion    = CJ_Axis.angularZMotion = ConfigurableJointMotion.Locked;
            CJ_Axis.xMotion           = CJ_Axis.yMotion = CJ_Axis.zMotion = ConfigurableJointMotion.Locked;
            CJ_Axis.rotationDriveMode = RotationDriveMode.XYAndZ;

            AddPoint(OutAxis, Vector3.up * -1.25f, Vector3.right * 90f, true);
        }
        else
        {
            CJ_Axis = OutAxis.GetComponent <ConfigurableJoint>();
        }
        axisRigidbody             = OutAxis.GetComponent <Rigidbody>();
        axisRigidbody.isKinematic = true;

        CJ = GetComponent <ConfigurableJoint>();

        DisplayInMapper();
    }
Example #14
0
 public override void SafeAwake()
 {
     ActivationKey = AddKey("Activation", //按键信息
                            "ACT",        //名字
                            KeyCode.P);   //默认按键
     CloakFieldSize         = AddSlider("Clock Field Size", "size", 10, 0.01f, 50);
     CloakExtendingTime     = AddSlider("Clock Field Extend Time", "time", 3, 0, 20);
     DirectionVisualization = AddToggle("Visual Effect for activition", "vfx", true);
 }
Example #15
0
        /// <summary>
        ///     Creates a Block handler.
        /// </summary>
        /// <param name="bb">BlockBehaviour object.</param>
        public Piston(BlockBehaviour bb) : base(bb)
        {
            _sc = bb.GetComponent <SliderCompress>();

            _toggleMode = ToggleFieldInfo.GetValue(_sc) as MToggle;
            _extendKey  = ExtendFieldInfo.GetValue(_sc) as MKey;

            _defaultStartLimit = _sc.startLimit;
            _defaultNewLimit   = _sc.newLimit;
        }
Example #16
0
        public override void SafeAwake()
        {
            activateKey       = AddKey("Activate", "shoot", KeyCode.Y);
            rangeSlider       = AddSlider("Range", "strength", 15f, 0.5f, 30f);
            radiusSlider      = AddSlider("Radius", "radius", GetRadiusFromRange(rangeSlider.Value), 0.5f, 2f);
            holdToShootToggle = AddToggle("Hold to shoot", "hold-to-fire", false);

            rangeSlider.ValueChanged  += RangeChanged;
            radiusSlider.ValueChanged += RadiusChanged;
        }
Example #17
0
        /// <summary>
        /// Creates a Block handler.
        /// </summary>
        /// <param name="bb">BlockBehaviour object.</param>
        public Piston(BlockBehaviour bb) : base(bb)
        {
            sc = bb.GetComponent <SliderCompress>();

            toggleMode = toggleFieldInfo.GetValue(sc) as MToggle;
            extendKey  = extendFieldInfo.GetValue(sc) as MKey;

            defaultStartLimit = sc.startLimit;
            defaultNewLimit   = sc.newLimit;
        }
Example #18
0
        public float ReadValue(MKey key)
        {
            // Get max output value from all codes, used by MKey
            if (IsNativeHeld(key))
            {
                return(1);
            }

            return(GetMKeys(key).Select(x => IsAnyEmulating(x)).DefaultIfEmpty().Max());
        }
Example #19
0
        public override void SafeAwake()
        {
            size       = AddSlider("Portal Size", "size", Size, 0.5f, 3f);
            clipPct    = AddSlider("Portal Overlap", "clip", 0.12f, 0f, 0.2f);
            correction = AddSlider("Center Correction", "correction", Correction, 0f, 1f);
            shootA     = AddKey("Orange Portal", "shoot-a", KeyCode.Y);
            shootB     = AddKey("Blue Portal", "shoot-b", KeyCode.U);

            size.ValueChanged       += UpdateAllPortalDevicesSize;
            correction.ValueChanged += UpdateAllPortalDevicesCentering;
        }
Example #20
0
 public override void SafeAwake()
 {
     activateKey = AddKey("Activate", "activate", KeyCode.B);
     triggerMode = AddMenu("triggerMode", 0, new List <string>()
     {
         "Trigger: Press",
         "Trigger: Release"
     });
     configureToggle          = AddToggle("Configure", "configure", false);
     configureToggle.Toggled += Toggled;
 }
Example #21
0
 public override void OnRemoteEmulate(MKey key, bool emulate)
 {
     if (!emulate)
     {
         ToggleLED(0);
     }
     else
     {
         ToggleLED(1);
     }
 }
Example #22
0
        void EnglishInitialize()
        {
            // Setup config window
            LaserEditModeMenu = AddMenu("laserEditMode", 0, new List <string>()
            {
                "Ability", "Misc."
            });
            //LaserAbilityModeMenu = AddMenu("laserAbilityMode", 0, new List<string>() { "Fire", "Kinetic", "Freeze", "Explosive", "Just Visual Effect" });
            LaserAbilityModeMenu = AddMenu("laserAbilityMode", 0, new List <string>()
            {
                "Fire", "Kinetic", "Not Available", "Explosive(N/A in MP)", "Visual Effects Only"
            });

            LaserColourSlider = AddColourSlider("Beam Colour", "laserColour", Color.red, true);

            LaserFocusSlider  = AddSlider("Laser Focus", "laserFocus", 1f, 0.08f, 0.5f);
            LaserLengthSlider = AddSlider("Laser Length", "laserLength", 200f, 0.1f, 1500);
            LaserSafetyRange  = AddSlider("Safety Length", "laserSafeLength", 1f, 0.1f, 1500);

            //LaserKineticUpDownSlider = AddSlider("Up/Down Force", "laserKinUpDown", 1f, -2.5f, 2.5f);
            LaserKineticInOutSlider = AddSlider("Force", "laserKinInOut", 0f, -2.5f, 2.5f);
            //LaserKineticSideSlider = AddSlider("Sideways Force", "laserKinSide", 0f, -2.5f, 2.5f);

            //LaserFastUpdateToggle = AddToggle("Fast Raycasting", "laserFastUpdate", false);
            LaserOnOffToggle  = AddToggle("Start On", "laserOnOffToggle", true);
            LightOptionToggle = AddToggle("Always Provide Light", "LightProbeToggle", false);
            LaserOnOffKey     = AddKey("On/Off", "laserOnOffKey", KeyCode.Y);

            LaserWidth = AddSlider("Laser Width", "laserWidth", 0.5f, 0.001f, 10f);

            PenetrativeLengthMultiplier = AddSlider("Penetrative Multiplier", "PeneMulty", 0, 0, 1);

            EffectActivateKey = AddKey("Charge Laser", "DoBomb", KeyCode.K);

            EffectKeyText1 = "Charge Laser";
            EffectKeyText2 = "Deploy Bomb";


            ShrinkEffectToggle = AddToggle("Use Charging Effect", "UseShrink", true);
            InvertShrinking    = AddToggle("Inverse Shrinking to Expanding", "InverseShrink", false);
            ChargeHoldGasp     = AddSlider("Charging Countdown", "CountDown", 2.3f, 0, 10f);

            EffectParticleChargingPosition = AddMenu("ChargePosition", 0, new List <string> {
                "Both block and target", "Only Block have particles", "Only target have particles", "None"
            });

            HoldingToEmit = AddToggle("Only emit laser when holding", "HoldOnly", false);

            UseLegacy   = AddToggle("Use Legacy Rending", "Legacy", true);
            UseNotTrans = AddToggle("Nontransparent", "NonTran", false);

            // register mode switching functions with menu delegates
            LaserAbilityModeMenu.ValueChanged += CycleAbilityMode;
        }
        public override void SafeAwake()
        {
            Key1 = AddKey("Spawn block",             //按键信息
                          "Spawn",                   //名字
                          KeyCode.V);                //默认按键

            List <string> list = new List <string>();

            foreach (var pair in PrefabMaster.BlockPrefabs)
            {
                list.Add(pair.Value.name);
            }
            模块ID = AddMenu("Block", 0, list);
            模块ID.ValueChanged += (v) => {
                blockModified = true;
            };

            modifyBlock          = AddToggle("Modify Spawned Block", "modifySpawnedBlock", false);
            modifyBlock.Toggled += (b) => {
                if (b)
                {
                    if (blockModified)
                    {
                        SpawnChild();
                    }
                    modifyBlock.IsActive = false;
                    BlockMapper.Open(blockToSpawn);
                }
            };

            生成间隔 = AddSlider("Spawn Frequency",               //滑条信息
                             "Freq",                          //名字
                             0.25f,                           //默认值
                             0f,                              //最小值
                             10f);                            //最大值

            生成大小 = AddSlider("Block Scale",                   //滑条信息
                             "Scale",                         //名字
                             1f,                              //默认值
                             0.01f,                           //最小值
                             100f);                           //最大值

            继承速度 = AddToggle("Inherit My Velocity",           //toggle信息
                             "IMV",                           //名字
                             true);                           //默认状态
            FunnyMode = AddToggle("Funny Mode",               //toggle信息
                                  "FMD",                      //名字
                                  false);                     //默认状态
            FunnyMode.Toggled += (t) => {
                blockModified = true;
                modifyBlock.DisplayInMapper = !t;
            };
        }
        protected override void OnSimulateStart()
        {
            // Initialisation for simulation
            fireTimeRecorded  = canTrigger = targetAquired = searchStarted = targetHit = false;
            activeGuideRocket = true;
            target            = null;
            hitsIn            = Physics.OverlapSphere(rocket.transform.position, safetyRadius);
            StopAllCoroutines();
            // Set high explo to false
            bombHasExploded = false;
            foreach (var slider in BB.Sliders)
            {
                if (slider.Key == "charge")
                {
                    explosiveCharge = slider.Value;

                    // Make sure the high explo mode is not too imba
                    if (highExploActivated)
                    {
                        bombExplosiveCharge = Mathf.Clamp(explosiveCharge, 0f, 1.5f);
                    }
                }
            }
            foreach (var key in BB.Keys)
            {
                if (key.Key == "launch")
                {
                    LaunchKey = key;
                }
            }
            if (recordTarget && !activeGuideRocket)
            {
                // Trying to read previously saved target
                int            targetIndex = -1;
                BlockBehaviour targetBlock = new BlockBehaviour();
                // Read the target's buildIndex from the dictionary
                if (!Machine.Active().GetComponent <TargetScript>().previousTargetDic.TryGetValue(selfIndex, out targetIndex))
                {
                    target = null;
                    return;
                }
                // Aquire target block's transform from the target's index
                try
                {
                    Machine.Active().GetBlockFromIndex(targetIndex, out targetBlock);
                    target = Machine.Active().GetSimBlock(targetBlock).transform;
                }
                catch (Exception)
                {
                    ConsoleController.ShowMessage("Cannot get target block's transform");
                }
            }
        }
        /// <summary>
        /// retrieves cached MKey or generates it if needed
        /// </summary>
        public MKey GetKey(uint id)
        {
            MKey k;

            if (_idKeyCache.TryGetValue(id, out k) == false)
            {
                k = new MKey(id);
                _idKeyCache.Add(id, k);
            }

            return(k);
        }
        /// <summary>
        /// retrieves cached MKey or generates it if needed
        /// </summary>
        public MKey GetKey(int hash)
        {
            MKey k;

            if (_hashKeyCache.TryGetValue(hash, out k) == false)
            {
                k = new MKey(hash);
                _hashKeyCache.Add(hash, k);
            }

            return(k);
        }
        public override void SafeAwake()
        {
            SwitchKey           = /*BB.*/ AddKey(LanguageManager.Instance.CurrentLanguage.Enabled, "Switch", KeyCode.O);
            HardnessMenu        = /*BB.*/ AddMenu("Hardness", /*HardnessIndex*/ 1, LanguageManager.Instance.CurrentLanguage.WoodenHardness /*, false*/);
            EffectToggle        = /*BB.*/ AddToggle(LanguageManager.Instance.CurrentLanguage.EnabledOnAwake, "Effect", /*Effect*/ true);
            ToggleToggle        = /*BB.*/ AddToggle(LanguageManager.Instance.CurrentLanguage.ToggleMode, "Toggle Mode", /*Toggle*/ true);
            LiftIndicatorToggle = /*BB.*/ AddToggle(LanguageManager.Instance.CurrentLanguage.LiftIndicator, "Lift Indicator", /*LiftIndicator*/ false);
            base.SafeAwake();

#if DEBUG
            ConsoleController.ShowMessage("桨叶添加进阶属性");
#endif
        }
        public override void SafeAwake()
        {
            Key1 = AddKey("Lock On", //按键信息
                                 "Locked",           //名字
                                 KeyCode.T);       //默认按键

            Key2 = AddKey("Launch", //按键信息
                                 "Launch",           //名字
                                 KeyCode.X);       //默认按键

            NoBlocking = AddToggle("Destroy everything on the way",   //toggle信息
                                       "NoBK",       //名字
                                       false);             //默认状态
        }
Example #29
0
                public override int GetHashCode()
                {
                    int hash = 1;

                    if (mKey_ != null)
                    {
                        hash ^= MKey.GetHashCode();
                    }
                    if (mValue_ != null)
                    {
                        hash ^= MValue.GetHashCode();
                    }
                    return(hash);
                }
Example #30
0
        private void ChineseInit()
        {
            ActivateTargetIndicator = AddKey("投弹指示光斑",   //按键信息
                                             "TI",       //名字
                                             KeyCode.C); //默认按键

            HideThisPanel = AddToggle("隐藏本模块的信息显示器",     //toggle信息
                                      "Hide",            //名字
                                      false);            //默认状态

            //HidePanel = AddKey("Hide Panel", "Panel", KeyCode.Backspace);

            AdvTI = AddToggle("高级投弹指示器",   //toggle信息
                              "AdvTI",     //名字
                              false);      //默认状态
            AdvTIS = AddSlider("投弹指示器线段数量", "LineAmt", 20f, 2f, 45f);

            StartColour = AddColourSlider("投弹指示器起始色", "SColor", Color.red, true);

            EndColour = AddColourSlider("投弹指示器结束色", "EColor", Color.yellow, true);


            ConfigMenu = AddMenu("ConfigMenu", 0, new List <string> {
                "飞行信息设置", "HUD设置"
            });

            HUDConfigMenu = AddMenu("HUDConfigMenu", 0, new List <string> {
                "中心", "高度", "俯仰", "罗盘", "地图中心", "小地图"
            });

            ActiveHUD            = AddKey("开启HUD", "HUD", KeyCode.F);
            Height               = AddToggle("高度指示", "HeightIndi", true);
            Pitch                = AddToggle("俯仰指示", "PitchIndi", true);
            Center               = AddToggle("屏幕中心指示", "CenterIndi", true);
            Direction            = AddToggle("罗盘", "DirectIndi", true);
            MapCenter            = AddToggle("地图中心指示", "MapCenterIndi", true);
            HeightIndicator      = AddToggle("相机高度指示", "MyHeightIndi", true);
            IceFreezeIndicator   = AddToggle("结冰层指示", "IceIndi", true);
            GroundIndicator      = AddToggle("地面指示", "0mIndi", true);
            OneThousandIndicator = AddToggle("1000m指示", "1000mIndi", true);
            MiniMap              = AddToggle("小地图", "Minimap", false);
            MiniMapLerpValue     = AddSlider("小地图平滑度", "MinimapLerp", 0.015f, 0, 1);
            MiniMapHeight        = AddSlider("小地图高度", "MinimapHeight", 400, 5, 1300);
            UseLockWindow        = AddToggle("使用预锁定窗口", "UseLockWindow", false);
            LockerHeight         = AddSlider("预锁定窗口高度", "LockerH", 800, 100, 2000);
            LockerWidth          = AddSlider("预锁定窗口宽度", "LockerW", 800, 100, 2000);

            ReduceCameraShake = AddToggle("减轻相机抖动", "Noshake", false);
        }
Example #31
0
        void ChineseInitialize()
        {
            // Setup config window
            LaserEditModeMenu = AddMenu("laserEditMode", 0, new List <string>()
            {
                "功能", "通用设置"
            });
            LaserAbilityModeMenu = AddMenu("laserAbilityMode", 0, new List <string>()
            {
                "点燃", "施力", "N/A", "爆破", "就好看"
            });

            LaserColourSlider = AddColourSlider("激光颜色", "laserColour", Color.red, true);

            LaserFocusSlider        = AddSlider("聚焦乘子", "laserFocus", 1f, 0.08f, 0.5f);
            LaserLengthSlider       = AddSlider("长度", "laserLength", 200f, 0.1f, 1500);
            LaserSafetyRange        = AddSlider("安全长度", "laserSafeLength", 1f, 0.1f, 1500);
            LaserKineticInOutSlider = AddSlider("施力力度", "laserKinInOut", 0f, -2.5f, 2.5f);

            //LaserFastUpdateToggle = AddToggle("Fast Raycasting", "laserFastUpdate", false);
            LaserOnOffToggle  = AddToggle("默认开启", "laserOnOffToggle", true);
            LightOptionToggle = AddToggle("保持提供灯光", "LightProbeToggle", false);
            LaserOnOffKey     = AddKey("发射激光", "laserOnOffKey", KeyCode.Y);

            LaserWidth = AddSlider("宽度", "laserWidth", 0.5f, 0.001f, 10f);

            PenetrativeLengthMultiplier = AddSlider("穿透损失乘子", "PeneMulty", 0, 0, 1);

            EffectActivateKey = AddKey("聚能特效", "DoBomb", KeyCode.K);
            EffectKeyText1    = "聚能特效";
            EffectKeyText2    = "部署炸弹";

            ShrinkEffectToggle = AddToggle("使用粒子/收缩特效", "UseShrink", true);
            InvertShrinking    = AddToggle("反转为扩散特效(粒子不变)", "InverseShrink", false);
            ChargeHoldGasp     = AddSlider("间隔", "CountDown", 2.3f, 0, 10f);

            EffectParticleChargingPosition = AddMenu("ChargePosition", 0, new List <string> {
                "所有点添加粒子", "发射端添加粒子效果", "接触点添加粒子效果", "无粒子效果"
            });

            HoldingToEmit = AddToggle("仅在按住时激发激光", "HoldOnly", false);

            UseLegacy = AddToggle("使用传统渲染", "Legacy", false);

            UseNotTrans = AddToggle("使用不透明材质", "NonTran", false);

            // register mode switching functions with menu delegates
            LaserAbilityModeMenu.ValueChanged += CycleAbilityMode;
        }
        public override void SafeAwake()
        {
            Key1 = AddKey("Spawn block", //按键信息
                                 "Spawn",           //名字
                                 KeyCode.V);       //默认按键

            List<string> list = new List<string>();
            foreach (BlockPrefab pair in PrefabMaster.BlockPrefabs.Values)
            {
                list.Add(pair.gameObject.GetComponent<MyBlockInfo>().blockName);
                对应的IDs.Add(pair.ID);
            }
            模块ID = AddMenu("Block", 0, list);
            模块ID.ValueChanged += IDChanged;

            modifyBlock = AddToggle("Modify Spawned Block", "modifySpawnedBlock", false);
            modifyBlock.Toggled += (b) => {
                if (b)
                {
                    SpawnChild();
                    modifyBlock.IsActive = false;
                    BlockMapper.Open(blockToSpawn);
                }
            };

            生成间隔 = AddSlider("Spawn Frequency",       //滑条信息
                                    "Freq",       //名字
                                   0.25f,            //默认值
                                    0f,          //最小值
                                    10f);           //最大值

            生成大小 = AddSlider("Block Scale",       //滑条信息
                                    "Scale",       //名字
                                    1f,            //默认值
                                    0.01f,          //最小值
                                    100f);           //最大值

            继承速度 = AddToggle("Inherit My Velocity",   //toggle信息
                                       "IMV",       //名字
                                       true);             //默认状态
            FunnyMode = AddToggle("Funny Mode",   //toggle信息
                                       "FMD",       //名字
                                       false);             //默认状态
            FunnyMode.Toggled += (t) => {
                modifyBlock.DisplayInMapper = !t;
            };
        }
        public override void SafeAwake()
        {
            引爆 = AddKey("Detonated", //按键信息
                                 "Deto",           //名字
                                 KeyCode.K);       //默认按键

            保险 = AddKey("Safety", //按键信息
                                 "Safe",           //名字
                                 KeyCode.Alpha1);       //默认按键

            延迟 = AddSlider("Collision Explosion Delay",       //滑条信息
                                    "Delay",       //名字
                                    0.2f,            //默认值
                                    0f,          //最小值
                                    10f);           //最大值
            模式 = AddMenu("Modes", 0, new List<string>() { "Bomb", "Motion Stopper", "DestroyImmediate" });
        }
        public override void SafeAwake()
        {
            ActivateTargetIndicator = AddKey("Target Indicator", //按键信息
                                 "TI",           //名字
                                 KeyCode.C);       //默认按键

            HideThisPanel = AddToggle("Hide this\n block's panel",   //toggle信息
                                       "Hide",       //名字
                                       false);             //默认状态

            ActiveHUD = AddKey("Toggle HUD", "HUD", KeyCode.Tab);
            HidePanel = AddKey("Hide Panel", "Panel", KeyCode.Backspace);

            AdvTI = AddToggle("ADVANCED \n Target Indicator",   //toggle信息
                                       "AdvTI",       //名字
                                       false);             //默认状态
            AdvTIS = AddSlider("Amount of Lines", "LineAmt", 20f, 2f, 45f);

            StartColour = AddColourSlider("Start Color of the line", "SColor", Color.red);

            EndColour = AddColourSlider("End Color of the line", "EColor", Color.yellow);
        }
    //BlockLoader Specific method: is called right after the script is made - usually,
    //this is done for all blocks of this type and is safe as it waits for stuff like
    //colliders, visuals, resources and so on
    public override void SafeAwake()
    {
        //Set the blocks original scale
            orgScale = transform.localScale;

            activateKey = AddKey("Sound The Horn", //Display text
                                 "play",           //save name
                                 KeyCode.H);       //Keyboard button

            pitchSlider = AddSlider("Pitch",       //Display Text
                                    "pitch",       //save name
                                    1f,            //default value
                                    0.5f,          //minimum value
                                    2f);           //maximum value

            volumeSlider = AddSlider("Volume",       //Display Text
                                     "volume",       //save name
                                     1f,             //default value
                                     0.1f,           //minimum value
                                     1f);            //maximum value

            semitoneToggle = AddToggle("Semitone Snap",   //Display Text
                                       "semitones",       //save name
                                       true);             //default value

            //Call HandleSemiToneSnap() when the slider value changes
            pitchSlider.ValueChanged += HandleSemitoneSnap;
    }
        public override void SafeAwake()
        {
            Key1 = AddKey("Lock On", //按键信息
                                 "Locked",           //名字
                                 KeyCode.T);       //默认按键

            Key2 = AddKey("Launch", //按键信息
                                 "Launch",           //名字
                                 KeyCode.X);       //默认按键

            延迟 = AddSlider("Delay for detecting impact and target",       //滑条信息
                                    "Delay",       //名字
                                    0f,            //默认值
                                    0f,          //最小值
                                    5f);           //最大值

            不聪明模式 = AddToggle("Disable Smart Attack",   //toggle信息
                                       "NoSA",       //名字
                                       false);             //默认状态
        }