Example #1
0
        public static void SetRedirect(DefenseShields ds, Session.ShieldSides side, int newValue)
        {
            if (!Session.Instance.DedicatedServer && Session.Instance.Settings.ClientConfig.Notices)
            {
                var pendingChanges = ds.DsSet.Settings.ShieldRedirects != ds.ShieldRedirectState;
                var enableText     = SideEnabled(side, newValue) ? "Shunting" : "Normalizing";
                var text           = $"[{enableText} {side}] Shields in 2 seconds -- delaying previous changes: [{pendingChanges}]";
                Session.Instance.SendNotice(text);
            }

            switch (side)
            {
            case Session.ShieldSides.Left:
            case Session.ShieldSides.Right:
                ds.DsSet.Settings.ShieldRedirects.X = newValue;
                break;

            case Session.ShieldSides.Up:
            case Session.ShieldSides.Down:
                ds.DsSet.Settings.ShieldRedirects.Y = newValue;
                break;

            case Session.ShieldSides.Forward:
            case Session.ShieldSides.Backward:
                ds.DsSet.Settings.ShieldRedirects.Z = newValue;
                break;
            }
        }
Example #2
0
        private void CallSideControl(Session.ShieldSides side, bool enable)
        {
            switch (side)
            {
            case Session.ShieldSides.Left:
                DsUi.SetLeftShield(Shield, enable);
                break;

            case Session.ShieldSides.Right:
                DsUi.SetRightShield(Shield, enable);
                break;

            case Session.ShieldSides.Up:
                DsUi.SetTopShield(Shield, enable);
                break;

            case Session.ShieldSides.Down:
                DsUi.SetBottomShield(Shield, enable);
                break;

            case Session.ShieldSides.Forward:
                DsUi.SetFrontShield(Shield, enable);
                break;

            case Session.ShieldSides.Backward:
                DsUi.SetBackShield(Shield, enable);
                break;
            }
        }
Example #3
0
        private void QuickShuntUpdate(Session.ShieldSides side, int shuntedCount)
        {
            var isShunted = IsSideShunted(side);

            if (Session.Instance.UiInput.LongShuntKey)
            {
                if (!isShunted && shuntedCount >= 5)
                {
                    foreach (var pair in Session.Instance.ShieldShuntedSides)
                    {
                        if (pair.Key != side)
                        {
                            CallSideControl(pair.Key, false);
                        }
                    }
                }
                else
                {
                    CallSideControl(side, false);
                    foreach (var pair in Session.Instance.ShieldShuntedSides)
                    {
                        if (pair.Key != side)
                        {
                            CallSideControl(pair.Key, true);
                        }
                    }
                }
            }
            else
            {
                CallSideControl(side, !isShunted);
            }
        }
Example #4
0
        public bool IsSideShunted(Session.ShieldSides side)
        {
            switch (side)
            {
            case Session.ShieldSides.Left:
                if (ShieldRedirectState.X == -1 || ShieldRedirectState.X == 2)
                {
                    return(true);
                }
                break;

            case Session.ShieldSides.Right:
                if (ShieldRedirectState.X == 1 || ShieldRedirectState.X == 2)
                {
                    return(true);
                }
                break;

            case Session.ShieldSides.Up:
                if (ShieldRedirectState.Y == 1 || ShieldRedirectState.Y == 2)
                {
                    return(true);
                }
                break;

            case Session.ShieldSides.Down:
                if (ShieldRedirectState.Y == -1 || ShieldRedirectState.Y == 2)
                {
                    return(true);
                }
                break;

            case Session.ShieldSides.Forward:
                if (ShieldRedirectState.Z == -1 || ShieldRedirectState.Z == 2)
                {
                    return(true);
                }
                break;

            case Session.ShieldSides.Backward:
                if (ShieldRedirectState.Z == 1 || ShieldRedirectState.Z == 2)
                {
                    return(true);
                }
                break;
            }
            return(false);
        }
Example #5
0
        public static bool NewSideState(DefenseShields ds, Session.ShieldSides side, bool redirect, int currentState)
        {
            int newState;
            var enableValue   = Session.Instance.SideControlMap[side];
            var oppositeValue = enableValue * -1;

            if (redirect)
            {
                newState = currentState == oppositeValue ? 2 : enableValue;
            }
            else
            {
                newState = currentState == 2 ? oppositeValue : 0;
            }

            SetRedirect(ds, side, newState);

            return(newState != currentState);
        }
Example #6
0
 public static bool SideEnabled(Session.ShieldSides side, int state)
 {
     return(state == 2 || Session.Instance.SideControlMap[side] == state);
 }