internal void SetSettings(CustomGame cg) { Navigate(cg); object[] values = this.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance).Select(v => v.GetValue(this)).ToArray(); int waitTime = 10; for (int i = 0; i < values.Length; i++) { if (values[i] != null) { if (values[i] is bool option) { bool value = (bool)cg.GetHighlightedSettingValue(true); if (option != value) { cg.KeyPress(Keys.Space); Thread.Sleep(waitTime); } } else if (values[i] is int) { var set = CustomGame.GetNumberKeys((int)values[i]); for (int k = 0; k < set.Length; k++) { cg.KeyDown(set[k]); Thread.Sleep(waitTime); } cg.KeyDown(Keys.Enter); Thread.Sleep(waitTime); } else if (values[i] is Enum) { int set = (int)values[i]; int length = Enum.GetNames(values[i].GetType()).Length; cg.KeyPress(Keys.Space); Thread.Sleep(waitTime); for (int a = 0; a < length; a++) { cg.KeyPress(Keys.Up); Thread.Sleep(waitTime); } for (int a = 0; a < set; a++) { cg.KeyPress(Keys.Down); Thread.Sleep(waitTime); } cg.KeyPress(Keys.Space); Thread.Sleep(waitTime); } } cg.KeyPress(Keys.Down); Thread.Sleep(waitTime); } Return(cg); }