Exemplo n.º 1
0
        ///<inheritdoc/>
        public override IHitObject CreateHitObject(string data)
        {
            IHitObject hitobject = null;
            var        d         = data.Split(',');
            var        types     = new HitObjectTypesConverter().Convert(int.Parse(d[3]), out var maybeType);

            if (maybeType == HitObjectTypes.HitCircle || types.Contains(HitObjectTypes.HitCircle))
            {
                hitobject = new Fruit();
            }
            if (maybeType == HitObjectTypes.Slider || types.Contains(HitObjectTypes.Slider))
            {
                hitobject = new JuiceStream();
            }
            if (maybeType == HitObjectTypes.Spinner || types.Contains(HitObjectTypes.Spinner))
            {
                hitobject = new BananaShower();
            }
            if (hitobject == null)
            {
                throw new IncorrectHitObjectException(this, types[0]);
            }
            hitobject.Parse(data);
            return(hitobject);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Mirrors X positions of all bananas in the <paramref name="bananaShower"/>.
 /// </summary>
 private static void mirrorBananaShower(BananaShower bananaShower)
 {
     foreach (var banana in bananaShower.NestedHitObjects.OfType <Banana>())
     {
         banana.XOffset = CatchPlayfield.WIDTH - banana.XOffset;
     }
 }
Exemplo n.º 3
0
        public DrawableBananaShower([CanBeNull] BananaShower s)
            : base(s)
        {
            RelativeSizeAxes = Axes.X;
            Origin           = Anchor.BottomLeft;

            AddInternal(bananaContainer = new Container {
                RelativeSizeAxes = Axes.Both
            });
        }
Exemplo n.º 4
0
        public DrawableBananaShower(BananaShower s, Func <CatchHitObject, DrawableHitObject <CatchHitObject> > createDrawableRepresentation = null)
            : base(s)
        {
            this.createDrawableRepresentation = createDrawableRepresentation;
            RelativeSizeAxes = Axes.X;
            Origin           = Anchor.BottomLeft;
            X = 0;

            AddInternal(bananaContainer = new Container {
                RelativeSizeAxes = Axes.Both
            });
        }
Exemplo n.º 5
0
        public void UpdateFrom(ScrollingHitObjectContainer hitObjectContainer, BananaShower hitObject)
        {
            float startY = hitObjectContainer.PositionAtTime(hitObject.StartTime);
            float endY   = hitObjectContainer.PositionAtTime(hitObject.EndTime);

            Y = Math.Max(startY, endY);
            float height = Math.Abs(startY - endY);

            bool wasEmpty = isEmpty;

            isEmpty = height == 0;
            if (wasEmpty != isEmpty)
            {
                this.FadeTo(isEmpty ? opacity_when_empty : 1f, 150);
            }

            Height = Math.Max(height, border_width);
        }