osu/osu.Game.Modes.Osu/Objects/OsuHitObject.cs

50 lines
1.3 KiB
C#
Raw Normal View History

// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
2016-10-07 20:35:14 +00:00
using System;
using osu.Game.Beatmaps.Samples;
2016-11-14 09:54:24 +00:00
using osu.Game.Modes.Objects;
2016-11-14 09:03:20 +00:00
using OpenTK;
using osu.Game.Beatmaps;
2016-11-14 09:54:24 +00:00
namespace osu.Game.Modes.Osu.Objects
{
public abstract class OsuHitObject : HitObject
{
2016-10-07 20:35:14 +00:00
public Vector2 Position { get; set; }
public Vector2 StackedPosition => Position + StackOffset;
public virtual Vector2 EndPosition => Position;
public Vector2 StackedEndPosition => EndPosition + StackOffset;
public virtual int StackHeight { get; set; }
2017-02-09 05:56:39 +00:00
public Vector2 StackOffset => new Vector2(StackHeight * Scale * -6.4f);
public float Scale { get; set; } = 1;
public override void SetDefaultsFromBeatmap(Beatmap beatmap)
{
base.SetDefaultsFromBeatmap(beatmap);
Scale = (1.0f - 0.7f * (beatmap.BeatmapInfo.BaseDifficulty.CircleSize - 5) / 5) / 2;
}
}
[Flags]
public enum HitObjectType
{
Circle = 1,
Slider = 2,
NewCombo = 4,
CircleNewCombo = 5,
SliderNewCombo = 6,
Spinner = 8,
ColourHax = 122,
Hold = 128,
ManiaLong = 128,
}
}