1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-30 07:12:58 +08:00
osu-lazer/osu.Game.Rulesets.Catch/Objects/PalpableCatchHitObject.cs

56 lines
1.8 KiB
C#
Raw Normal View History

2020-11-25 07:00:11 +08:00
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
2020-11-24 18:16:03 +08:00
// See the LICENCE file in the repository root for full licence text.
2022-06-17 15:37:17 +08:00
#nullable disable
using Newtonsoft.Json;
2020-11-27 09:31:18 +08:00
using osu.Framework.Bindables;
using osu.Game.Rulesets.Objects;
using osu.Game.Rulesets.Objects.Types;
using osu.Game.Skinning;
using osuTK.Graphics;
2020-11-24 18:16:03 +08:00
namespace osu.Game.Rulesets.Catch.Objects
{
/// <summary>
/// Represents a single object that can be caught by the catcher.
2020-11-25 07:00:11 +08:00
/// This includes normal fruits, droplets, and bananas but excludes objects that act only as a container of nested hit objects.
2020-11-24 18:16:03 +08:00
/// </summary>
public abstract class PalpableCatchHitObject : CatchHitObject, IHasComboInformation
2020-11-24 18:16:03 +08:00
{
/// <summary>
/// Difference between the distance to the next object
/// and the distance that would have triggered a hyper dash.
/// A value close to 0 indicates a difficult jump (for difficulty calculation).
/// </summary>
public float DistanceToHyperDash { get; set; }
private HitObjectProperty<bool> hyperDash;
public Bindable<bool> HyperDashBindable => hyperDash.Bindable;
2020-11-27 09:31:18 +08:00
/// <summary>
/// Whether this fruit can initiate a hyperdash.
/// </summary>
public bool HyperDash => hyperDash.Value;
2020-11-27 09:31:18 +08:00
private CatchHitObject hyperDashTarget;
/// <summary>
/// The target fruit if we are to initiate a hyperdash.
/// </summary>
[JsonIgnore]
2020-11-27 09:31:18 +08:00
public CatchHitObject HyperDashTarget
{
get => hyperDashTarget;
set
{
hyperDashTarget = value;
HyperDashBindable.Value = value != null;
}
}
Color4 IHasComboInformation.GetComboColour(ISkin skin) => IHasComboInformation.GetSkinComboColour(this, skin, IndexInBeatmap + 1);
2020-11-24 18:16:03 +08:00
}
}