private void spawnJuiceStream(bool hit = false) { var xCoords = getXCoords(hit); var juice = new JuiceStream { X = xCoords, StartTime = playfieldTime + 1000, Path = new SliderPath(PathType.Linear, new[] { Vector2.Zero, new Vector2(0, 200) }) }; juice.ApplyDefaults(new ControlPointInfo(), new BeatmapDifficulty()); if (juice.NestedHitObjects.Last() is CatchHitObject tail) { tail.LastInCombo = true; // usually the (Catch)BeatmapProcessor would do this for us when necessary } addToPlayfield(new DrawableJuiceStream(juice, drawableRuleset.CreateDrawableRepresentation)); }
public TestSceneJuiceStreamSelectionBlueprint() { var hitObject = new JuiceStream { OriginalX = 100, StartTime = 100, Path = new SliderPath(PathType.PerfectCurve, new[] { Vector2.Zero, new Vector2(200, 100), new Vector2(0, 200), }), }; var controlPoint = new ControlPointInfo(); controlPoint.Add(0, new TimingControlPoint { BeatLength = 100 }); hitObject.ApplyDefaults(controlPoint, new BeatmapDifficulty { CircleSize = 0 }); AddBlueprint(new JuiceStreamSelectionBlueprint(hitObject)); }