private void AStartg__getNextObject18_3(ref Ac__DisplayClass18_0 P_0) { P_0.index++; if (P_0.index < P_0.beatmap.HitObjects.Count) { P_0.currentHitObject = P_0.beatmap.HitObjects[P_0.index]; } }
private void AStartg__alternateKeys18_0(ref Ac__DisplayClass18_0 P_0) { if (currentKeyPressed == P_0.key1) { currentKeyPressed = P_0.key2; } else { currentKeyPressed = P_0.key1; } }
private void AStartg__pressKey18_4(ref Ac__DisplayClass18_0 P_0, ref Ac__DisplayClass18_1 P_1) { if ((float)(P_1.currentTime - P_0.lastTimeHit) <= (float)alternateTime * P_0.beatmapSpeed) { AStartg__alternateKeys18_0(ref P_0); } else { currentKeyPressed = P_0.key1; } inputSimulator.Keyboard.KeyDown(currentKeyPressed); P_0.alreadyHit = true; P_0.lastTimeHit = P_1.currentTime; P_0.randomHoldTime = P_0.rand.Next((int)(((float)holdTime - 5f) * P_0.beatmapSpeed), (int)(((float)holdTime + 5f) * P_0.beatmapSpeed)); }
private void AStartg__releaseKey18_5(ref Ac__DisplayClass18_0 P_0) { inputSimulator.Keyboard.KeyUp(currentKeyPressed); P_0.alreadyHit = false; if (P_0.rand.Next(1, 101) <= percentToHitOutsideOffset) { if (P_0.rand.Next(0, 2) == 0) { P_0.randomOffset = P_0.rand.Next(-offset * 2, -offset); } else { P_0.randomOffset = P_0.rand.Next(offset, offset * 2); } } else { P_0.randomOffset = P_0.rand.Next(-offset, offset); } }
public void Start(OsuBeatmap beatmap) { Ac__DisplayClass18_0 ac__DisplayClass18_ = default(Ac__DisplayClass18_0); ac__DisplayClass18_.A4__this = this; ac__DisplayClass18_.beatmap = beatmap; this.beatmap = ac__DisplayClass18_.beatmap; enabled = true; ac__DisplayClass18_.key1 = (VirtualKeyCode)osu.BindingManager.GetKeyCode(Bindings.OsuLeft); ac__DisplayClass18_.key2 = (VirtualKeyCode)osu.BindingManager.GetKeyCode(Bindings.OsuRight); currentKeyPressed = ac__DisplayClass18_.key2; ac__DisplayClass18_.beatmapSpeed = (osu.Player.HitObjectManager.CurrentMods.HasFlag(Mods.DoubleTime) ? 1.5f : (osu.Player.HitObjectManager.CurrentMods.HasFlag(Mods.HalfTime) ? 0.75f : 1f)); int num = osu.HitWindow50(ac__DisplayClass18_.beatmap.OverallDifficulty); int num2 = osu.HitWindow50(ac__DisplayClass18_.beatmap.OverallDifficulty); int num3 = osu.HitWindow100(ac__DisplayClass18_.beatmap.OverallDifficulty); int num4 = osu.HitWindow300(ac__DisplayClass18_.beatmap.OverallDifficulty); ac__DisplayClass18_.hitObjectRadius = osu.HitObjectRadius(ac__DisplayClass18_.beatmap.CircleSize); ac__DisplayClass18_.alreadyHit = false; bool flag = false; ac__DisplayClass18_.rand = new Random(); ac__DisplayClass18_.randomOffset = ac__DisplayClass18_.rand.Next(-offset, offset); ac__DisplayClass18_.randomHoldTime = ac__DisplayClass18_.rand.Next((int)(((float)holdTime - 5f) * ac__DisplayClass18_.beatmapSpeed), (int)(((float)holdTime + 5f) * ac__DisplayClass18_.beatmapSpeed)); ac__DisplayClass18_.lastTimeHit = 0; ac__DisplayClass18_.index = osu.Player.HitObjectManager.CurrentHitObjectIndex; ac__DisplayClass18_.currentHitObject = ac__DisplayClass18_.beatmap.HitObjects[ac__DisplayClass18_.index]; AStartg__releaseBothKeys18_2(ref ac__DisplayClass18_); Ac__DisplayClass18_1 ac__DisplayClass18_2 = default(Ac__DisplayClass18_1); while (osu.CanPlay && ac__DisplayClass18_.index < ac__DisplayClass18_.beatmap.HitObjects.Count && enabled) { TimingHelper.Delay(1u); if (osu.IsPaused) { Thread.Sleep(5); continue; } ac__DisplayClass18_2.currentTime = osu.CurrentTime; if (ac__DisplayClass18_2.currentTime >= ac__DisplayClass18_.currentHitObject.StartTime - num) { ac__DisplayClass18_.hitObjectPosition = ((ac__DisplayClass18_.currentHitObject is OsuSlider) ? (ac__DisplayClass18_.currentHitObject as OsuSlider).PositionAtTime(osu.CurrentTime) : ac__DisplayClass18_.currentHitObject.Position); if (!ac__DisplayClass18_.alreadyHit) { if (AStartg__isMouseOnNote18_1(ref ac__DisplayClass18_)) { if (ac__DisplayClass18_2.currentTime >= ac__DisplayClass18_.currentHitObject.StartTime + ac__DisplayClass18_.randomOffset) { flag = false; AStartg__pressKey18_4(ref ac__DisplayClass18_, ref ac__DisplayClass18_2); } } else if (ac__DisplayClass18_2.currentTime >= ac__DisplayClass18_.currentHitObject.StartTime + num2) { flag = true; AStartg__pressKey18_4(ref ac__DisplayClass18_, ref ac__DisplayClass18_2); } } } if (!flag & ac__DisplayClass18_.alreadyHit) { if (ac__DisplayClass18_2.currentTime >= ac__DisplayClass18_.currentHitObject.EndTime + ac__DisplayClass18_.randomOffset + ac__DisplayClass18_.randomHoldTime) { AStartg__releaseKey18_5(ref ac__DisplayClass18_); AStartg__getNextObject18_3(ref ac__DisplayClass18_); } } else if (ac__DisplayClass18_2.currentTime >= ac__DisplayClass18_.currentHitObject.EndTime + num2 + ac__DisplayClass18_.randomHoldTime) { AStartg__releaseKey18_5(ref ac__DisplayClass18_); AStartg__getNextObject18_3(ref ac__DisplayClass18_); } while (osu.CanPlay && ac__DisplayClass18_.index >= ac__DisplayClass18_.beatmap.HitObjects.Count && enabled) { Thread.Sleep(5); } } }
private void AStartg__releaseBothKeys18_2(ref Ac__DisplayClass18_0 P_0) { inputSimulator.Keyboard.KeyUp(P_0.key1); inputSimulator.Keyboard.KeyUp(P_0.key2); }
private bool AStartg__isMouseOnNote18_1(ref Ac__DisplayClass18_0 P_0) { return(distance(P_0.hitObjectPosition, osu.WindowManager.ScreenToPlayfield(osu.Player.Ruleset.MousePosition)) - (double)P_0.hitObjectRadius <= 0.0); }