using System.Collections.Generic;
using osu.Game.Rulesets.Taiko.Objects;
namespace osu.Game.Rulesets.Taiko.Difficulty.Preprocessing.Colour
{
///
/// Encodes a list of s.
/// s with the same are grouped together.
///
public class ColourEncoding
{
///
/// s that are grouped together within this .
///
public List Payload { get; private set; } = new List();
///
/// Determine if this is a repetition of another . This
/// is a strict comparison and is true if and only if the colour sequence is exactly the same.
/// This does not require the s to have the same amount of s.
///
public bool isRepetitionOf(ColourEncoding other)
{
return hasIdenticalMonoLength(other) &&
other.Payload.Count == Payload.Count &&
(other.Payload[0].EncodedData[0].BaseObject as Hit)?.Type ==
(Payload[0].EncodedData[0].BaseObject as Hit)?.Type;
}
///
/// Determine if this has the same mono length of another .
///
public bool hasIdenticalMonoLength(ColourEncoding other)
{
return other.Payload[0].RunLength == Payload[0].RunLength;
}
}
}