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; } }
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; } }
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); } }
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); }
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); }
public static bool SideEnabled(Session.ShieldSides side, int state) { return(state == 2 || Session.Instance.SideControlMap[side] == state); }