//#region Network
        ///// <summary>Block, GunbodyVelocity, BulletGuid,</summary>
        //public static MessageType FireMessage = ModNetworking.CreateMessageType(DataType.Block, DataType.Vector3, DataType.String);
        //#endregion

        public override void SafeAwake()
        {
            LaunchKey          = AddKey(LanguageManager.Instance.CurrentLanguage.fire, "Fire", KeyCode.C);
            StrengthSlider     = AddSlider(LanguageManager.Instance.CurrentLanguage.strength, "Strength", 1f, 0.5f, 3f);
            RateSlider         = AddSlider(LanguageManager.Instance.CurrentLanguage.rate, "Rate", 0.05f, 0.01f, 0.3f);
            KnockBackSlider    = AddSlider(LanguageManager.Instance.CurrentLanguage.knockBack, "KnockBack", 1f, 0.1f, 3f);
            BulletNumberSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletNumber, "Number", 200f, 1f, 500f);


            bulletMassSlider  = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletMass, "Mass", 0.1f, 0.1f, 0.5f);
            bulletDragSlider  = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletDrag, "Drag", 0.1f, 0.1f, 0.5f);
            bulletColorSlider = AddColourSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailColor, "Color", Color.yellow, false);
            bulletCollisionEnableTimeSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletCollisionEnableTime, "Collision Enable Time", 0.01f, 0f, 0.1f);

            SpawnPoint   = new Vector3(0, 0.125f, 3.75f);
            Direction    = Vector3.forward;
            LaunchEnable = false;


            RotationRate = 0f;

            RotationAudioSource              = GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>();
            RotationAudioSource.clip         = ModResource.GetAudioClip("GatlingGun AudioClip");
            RotationAudioSource.loop         = true;
            RotationAudioSource.volume       = 1;
            RotationAudioSource.spatialBlend = 1;
            RotationAudioSource.maxDistance  = 15;

            CJ = GetComponent <ConfigurableJoint>();

            List <MeshFilter> meshFilters = new List <MeshFilter>();

            GetComponentsInChildren(false, meshFilters);
            GunVis = meshFilters.Find(match => match.name == "Vis").gameObject;
        }
Пример #2
0
        protected MColourSlider AddColorSlider(string displayName, string key, Color value, bool snapToClosestColor)
        {
            MColourSlider mColorSlider = new MColourSlider(displayName, key, value, snapToClosestColor);

            myMapperTypes.Add(mColorSlider);

            return(mColorSlider);
        }
        protected override void SafeAwake()
        {
            foreach (var s in BB.Sliders)
            {
                if (s.Key == "strength")
                {
                    StrengthSlider = s; break;
                }
            }
            StrengthSlider.ValueChanged += (float value) => { Strength = value; ChangedProperties(); };

            IntervalSlider = AddSlider("发射间隔", "Interval", Interval, 0f, 0.5f, false);
            IntervalSlider.ValueChanged += (float value) => { Interval = value; ChangedProperties(); };
            BlockDataLoadEvent          += (XDataHolder BlockData) => { Interval = IntervalSlider.Value; };

            RandomDelaySlider = AddSlider("随机延迟", "RandomDelay", RandomDelay, 0f, 0.5f, false);
            RandomDelaySlider.ValueChanged += (float value) => { RandomDelay = value; ChangedProperties(); };
            BlockDataLoadEvent             += (XDataHolder BlockData) => { RandomDelay = RandomDelaySlider.Value; };

            KnockBackSpeedSlider = AddSlider("后坐力", "KnockBackSpeed", KnockBackSpeed, 0.2f, 1f, false);
            KnockBackSpeedSlider.ValueChanged += (float value) => { KnockBackSpeed = value; ChangedProperties(); };
            BlockDataLoadEvent += (XDataHolder BlockData) => { KnockBackSpeed = KnockBackSpeedSlider.Value; };

            BulletToggle          = AddToggle("自定子弹", "Bullet", cBullet);
            BulletToggle.Toggled += (bool value) => { BulletDragSlider.DisplayInMapper = BulletMassSlider.DisplayInMapper = InheritSizeToggle.DisplayInMapper = cBullet = value; ChangedProperties(); };
            BlockDataLoadEvent   += (XDataHolder BlockData) => { cBullet = BulletToggle.IsActive; };

            InheritSizeToggle          = AddToggle("尺寸继承", "InheritSize", InheritSize);
            InheritSizeToggle.Toggled += (bool value) => { InheritSize = value; ChangedProperties(); };
            BlockDataLoadEvent        += (XDataHolder BlockData) => { InheritSize = InheritSizeToggle.IsActive; };

            BulletMassSlider = AddSlider("子弹质量", "BulletMass", BulletMass, 0.1f, 2f, false);
            BulletMassSlider.ValueChanged += (float value) => { BulletMass = value; ChangedProperties(); };
            BlockDataLoadEvent            += (XDataHolder BlockData) => { BulletMass = BulletMassSlider.Value; };

            BulletDragSlider = AddSlider("子弹阻力", "BulletDrag", BulletDrag, 0.01f, 0.5f, false);
            BulletDragSlider.ValueChanged += (float value) => { BulletDrag = value; ChangedProperties(); };
            BlockDataLoadEvent            += (XDataHolder BlockData) => { BulletDrag = BulletDragSlider.Value; };

            TrailToggle          = AddToggle("显示尾迹", "Trail", Trail);
            TrailToggle.Toggled += (bool value) => { Trail = TrailColorSlider.DisplayInMapper = TrailLengthSlider.DisplayInMapper = value; ChangedProperties(); };
            BlockDataLoadEvent  += (XDataHolder BlockData) => { Trail = TrailToggle.IsActive; };

            TrailLengthSlider = AddSlider("尾迹长度", "trail length", TrailLength, 0.2f, 2f, false);
            TrailLengthSlider.ValueChanged += (float value) => { TrailLength = value; ChangedProperties(); };
            BlockDataLoadEvent             += (XDataHolder BlockData) => { TrailLength = TrailLengthSlider.Value; };

            TrailColorSlider = AddColorSlider("尾迹颜色", "trail color", TrailColor, false);
            TrailColorSlider.ValueChanged += (Color value) => { TrailColor = value; ChangedProperties(); };
            BlockDataLoadEvent            += (XDataHolder BlockData) => { TrailColor = TrailColorSlider.Value; };


#if DEBUG
            ConsoleController.ShowMessage("加农炮添加进阶属性");
#endif
        }
Пример #4
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()
        {
            thrustForceSlider = BB.AddSlider(LanguageManager.thrustForce, "Thrust Force", ThrustForce, 0f, 5f);
            thrustForceSlider.ValueChanged += (float value) => { ThrustForce = value; ChangedProperties(); };
            flameColorSlider = BB.AddColourSlider(LanguageManager.flameColor, "Flame Color", FlameColor, false);
            flameColorSlider.ValueChanged += (Color value) => { FlameColor = value; ChangedProperties(); };

#if DEBUG
            ConsoleController.ShowMessage("喷火器添加进阶属性");
#endif
        }
        public override void SafeAwake()
        {
            thrustForceSlider = /*BB.*/ AddSlider(LanguageManager.Instance.CurrentLanguage.ThrustForce, "Thrust Force", /*ThrustForce*/ 0f, 0f, 5f);
            //thrustForceSlider.ValueChanged += (float value) => { ThrustForce = value; ChangedProperties(); };
            flameColorSlider = /*BB.*/ AddColourSlider(LanguageManager.Instance.CurrentLanguage.FlameColor, "Flame Color", /*FlameColor*/ Color.white, false);
            //flameColorSlider.ValueChanged += (Color value) => { FlameColor = value; ChangedProperties(); };

            base.SafeAwake();

#if DEBUG
            ConsoleController.ShowMessage("喷火器添加进阶属性");
#endif
        }
Пример #7
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;
        }
Пример #8
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);
        }
Пример #9
0
        private void EnglishInit()
        {
            ActivateTargetIndicator = AddKey("Bombard Indicator",  //按键信息
                                             "TI",                 //名字
                                             KeyCode.C);           //默认按键

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

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

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

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

            EndColour = AddColourSlider("End Color of the line", "EColor", Color.yellow, true);


            ConfigMenu = AddMenu("ConfigMenu", 0, new List <string> {
                "Pilot Panel Func", "HUD Func"
            });
            HUDConfigMenu = AddMenu("HUDConfigMenu", 0, new List <string> {
                "Center", "Height", "Pitch", "Direction", "Map Center", "Minimap", "Locking"
            });
            ActiveHUD            = AddKey("Toggle HUD", "HUD", KeyCode.F);
            Height               = AddToggle("Height Indication", "HeightIndi", true);
            Pitch                = AddToggle("Pitch Indication", "PitchIndi", true);
            Center               = AddToggle("Center Indication", "CenterIndi", true);
            Direction            = AddToggle("Compass Indication", "DirectIndi", true);
            MapCenter            = AddToggle("Map Center Indication", "MapCenterIndi", true);
            HeightIndicator      = AddToggle("Height Indication", "MyHeightIndi", true);
            IceFreezeIndicator   = AddToggle("Ice Freeze Indication", "IceIndi", true);
            GroundIndicator      = AddToggle("Ground(0m) Indication", "0mIndi", true);
            OneThousandIndicator = AddToggle("1000m Indication", "1000mIndi", true);
            MiniMap              = AddToggle("Minimap", "Minimap", false);
            MiniMapLerpValue     = AddSlider("Minimap smoothess", "MinimapLerp", 0.015f, 0, 1);
            MiniMapHeight        = AddSlider("Minimap height", "MinimapHeight", 400, 5, 1300);
            UseLockWindow        = AddToggle("Enable Locking Window", "UseLockWindow", false);
            LockerHeight         = AddSlider("Locking Window Height", "LockerH", 800, 100, 2000);
            LockerWidth          = AddSlider("Locking Window Width", "LockerW", 800, 100, 2000);

            ReduceCameraShake = AddToggle("Reduce Camera Shake When Focused", "Noshake", false);
        }
Пример #10
0
        public override void SafeAwake()
        {
            // Initialise some components and default values
            AS     = BB.GetComponent <AudioSource>();
            CB     = BB.GetComponent <CanonBlock>();
            bullet = new Bullet(CB);


            IntervalSlider = BB.AddSlider(LanguageManager.fireInterval, "Interval", Interval, intervalMin, 0.5f);
            IntervalSlider.ValueChanged += (float value) => { Interval = value; ChangedProperties(); };

            RandomDelaySlider = BB.AddSlider(LanguageManager.randomDelay, "RandomDelay", RandomDelay, 0f, 0.5f);
            RandomDelaySlider.ValueChanged += (float value) => { RandomDelay = value; ChangedProperties(); };

            KnockBackSpeedSlider = BB.AddSlider(LanguageManager.recoil, "KnockBackSpeed", KnockBackSpeedZeroOne, knockBackSpeedZeroOneMin, knockBackSpeedZeroOneMax);
            KnockBackSpeedSlider.ValueChanged += (float value) => { KnockBackSpeedZeroOne = value; ChangedProperties(); };

            #region 子弹控件初始化

            BullerCustomBulletToggle          = BB.AddToggle(LanguageManager.customBullet, "Bullet", false);
            BullerCustomBulletToggle.Toggled += (bool value) => { BulletTrailToggle.DisplayInMapper = BulletTrailColorSlider.DisplayInMapper = BulletTrailLengthSlider.DisplayInMapper = BulletDragSlider.DisplayInMapper = BulletMassSlider.DisplayInMapper = BulletInheritSizeToggle.DisplayInMapper = bullet.Custom = value; ChangedProperties(); };

            BulletInheritSizeToggle          = BB.AddToggle(LanguageManager.inheritSize, "InheritSize", false);
            BulletInheritSizeToggle.Toggled += (bool value) => { bullet.InheritSize = value; ChangedProperties(); };

            BulletMassSlider = BB.AddSlider(LanguageManager.bulletMass, "BulletMass", 2f, 0.1f, 2f);
            BulletMassSlider.ValueChanged += (float value) => { bullet.Mass = value; ChangedProperties(); };

            BulletDragSlider = BB.AddSlider(LanguageManager.bulletDrag, "BulletDrag", 0.2f, 0.01f, 0.5f);
            BulletDragSlider.ValueChanged += (float value) => { bullet.Drag = value; ChangedProperties(); };

            BulletTrailToggle          = BB.AddToggle(LanguageManager.trail, "Trail", false);
            BulletTrailToggle.Toggled += (bool value) => { bullet.TrailEnable = BulletTrailColorSlider.DisplayInMapper = BulletTrailLengthSlider.DisplayInMapper = value; ChangedProperties(); };

            BulletTrailLengthSlider = BB.AddSlider(LanguageManager.trailLength, "trail length", 1f, 0.2f, 2f);
            BulletTrailLengthSlider.ValueChanged += (float value) => { bullet.TrailLength = value; ChangedProperties(); };

            BulletTrailColorSlider = BB.AddColourSlider(LanguageManager.trailColor, "trail color", Color.yellow, false);
            BulletTrailColorSlider.ValueChanged += (Color value) => { bullet.TrailColor = value; ChangedProperties(); };

            #endregion

#if DEBUG
            ConsoleController.ShowMessage("加农炮添加进阶属性");
#endif
        }
        public override void SafeAwake()
        {
            LaunchKey      = AddKey(LanguageManager.Instance.CurrentLanguage.fire, "Fire", KeyCode.C);
            StrengthSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.strength, "Strength", 1f, 0.5f, 3f);
            RateSlider     = AddSlider(LanguageManager.Instance.CurrentLanguage.rate, "Rate", 0.35f, 0.1f, 0.3f);

            KnockBackSlider    = AddSlider(LanguageManager.Instance.CurrentLanguage.knockBack, "KnockBack", 0.5f, 0.1f, 1f);
            BulletNumberSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletNumber, "Number", 200f, 1f, 500f);

            bulletPowerSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletPower, "Power", 0.3f, 0.1f, 1f);
            bulletMassSlider  = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletMass, "Mass", 0.1f, 0.1f, 0.5f);
            bulletDragSlider  = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletDrag, "Drag", 0.1f, 0.1f, 0.5f);
            bulletCollisionEnableTimeSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletCollisionEnableTime, "Collision Enable Time", 0.1f, 0.01f, 0.8f);
            bulletTrailLengthSlider         = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailLength, "Length", 0.1f, 0f, 0.4f);
            bulletTrailWidthSlider          = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailWidth, "Width", 1f, 0.1f, 3f);
            bulletColorSlider = AddColourSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailColor, "Color", Color.yellow, false);


            holdToggle = AddToggle(LanguageManager.Instance.CurrentLanguage.hold, "Hold", true);
            //spawnDistanceSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.distance, "Distance", 2f, 0f, 4f);
            //spawnDistanceSlider.ValueChanged += (value) => { SpawnPoint = new Vector3(0f, 0f, value); };
            damperSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.damper, "Damper", 1f, 0f, 5f);

            SpawnPoint   = new Vector3(0.0f, 0.0f, 3.5f);
            Direction    = Vector3.forward;
            LaunchEnable = false;

            fireAudioSource              = GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>();
            fireAudioSource.clip         = ModResource.GetAudioClip("QuickFireGun AudioClip");
            fireAudioSource.loop         = false;
            fireAudioSource.volume       = 1;
            fireAudioSource.spatialBlend = 5f;
            fireAudioSource.maxDistance  = 15f;

            CJ         = GetComponent <ConfigurableJoint>();
            CJ.yMotion = ConfigurableJointMotion.Limited;
            var cl = CJ.linearLimit;

            cl.limit       = 0.5f;
            CJ.linearLimit = cl;
            var yd = CJ.yDrive;

            yd.positionDamper = 750f * damperSlider.Value;
            yd.positionSpring = 1000f;
            CJ.yDrive         = yd;
        }
        //#region Network
        ///// <summary>Block, GunbodyVelocity, BulletGuid,</summary>
        //public static MessageType FireMessage = ModNetworking.CreateMessageType(DataType.Block, DataType.Vector3, DataType.String);
        //#endregion

        public override void SafeAwake()
        {
            LaunchKey      = AddKey(LanguageManager.Instance.CurrentLanguage.fire, "Fire", KeyCode.C);
            StrengthSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.strength, "Strength", 1f, 0.5f, 3f);
            //StrengthSlider.ValueChanged += (value) => { Strength = value; };
            RateSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.rate, "Rate", 0.05f, 0.1f, 0.3f);
            //RateSlider.ValueChanged += (value) => { Rate = value; };
            KnockBackSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.knockBack, "KnockBack", 1f, 0.1f, 3f);
            //KnockBackSlider.ValueChanged += (value) => { KnockBack = value; };
            BulletNumberSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletNumber, "Number", 200f, 1f, 500f);
            //BulletNumberSlider.ValueChanged += (value) => { BulletMaxNumber = (int)value; };

            bulletMassSlider  = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletMass, "Mass", 0.1f, 0.1f, 0.5f);
            bulletDragSlider  = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletDrag, "Drag", 0.1f, 0.1f, 0.5f);
            bulletColorSlider = AddColourSlider(LanguageManager.Instance.CurrentLanguage.bulletTrailColor, "Color", Color.yellow, false);
            bulletCollisionEnableTimeSlider = AddSlider(LanguageManager.Instance.CurrentLanguage.bulletCollisionEnableTime, "Collision Enable Time", 0.01f, 0f, 0.1f);

            //KnockBack = 1f;
            SpawnPoint = new Vector3(-2.65f, 0f, 0.5f);
            Direction  = -Vector3.right;
            //BulletObject = AssetManager.Instance.MachineGun.bulletTemp;
            //BulletObject = InstanstiateBullet();
            LaunchEnable = false;


            //RotationRate = 0f;

            fireAudioSource              = GetComponent <AudioSource>() ?? gameObject.AddComponent <AudioSource>();
            fireAudioSource.clip         = ModResource.GetAudioClip("MachineGun AudioClip");
            fireAudioSource.loop         = false;
            fireAudioSource.volume       = 1;
            fireAudioSource.spatialBlend = 5f;
            fireAudioSource.maxDistance  = 15f;

            CJ = GetComponent <ConfigurableJoint>();

            List <MeshFilter> meshFilters = new List <MeshFilter>();

            GetComponentsInChildren(false, meshFilters);
            GunVis = meshFilters.Find(match => match.name == "Vis").gameObject;
        }
        /// <summary>
        /// Initializes slider instances.
        /// Must be called after configuration load and before any slider is initialized.
        /// </summary>
        private static void InitSliders()
        {
            explosionTypeToggle = new MMenu("explosiontype", ExplodingCannonballScript.Instance.TypeOfExplosion,
                                            new List <string>()
            {
                "No explosion",
                "Bomb",         //Changed From Bomb Explosion for Chinese Translation
                "Grenade",
                "Rocket"
            }, "Explosion type");
            explosionTypeToggle.ValueChanged += (int value) =>
            {
                ExplodingCannonballScript.Instance.TypeOfExplosion = value;
                bool display = value != 0;
                impactDetectionSlider.DisplayInMapper = display;
                explosionDelaySlider.DisplayInMapper  = display;
                explosionPowerSlider.DisplayInMapper  = display;
                explosionRangeSlider.DisplayInMapper  = display;
            };

            impactDetectionSlider = new MSlider("Impact detection", "impactdetection", ExplodingCannonballScript.Instance.ImpactDetector, 0, 5);
            impactDetectionSlider.ValueChanged += (float value) => { ExplodingCannonballScript.Instance.ImpactDetector = value; };

            explosionDelaySlider = new MSlider("Explosion delay", "explosiondelay", ExplodingCannonballScript.Instance.ExplosionDelay, 0, 10);
            explosionDelaySlider.ValueChanged += (float value) => { ExplodingCannonballScript.Instance.ExplosionDelay = value; };

            explosionPowerSlider = new MSlider("Explosion power", "explosionpower", ExplodingCannonballScript.Instance.PowerMultiplierOfExplosion, 0, 20);
            explosionPowerSlider.ValueChanged += (float value) => { ExplodingCannonballScript.Instance.PowerMultiplierOfExplosion = value; };

            explosionRangeSlider = new MSlider("Explosion range", "explosionrange", ExplodingCannonballScript.Instance.RangeMultiplierOfExplosion, 0, 20);
            explosionRangeSlider.ValueChanged += (float value) => { ExplodingCannonballScript.Instance.RangeMultiplierOfExplosion = value; };

            cannonBallTrailEnabled          = new MToggle("Enable Cannon Ball Trail", "TrailEnabled", ExplodingCannonballScript.Instance.IsTrailOn);
            cannonBallTrailEnabled.Toggled += (bool value) => { ExplodingCannonballScript.Instance.IsTrailOn = value; cannonBallTrailColor.DisplayInMapper = value; cannonBallTrailLength.DisplayInMapper = value; };

            cannonBallTrailColor = new MColourSlider("Trail Color", "TrailColor", ExplodingCannonballScript.Instance.TrailColor);
            cannonBallTrailColor.ValueChanged += (Color value) => { ExplodingCannonballScript.Instance.TrailColor = value; };

            cannonBallTrailLength = new MSlider("Trail Length", "TrailLength", ExplodingCannonballScript.Instance.TrailLength, 0.01f, 100);
            cannonBallTrailLength.ValueChanged += (float value) => { ExplodingCannonballScript.Instance.TrailLength = Mathf.Clamp(value, 0.001f, Mathf.Infinity); };
        }
        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);
        }
Пример #15
0
        public override void SafeAwake()
        {
            base.SafeAwake();
            bullet = new Bullet(CB);

            #region 子弹控件初始化

            BullerCustomBulletToggle   = /*BB.*/ AddToggle(LanguageManager.Instance.CurrentLanguage.CustomBullet, "Bullet", false);
            BulletInheritSizeToggle    = /*BB.*/ AddToggle(LanguageManager.Instance.CurrentLanguage.InheritSize, "InheritSize", false);
            BulletMassSlider           = /*BB.*/ AddSlider(LanguageManager.Instance.CurrentLanguage.BulletMass, "BulletMass", 2f, 0.1f, 2f);
            BulletDragSlider           = /*BB.*/ AddSlider(LanguageManager.Instance.CurrentLanguage.BulletDrag, "BulletDrag", 0.2f, 0.01f, 0.5f);
            BulletDelayCollisionSlider = /*BB.*/ AddSlider(LanguageManager.Instance.CurrentLanguage.BulletDelayCollision, "Delay Collision", 0.2f, 0f, 0.5f);
            BulletTrailToggle          = /*BB.*/ AddToggle(LanguageManager.Instance.CurrentLanguage.Trail, "Trail", false);
            BulletTrailLengthSlider    = /*BB.*/ AddSlider(LanguageManager.Instance.CurrentLanguage.TrailLength, "trail length", 1f, 0.2f, 2f);
            BulletTrailColorSlider     = /*BB.*/ AddColourSlider(LanguageManager.Instance.CurrentLanguage.TrailColor, "trail color", Color.yellow, false);

            #endregion

#if DEBUG
            ConsoleController.ShowMessage("加农炮添加进阶属性");
#endif
        }
        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);
        }