Пример #1
0
        public override List <ManiaBaseHit> Convert(List <HitObject> input)
        {
            List <ManiaBaseHit> output = new List <ManiaBaseHit>();

            foreach (HitObject i in input)
            {
                ManiaBaseHit h = i as ManiaBaseHit;

                if (h == null)
                {
                    OsuBaseHit o = i as OsuBaseHit;

                    if (o == null)
                    {
                        throw new HitObjectConvertException(@"Mania", i);
                    }

                    h = new Note
                    {
                        StartTime = o.StartTime,
                        Column    = (int)Math.Round(o.Position.X / 512 * columns)
                    };
                }

                output.Add(h);
            }

            return(output);
        }
Пример #2
0
        public override List <CatchBaseHit> Convert(List <HitObject> input)
        {
            List <CatchBaseHit> output = new List <CatchBaseHit>();

            foreach (HitObject i in input)
            {
                CatchBaseHit h = i as CatchBaseHit;

                if (h == null)
                {
                    OsuBaseHit o = i as OsuBaseHit;

                    if (o == null)
                    {
                        throw new HitObjectConvertException(@"Catch", i);
                    }

                    h = new Fruit
                    {
                        StartTime = o.StartTime,
                        Position  = o.Position.X,
                    };
                }

                output.Add(h);
            }

            return(output);
        }
Пример #3
0
        public override List <TaikoBaseHit> Convert(List <HitObject> input)
        {
            List <TaikoBaseHit> output = new List <TaikoBaseHit>();

            foreach (HitObject i in input)
            {
                TaikoBaseHit h = i as TaikoBaseHit;

                if (h == null)
                {
                    OsuBaseHit o = i as OsuBaseHit;

                    if (o == null)
                    {
                        throw new HitObjectConvertException(@"Taiko", i);
                    }

                    h = new TaikoBaseHit
                    {
                        StartTime = o.StartTime,
                    };
                }

                output.Add(h);
            }

            return(output);
        }
Пример #4
0
        public static HitObject Parse(PlayMode mode, string val)
        {
            //TODO: move to modular HitObjectParser system rather than static parsing. (https://github.com/ppy/osu/pull/60/files#r83135780)
            switch (mode)
            {
            case PlayMode.Osu:
                return(OsuBaseHit.Parse(val));

            default:
                return(null);
            }
        }
Пример #5
0
        private TaikoBaseHit convertForTaiko(HitObject input)
        {
            TaikoBaseHit h = input as TaikoBaseHit;

            if (h == null)
            {
                OsuBaseHit o = input as OsuBaseHit;

                if (o == null)
                {
                    throw new Exception(@"Can't convert!");
                }

                h = new TaikoBaseHit()
                {
                    StartTime = o.StartTime
                };
            }

            return(h);
        }
Пример #6
0
        private ManiaBaseHit convertForMania(HitObject input)
        {
            ManiaBaseHit h = input as ManiaBaseHit;

            if (h == null)
            {
                OsuBaseHit o = input as OsuBaseHit;

                if (o == null)
                {
                    throw new Exception(@"Can't convert!");
                }

                h = new Note()
                {
                    StartTime = o.StartTime,
                    Column    = (int)Math.Round(o.Position.X / 512 * columns)
                };
            }

            return(h);
        }
Пример #7
0
        private CatchBaseHit convertForCatch(HitObject input)
        {
            CatchBaseHit h = input as CatchBaseHit;

            if (h == null)
            {
                OsuBaseHit o = input as OsuBaseHit;

                if (o == null)
                {
                    throw new Exception(@"Can't convert!");
                }

                h = new Fruit()
                {
                    StartTime = o.StartTime,
                    Position  = o.Position.X
                };
            }

            return(h);
        }
Пример #8
0
        public DrawableCircle(Circle h) : base(h)
        {
            this.h = h;

            Origin   = Anchor.Centre;
            Alpha    = 0;
            Position = h.Position;
            Scale    = new Vector2(0.4f);

            Children = new Framework.Graphics.Drawable[]
            {
                glow = new GlowPart()
                {
                    Colour = h.Colour,
                },
                circle = new CirclePart()
                {
                    Colour = h.Colour,
                    Hit    = delegate { State = ArmedState.Armed; }
                },
                number  = new NumberPart(),
                ring    = new RingPart(),
                flash   = new FlashPart(),
                explode = new ExplodePart()
                {
                    Colour = h.Colour
                },
                approachCircle = new Sprite
                {
                    Anchor = Anchor.Centre,
                    Origin = Anchor.Centre,
                    Colour = h.Colour
                }
            };

            Size = new Vector2(100);
        }
Пример #9
0
        public DrawableCircle(Circle h) : base(h)
        {
            this.h = h;

            Origin = Anchor.Centre;
            RelativePositionAxes = Axes.Both;
            Position             = new Vector2(h.Position.X / 512, h.Position.Y / 384);

            Children = new Framework.Graphics.Drawable[]
            {
                glow = new GlowLayer
                {
                    Colour = h.Colour
                },
                circle = new CircleLayer
                {
                    Colour = h.Colour,
                    Hit    = Hit,
                },
                number  = new NumberLayer(),
                ring    = new RingLayer(),
                flash   = new FlashLayer(),
                explode = new ExplodeLayer
                {
                    Colour = h.Colour,
                },
                approachCircle = new Sprite
                {
                    Anchor = Anchor.Centre,
                    Origin = Anchor.Centre,
                    Colour = h.Colour
                }
            };

            //may not be so correct
            Size = circle.DrawSize;
        }