public static void PostAwake(Handgun __instance)
        {
            if (__instance.FireSelectorModes.Length == 0)
            {
                return;
            }
            var hasFullAuto =
                __instance.FireSelectorModes.Any(t => t.ModeType == Handgun.FireSelectorModeType.FullAuto);

            if (hasFullAuto)
            {
                return;
            }
            var fullAuto = new Handgun.FireSelectorMode
            {
                SelectorPosition = __instance.FireSelectorModes[__instance.FireSelectorModes.Length - 1]
                                   .SelectorPosition,
                ModeType = Handgun.FireSelectorModeType.FullAuto
            };

            __instance.FireSelectorModes = new List <Handgun.FireSelectorMode>(__instance.FireSelectorModes)
            {
                fullAuto
            }.ToArray();
        }
Beispiel #2
0
 public Handgun.FireSelectorMode GetHandgunMode()
 {
     Handgun.FireSelectorMode mode = new Handgun.FireSelectorMode();
     mode.SelectorPosition = SelectorPosition;
     mode.ModeType         = (Handgun.FireSelectorModeType)Enum.Parse(typeof(Handgun.FireSelectorModeType), ModeType.ToString());
     mode.BurstAmount      = BurstAmount;
     return(mode);
 }
 private void UpdateBaseGunSelector(int i)
 {
     Handgun.FireSelectorMode fireSelectorMode = this.Modes[i];
     this.Weapon.SetAnimatedComponent(this.SelctorSwitch, fireSelectorMode.SelectorPosition, this.InterpStyle, this.Axis);
     Handgun.FireSelectorMode fireSelectorMode2 = this.Weapon.FireSelectorModes[this.ModeIndexToSub];
     fireSelectorMode2.ModeType    = fireSelectorMode.ModeType;
     fireSelectorMode2.BurstAmount = fireSelectorMode.BurstAmount;
     this.Weapon.ResetCamBurst();
 }
Beispiel #4
0
        private void AddFullAutoToHandgun(Handgun gun)
        {
            Handgun.FireSelectorMode fullAuto = new Handgun.FireSelectorMode();
            fullAuto.SelectorPosition = 0;
            fullAuto.ModeType         = Handgun.FireSelectorModeType.FullAuto;

            if (gun.FireSelectorModes != null)
            {
                //Debug.Log("Fire Selector options before addition:");
                foreach (Handgun.FireSelectorMode mode in gun.FireSelectorModes)
                {
                    Debug.Log(mode.ModeType);
                }
            }

            if (gun.FireSelectorModes == null || gun.FireSelectorModes.Length == 0)
            {
                //Debug.Log("Handgun did not have any fire selector modes, so we're adding defaults");

                Handgun.FireSelectorMode single = new Handgun.FireSelectorMode();
                single.SelectorPosition = 0;
                single.ModeType         = Handgun.FireSelectorModeType.Single;

                gun.FireSelectorModes = new Handgun.FireSelectorMode[] { single, fullAuto };
            }
            else
            {
                //Debug.Log("Handgun had atleast one fire selector mode, Adding full auto");
                List <Handgun.FireSelectorMode> modes = new List <Handgun.FireSelectorMode>(gun.FireSelectorModes);
                modes.Add(fullAuto);
                gun.FireSelectorModes = modes.ToArray();

                //Debug.Log("Array count: " + gun.FireSelectorModes.Length + ", List count: " + modes.Count);
            }


            if (!gun.HasFireSelector)
            {
                //Debug.Log("Handgun was not originally configured to have fire selector. Configuring");

                gun.HasFireSelector = true;

                if (gun.HasSafety)
                {
                    //Debug.Log("Using safety object as fire selector");
                    gun.FireSelectorAxis        = gun.SafetyAxis;
                    gun.FireSelectorInterpStyle = gun.Safety_Interp;
                    gun.FireSelector            = gun.Safety;
                }

                else if (gun.FireSelector == null)
                {
                    //Debug.Log("Creating dummy game object for fire selector");
                    gun.FireSelector = Instantiate(new GameObject(), gun.GameObject.transform).transform;
                }
            }

            if (gun.HasSafety)
            {
                //Debug.Log("Handgun originally had a safety, so we're removing that");
                //gun.SetSafetyState(false);
                //gun.FireSelectorModes = gun.FireSelectorModes.Where(o => o.ModeType != Handgun.FireSelectorModeType.Safe).ToArray();
                gun.AudioClipSet.FireSelector = gun.AudioClipSet.Safety;
                gun.HasSafety = false;
            }
        }
Beispiel #5
0
 public FireSelectorMode(Handgun.FireSelectorMode mode)
 {
     SelectorPosition = mode.SelectorPosition;
     ModeType         = (FireSelectorModeType)Enum.Parse(typeof(FireSelectorModeType), mode.ModeType.ToString());
     BurstAmount      = mode.BurstAmount;
 }