1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-17 08:32:53 +08:00
osu-lazer/osu.Game.Rulesets.Catch/Objects/PalpableCatchHitObject.cs

49 lines
1.7 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.
using System.Collections.Generic;
2020-11-27 09:31:18 +08:00
using osu.Framework.Bindables;
using osu.Game.Rulesets.Objects.Types;
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; }
2020-11-27 09:31:18 +08:00
public readonly Bindable<bool> HyperDashBindable = new Bindable<bool>();
/// <summary>
/// Whether this fruit can initiate a hyperdash.
/// </summary>
2020-11-27 09:31:18 +08:00
public bool HyperDash => HyperDashBindable.Value;
private CatchHitObject hyperDashTarget;
/// <summary>
/// The target fruit if we are to initiate a hyperdash.
/// </summary>
2020-11-27 09:31:18 +08:00
public CatchHitObject HyperDashTarget
{
get => hyperDashTarget;
set
{
hyperDashTarget = value;
HyperDashBindable.Value = value != null;
}
}
Color4 IHasComboInformation.GetComboColour(IReadOnlyList<Color4> comboColours) => comboColours[(IndexInBeatmap + 1) % comboColours.Count];
2020-11-24 18:16:03 +08:00
}
}