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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
 public void UpdateFrom(ScrollingHitObjectContainer hitObjectContainer, JuiceStream hitObject)
 {
     while (path.Vertices.Count < InternalChildren.Count)
     {
         RemoveInternal(InternalChildren[^ 1]);